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.
von Mampf F. (mampf) Benutzerseite


Lesenswert?

Gute Morgen,

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

ginge das dann per for-loop?
1
mask := (others => '1');
2
for I in 0 to 4 loop
3
  mask := mask and myarray(I);
4
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

von Duke Scarring (Gast)


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

von Lothar M. (lkmiller) (Moderator) Benutzerseite


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"...

von bitwurschtler (Gast)


Lesenswert?

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

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

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

: Bearbeitet durch Moderator
von Mampf F. (mampf) Benutzerseite


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]
  • [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.