www.mikrocontroller.net

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


Autor: Thorben (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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



Autor: Thorben (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oops,

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

Gruß Thorben

Autor: Joerg Wolfram (joergwolfram)
Datum:

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

Gruß Jörg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.