Forum: FPGA, VHDL & Co. 8-bit - BCD Wandlung mit dem Shift-Add-3 Algorithmus


von Martin (Gast)


Lesenswert?

Ich habe mir letzte Woche ein Terasic DE0 Bord zugelegt und bin gerade 
dabei die Ansteuerung der 7-Segment Anzeige zu realisieren. Mein Ziel 
ist die Abbildung eines 8-bit Wortes auf drei BCD Stellen.

In diesem Zusammenhang bin ich auf den Shift-Add-3 Algorithmus (auch als 
'double dabble' Algorithmus bekannt) gestoßen wie z.B. hier beschrieben:

http://people.ee.duke.edu/~dwyer/courses/ece52/Binary_to_BCD_Converter.pdf

Den Algorithmus habe ich soweit verstanden, wo es im Moment bei mir 
hängt ist die strukturelle Umsetzung dieses Verfahrens (auf Seite '3' im 
oben genannten Dokument aufgezeigt).

Die Funktion Add-3 Stufen ist mir klar, nur wie gehe ich vor was die 
Anordnung dieser Stufen betrifft? Oder besser gesagt in welcher 
Beziehung steht die Platzierung dieser Stufen zur eigentlichen Shift 
Operation?

Umgesetzt habe ich es bereits, es funktioniert auch, nur würde ich auch 
gerne verstehen was ich da treibe :-)

Vielen Dank und ein schönes WE

Martin

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Vielleicht hilft das Bild im Anhang:

Im linken Diagramm sind alle 8 Schiebeoperationen durch Pfeile nach
unten links und die Add-3-Module durch Kästchen mit der Aufschrift Ci
dargestellt. Von den Add-3-Module sind aber nur diejenigen gezeigt, bei
denen das Eingangssignal tatsächlich ≥5 werden kann.

Das mittleren Diagramm entspricht genau dem linken, nur dass die
Schiebepfeile geradegebogen worden sind.

Im rechte Diagramm sind schließlich alle Zwischenergebnisse weggelassen
worden. Es entspricht dem in dem von dir verlinkten PDF-Dokument.

von Martin (Gast)


Lesenswert?

Der Groschen ist gefallen! Super!
Vielen Dank & Gruß,
Martin

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.