Binäre Multiplikation
-
Hallo zusammen,
ich habe einen 4 * 4 Bit Multiplizierer in Verilog geschrieben und zwar auf der Basis der schriftlichen Multiplikation. Diese ist ja eigentlich ziemlich einfach, aber irgendwie sehe ich gerade den Wald vor lauter Bäumen nicht mehr.
Beispiel:
0100 * 0010
___________
----0000
-----0000
------0100
-------0000
___________
0001000Alles gut. Aber jetzt kommt der Stillstand bei mir:
1111 * 1111
___________
----1111
-----1111
------1111
-------1111
___________
---10101001Das Ergebnis ist aber falsch. Kann mir jemand das Brett vorm Kopf lösen?
DankeLG, freakC++
-
freakC++ schrieb:
Kann mir jemand das Brett vorm Kopf lösen?
Den Vorschlaghammer schwing, aushol ... uuuuuuuuuuuund ...
Okay, es geht auch sanfter: addiere jeweils nur zwei Zahlen, zum Ergebnis nimmst du dann die nächste Zahl, usw, usf.
-
Du kannst scheinbar nicht addieren.
Kennst du den double-and-add-Algorithmus? Auch bekannt als Bauernmultiplikation?
-
freakC++ schrieb:
Alles gut. Aber jetzt kommt der Stillstand bei mir:
1111 * 1111
___________
----1111
-----1111
------1111
-------1111
___________
---10101001Das Ergebnis ist aber falsch. Kann mir jemand das Brett vorm Kopf lösen?
DankeDu hast falacfh addiert.
1111 * 1111 ___________ ----1111 -----1111 ------1111 -------1111 ___________ ---11100001
-
mr. binary schrieb:
Den Vorschlaghammer schwing, aushol ... uuuuuuuuuuuund ...
danke
krümelkacker schrieb:
Du kannst scheinbar nicht addieren.
Korrekt! Ich habe einfach stets mit einem Carry gerechnet und die anderen gar nicht beachtet.
krümelkacker schrieb:
Kennst du den double-and-add-Algorithmus? Auch bekannt als Bauernmultiplikation?
Nein!
Jetzt funktioniert mein Multiplizierer. Vielen Dank und viele Grüße
freakC++