Forum: FPGA, VHDL & Co. Modulo-32 Addition (VHDL)


von Thorben (Gast)


Lesenswert?

Hallo alle zusammen.

Ich habe folgendes Problem. Ich benötige eine Modulo-32 Addition. Das 
bedeutet, wenn ich 2 (oder mehrere) 32-bit lange Werte addiere, brauche 
ich wieder nur ein 32-bit Ergebnis. Der eventuelle Übertrag fällt weg.
Meine Idee war:

1. Schritt: Die binären 32-bit-Werte in Integer-Werte umzuwandeln.
2. Schritt: Die Integer-Werte addieren.
3. Schritt: Das Ergebnis wieder in einen binären Wert umwandeln. 
(Eventuell bekomme ich so 33-bit oder noch größere Werte heraus).
4. Schritt: Nur die unteren 32 Bit nehmen. Somit müsste ich ja die 
Modulo-32-Addition erreicht haben.
Meine Frage ist, gibt es eine einfachere Lösung des Problems, da dieser 
Vorgang ziemlich viel Platz benötigt, vor allem da ich auch 4-fache 
Additionen habe. Vielleicht kennt VHDL ja eine Funktion für diese 
Opeartion die mir noch unbekannt ist. Im Internet findet man über höhere 
Modulo-Operationen überhaupt nichts.

Für Antworten wäre ich dankbar.

Gruß Thorben

von Joerg W. (joergwolfram)


Lesenswert?

Wenn Du einen 32-Bit Addierer nimmst, macht der automatisch modulo 32, 
da der Übertrag vom MSB sozusagen ins Leere geht.

Gruß Jörg

von Falk (Gast)


Lesenswert?

@Joerg Wolfram

>Wenn Du einen 32-Bit Addierer nimmst, macht der automatisch modulo 32,

Ein 32-Bit Addierer addiert Modulo 2^32!
Für eine Modulo 32 Operation braucht es nur einen 5-Bit Addierer.

Allgemein gilt, dass alle binären Oprationen Modulo 2^N augeführt 
werden, wobei N die Bitbreite ist.

MFG
Falk



von Thorben (Gast)


Lesenswert?

Oops,

mein Fehler. Ich meinte eine 2^32 Modulo addition. Danke für eure 
Antworten

Gruß Thorben

von Joerg W. (joergwolfram)


Lesenswert?

@Falk
stimmt, da habe ich mich verschrieben, muss natürlich 2^32 heissen.

Gruß Jörg

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.