Forum: FPGA, VHDL & Co. Binärzahlen multiplizieren


von Holger M. (Firma: FH Frankfurt) (holgerm)


Lesenswert?

Hallo,

kann mir jemand erklären, wie ich mit VHDL zwei Binärvektoren 
miteinander multiplizieren kann?

Zusätzlich müsste ich die einzelnen Ziffern dann auf einer 4 
Segmentanzeige ausgeben. Wenn die Zahl mehr als 4 Ziffern hat, müsste 
ich die Ausgangssignale einfach auf '1111' setzen, damit ein FFFF in den 
Anzeigen dargestellt werden.

Hat jemand ne Idee, wie ich das Ergebnis der Multiplikation auf 4 
Ziffern aufteilen kann?
Oder wie ich z.B. einen Binärvektor in einen Integer umwandeln kann, 
dann mit dem Wert multiplizieren kann und dann die 4 Ziffern des 
Ergebnisses wieder in einen Binärvektor umwandeln kann?

Gruß
Holger

von Thomas H. (mac4ever)


Lesenswert?

Ich behaupte mal ganz frech:
1
signal res : std_logic_vector(15 downto 0);
2
signal op1 : std_logic_vector( 7 downto 0);
3
signal op2 : std_logic_vector( 7 downto 0);
4
5
res <= op1 * op2;

So einfach multipliziert man :)

von Holger M. (Firma: FH Frankfurt) (holgerm)


Lesenswert?

Na das probier ich dann mal aus. Aber wie könnte ich das Ergebnis nun 
auf 4 Ziffern aufteilen?

von I_ H. (i_h)


Lesenswert?

Kommt drauf an was du mit Ziffern meinst. Hexadezimal: Ganz einfach, 
sollte sich in wirklich jedem Tutorial zu VHDL finden. Dezimal: Nicht 
so einfach, brauchst Division und Modulo.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?


von Rick Dangerus (Gast)


Lesenswert?

Hallo Holger!

Die Aufteilung für Hex erfolgt ungefähr so:
1
digit0 <= result(3 downto 0);
2
digit1 <= result(7 downto 4);
3
digit2 <= ...

Rick

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.