Integer nach std_logic_vector

Gast #298559
Lesenswert?

Ich habe vor kurzem begonnen, mich mit VHDL zu beschäftigen. Ich habe
jetzt ein Verständnisproblem.

Ich habe in einen Process eine Variable vom Typ "Integer range 0 to
255". Wie kann ich diese auf einen Port vom Typ "std_logic_vector(7
downto 0) ausgeben? Alle 256 Möglichkeiten über if oder case
abzufragen, scheint mir nicht der richtige Weg zu ein.
#298563
Lesenswert?

Sauberer ist es das "numeric_std" package zu verwenden und die
integer zahl zuerst mit

u = TO_UNSIGNED(zahl, 8)

in einen UNSIGNED Typ umzuwandeln.
Diesen kann man dann mit einem cast auf std_logic_vector wandeln.

Allgemein wird empfohlen das std_logic_arith package nicht mehr zu
verwenden.
Meiner Meinung nach ist bei der Verwendung der conv_std_logic_vector()
nicht sicher was mit dem Vorzeichenbit passiert, während man bei den
Typen SIGNED und UNSIGNED genau weiss, ob sie ein Vorzeichenbit haben
oder nicht.

Grüße
Klaus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren