mikrocontroller.net

Forum: FPGA, VHDL & Co. Frage zu VHDL loops


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Mampf F. (mampf) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Gute Morgen,

angenommen ich möchte soetwas machen:
mask := (others => '1');
mask := mask and myarray(0);
mask := mask and myarray(1);
mask := mask and myarray(2);
mask := mask and myarray(3);
mask := mask and myarray(4);

ginge das dann per for-loop?
mask := (others => '1');
for I in 0 to 4 loop
  mask := mask and myarray(I);
end loop

Soweit ich weiß, würde das Synthese-Tool aus der for-loop die obere 
Version generieren, stimmt das so?

Viele Grüße,
Mampf

Autor: Duke Scarring (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Mampf F. schrieb:
> mask := (others => '1');
> for I in 0 to 4 loop
>   mask := mask and myarray(I);
> end loop
Jepp.
Das sind dann vermutlich 5 AND hintereinander.
Man kann sich das Syntheseergebnis eigentlich bei allen Tools mit 'Show 
RTL Schematic' o.ä. anzeigen lassen.

Duke

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mampf F. schrieb:
> Soweit ich weiß, würde das Synthese-Tool aus der for-loop die obere
> Version generieren, stimmt das so?
Im Prinzip ja.
Aber letztlich werden in einem 6er-LUT-FPGA einfach pro mask-Bit die 5 
myarray()-Bits auf 1 LUT gehen und du hast "insgesamt" die selbe 
Durchlaufzeit wie bei einer einzigen AND-Verknüfung. Es werden also 
nicht 5 (oder 4) LUTS "hintereinandergeschaltet"...

Autor: bitwurschtler (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Mampf F. schrieb:
 mask := (others => '1');
 for I in 0 to 4 loop
   mask := mask and myarray(I);
 end loop

Ich vermutet da einen Typfehler, mask scheint ein vector (wegen der 
Zuweisung mit others) zu sein und myarray(I) ein einzelnes Element.

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bitwurschtler schrieb:
> myarray(I) ein einzelnes Element.
myarray wird wohl ein Array aus Vektoren sein...

: Bearbeitet durch Moderator
Autor: Mampf F. (mampf) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> bitwurschtler schrieb:
>> myarray(I) ein einzelnes Element.
> myarray wird wohl ein Array aus Vektoren sein...

Jap, genau das ist es :)

Ok, vielen Dank für eure Antworten! :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.