Forum: FPGA, VHDL & Co. For Schelife in VHDL


von Fabian (Gast)


Lesenswert?

Hallo, ich habe ein Problem mit mit einer FOR-Schleife.
In meinem Skript lautet der Syntax wie folgt:

FOR range LOOP

wobei mit range der Bereich festgelegt wird.

Nun bin ich über folgende Anwendung gestoßen.

 FOR i IN DIN'range LOOP

DIN ist ein std_logic_vector von 0-5.

So folgende Fragen:

-Wird die Schleifenvariable i immer mit dem Wert 0 initialisiert?

-Was bedeutet das IN also welche Funktion hat es?

von adpat (Gast)


Lesenswert?

Das in ist einfach vhdl syntax. I wird mit dem initialsiert, was du ihm 
im schleifenkopf schreibst, z.B.

for i in 7 downto 0 loop
    crc:=crc xor bit(i);
end loop;

von Fabian (Gast)


Lesenswert?

Also gibt das Attribut Range die länge als von ....bis an
also 0 to 7 ?

Und wozu dient das In?

von Klaus Falser (Gast)


Lesenswert?

Das Attribut 'range ist der der Indexbereich des Vektors, also z.B bei

signal DIN:std_logic_vector(7 downto 2);

von 7 bis 2.

Bei
for i in DIN'range
  ..
end for;

läuft i in diesem Beispiel von 7 bis 2, wird also mit 7 initialisiert.

Klaus

von Fabian (Gast)


Lesenswert?

Alles klar habs verstanden vielen Dank.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.