Forum: FPGA, VHDL & Co. VHDL Addition mit Übertrag


von Mert S. (mertsert)


Angehängte Dateien:

Lesenswert?

Hallo alle Zusammen,

kann mir jemand weiter helfen wie ich für ein Addition Aufgabe mit 
übertrag einen VHDL Codee für die Aufgabe. Die im Anhang ist lösen 
kann..

Danke im vorras

Lg

von Gustl B. (-gb-)


Lesenswert?

Ja ähm ... was kannst Du denn schon? Wie die binäre Addition 
funktioniert ist Dir bekannt? Hier kann man schön 1Bit Volladdierer 
verwenden.

von Mert S. (mertsert)


Lesenswert?

danke für deine Rückmeldung,

lang ist es her, dass ich mit VHDL gearbeitet habe.. eine Musterlösung 
wäre genau das Richtige für die Aufgabe..das ich mich anhand dieser es 
mir selbst erklärend beibringen kann..

für jegliche Hilfe bin ich dankbar

lg

von Gustl B. (-gb-)


Lesenswert?

Also Musterlösung habe ich nicht, aber wenn man nach VHDL und Moore 
sucht findet man doch erstaunlich viel, sogar Code, z. B. hier: 
https://www.altera.com/support/support-resources/design-examples/design-software/vhdl/vhd-state-machine.html

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Man könnte die gestellte Aufgabe lösen, indem man eine FSM macht, die 
1.-5 die Bitreihenfolge "einsammelt" und "hinsortiert", dann 2. die 
Addition mit einem "üblichen" Addierer macht und 3. die Bitreihenfolge 
wieder "umdreht". Aufgabe vollumfänglich gelöst.

Gewünscht ist aber (auch wenn es aus der Aufgabenbeschreibung nicht 
hervorgeht) vermutlich ein Automat, mit dem der Vektor bitweise 
druchgenudelt und die Addition mitsamt Übertrag bitweise durchlaufen 
wird.

Prinzipiell fehlen mir in der Aufgabe aber sämtliche 
Synchronisationsmechanismen zur Aussenwelt: wann beginnt die 
Übertragung, wann ist ein Ergebnis gültig?

Gustl B. schrieb:
> Hier kann man schön 1Bit Volladdierer verwenden.
Und der Witz: es reicht 1 einziger Volladdierer, weil ja eine FSM 
verwendet werden muss...

Mir ist nicht ganz klar, warum ich für einen Addierer einen Automaten 
brauche. Ein Addierer ist generell ein kombinatorisches Konstrukt. Also 
ist das mal wieder so ein unnötiges akademisches Spielzeug, das nur zum 
unnötigen Hirnverwinden taugt...

von Gustl B. (-gb-)


Lesenswert?

Lothar M. schrieb:
> Prinzipiell fehlen mir in der Aufgabe aber sämtliche
> Synchronisationsmechanismen zur Aussenwelt: wann beginnt die
> Übertragung, wann ist ein Ergebnis gültig?

Ende ist wenn zweimal Null reinkommt glaube ich.

Lothar M. schrieb:
> Und der Witz: es reicht 1 einziger Volladdierer, weil ja eine FSM
> verwendet werden muss...

Stimmt. Wobei ... wieso eine FSM wenn man einfach in jedem Takt addieren 
könnte?
Die Aufgabe ist eher schlecht. Ich hatte für sowas einen binären 
Multiplizierer als Aufgabe gestellt der nur mit Additionen und 
Schiebeoperationen gelöst werden darf und natürlich auch eine Art 
einfachen Handshake besitzt (Data Valid und Multiplizierer busy). Man 
sieht aber oft, dass keine Mühe in gute und auch sinnvolle Aufgaben 
gesteckt wird, das ist nämlich auch Arbeit sich Aufgaben auszudenken und 
vor allem diese selber vorher zu lösen (da entdeckt man oft 
Unzulänglichkeiten).

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Gustl B. schrieb:
> Ende ist wenn zweimal Null reinkommt glaube ich.
Geht nicht, weil ja mitten drin das gelbe Bitmuster auch "00" ist. Diese 
Randbedingung "Ende mit 00" hat der Aufgabensteller nur deshalb 
eingefügt, dass der Eingangsvektor und der Ergebnisvektor hinreichend 
und gleich breit ist. Vermutlich ist er bei seiner Musterlösung selber 
drüber gestolpert...

> Man sieht aber oft, dass keine Mühe in gute und auch sinnvolle Aufgaben
> gesteckt wird
Und besonders welche, wo man auch was lernt.

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.