Forum: FPGA, VHDL & Co. VHDL: Addition von 64Bit-std_logic_vector


von Sascha (Gast)


Lesenswert?

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?

von Kest (Gast)


Lesenswert?

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

von Sascha (Gast)


Lesenswert?

Danke!
Funktioniert wunderbar...


In der VHDL-Referenz, die ich habe, steht bei erlaubte Datentypen nur 
Integer und Real...

von hera (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.