Forum: FPGA, VHDL & Co. VHDL: Integer mit großem Wertebereich


von Martin L. (Gast)


Lesenswert?

Hallo,

wie man in VHDL einen (unsigned) Integer mit einem Wertebereich größer 
als 2^32 Werten definieren? Also z.B. ein Äquvivalent zu "long long" aus 
C.
Oder muss ich mir das wohl oder übel aus signed bzw unsigned Vektoren 
zusammenbasteln?

Vielen Dank,
 Martin L.

von Karl (Gast)


Lesenswert?

Geht "signal longlong : unsigned(63 downto 0);" denn nicht?

von Martin L. (Gast)


Lesenswert?

Geht aber da muss man halt aufpassen, dass sowohl Typ als auch Größe 
stimmen und das ist manchmal schlimm nervig und man macht durch die 
strenge Typ-/Größenprüfung mehr Fehler hinein als man mit ihr vermieden 
hätte.
Zum Rechnen benutze ich lieber Integer (mit eingeschränktem 
Wertebereich) um sie erst am Ende wieder in Vektoren umzuwandeln. Nun 
muss ich aber mit 64 Bit-Werten rechnen ...

Viele Grüße,
 Martin L.

von Karl (Gast)


Lesenswert?

In dem Moment wo du den Wertebereich schon kennst ist doch die 
Konvertierung in ein "x downto y" kein problem mehr. Ich habs eigentlich 
lieber, wenn ich weiß, was ich da zusammenbeschreibe.

von Martin L. (Gast)


Lesenswert?

Naja - in diesem Falle ist es u.a. eine Multiplikation von zwei 32-Bit 
Werten von denen, nach weiteren Operationen, nur die obersten 32 Bit 
genutzt werden. Und das ist echt nervig wenn man bei jeder Operation 
angeben muss, dass der Operand x nun 4 bit hat, der Operand y 5 und 
Operand z 64-4-5 damit es am Ende mit den Bits hinkommt ....

Viele Grüße,
 Martin L.

von Karl (Gast)


Lesenswert?

Dafür gäbe es doch Attribute...

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.