mikrocontroller.net

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


Autor: Holger Martiker (Firma: FH Frankfurt) (holgerm)
Datum:

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

Autor: Thomas Hertwig (mac4ever)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich behaupte mal ganz frech:
signal res : std_logic_vector(15 downto 0);
signal op1 : std_logic_vector( 7 downto 0);
signal op2 : std_logic_vector( 7 downto 0);

res <= op1 * op2;

So einfach multipliziert man :)

Autor: Holger Martiker (Firma: FH Frankfurt) (holgerm)
Datum:

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

Autor: I_ H. (i_h)
Datum:

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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Holger!

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

Rick

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.