Ich mächte zu der Adresse A im Format std_logic_vector einen Offset B addieren. Also C := A + B; Das Problem ist, dass A und C eigentlich std_logic_vector(63 downto 0) sind, B ist ein std_logic_vector(3 downto 0) Da man std_logic_vector-Signale nicht addieren kann, wandele ich sie in integer um mit to_integer(unsigned(A)) Jetzt ist der Integer-Datentyp aber auf 32Bit beschränkt. Wie mache ich das am besten?
std_logic_vector'en kann man sehr wohl addieren. Aber konvertiere einfach nicht zu integer sondern nach unsigned, das geht dann problemlos Grüße, Kest
Danke! Funktioniert wunderbar... In der VHDL-Referenz, die ich habe, steht bei erlaubte Datentypen nur Integer und Real...
C <= std_logic_vector(unsigned(a) + unsigned(b)); Mit Überlauf : C <= std_logic_vector(unsigned(a) + unsigned("000000000000000...0" & b)); Also b so erweitern, daß gleiches format, dafür C ein bit mehr.
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.