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.
output <= conv_std_logic_vector(int,anzahlbits) also für varabc 0...255: output <= conv_std_logic_vector(varabc,8); Gruss, Simon
Hallo, probier mal vektor <= conv_std_logic_vector(integerwert,vektorbreite) Mfg Christian
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.