Forum: FPGA, VHDL & Co. std_logic( unsigned) Index


von olpo (Gast)


Lesenswert?

Moin,

mein Code funktioniert nicht:
1
cnt : unsigned( 7 downto 0);
2
stream : std_logic(31 downto 0);
3
4
...
5
6
stream( cnt*2 downto cnt-1); -- so ähnlich

Also, den Index mit 'nem unsigned Signal zu setzen scheint nicht zu 
funktionieren.

Warum nicht, und wie geht's richtig?


PS: bin ein bißchen im Stress..

von Klaus F. (kfalser)


Lesenswert?

stream( to_integer(cnt)*2 downto to_integer(cnt)-1);

oder so ähnlich

von Klaus F. (kfalser)


Lesenswert?

cnt zählt aber bis 255 und dein Stream Vektor geht nur bis 31.

Willst Du das?

von olpo (Gast)


Lesenswert?

perfekt. Danke

von olpo (Gast)


Lesenswert?

Noch 'ne Frage:
1
cnt : unsigned(7 downto 0);
2
3
cnt <= 15 - cnt; -- ZONK!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

olpo schrieb:
> Also, den Index mit 'nem unsigned Signal zu setzen scheint nicht zu
> funktionieren.
> Warum nicht
Weil bei VHDL alle Indices immer integer sein müssen.

> und wie geht's richtig?
Vektoren erst mal nach integer konvertieren.

olpo schrieb:
> cnt <= 15 - cnt; -- ZONK!
Was ZONK?

von D. I. (Gast)


Lesenswert?

Lothar Miller schrieb:
> Was ZONK?

Den bekommt man wenn man bei Jörg Draeger aufs Ganze gegangen ist ;)

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.