mikrocontroller.net

Forum: FPGA, VHDL & Co. multiplikation: bound check failed


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jetzt weiss ich wieder, wieso ich VHDL in der Uni nicht mochte...

ich habe drei Signale, alle signed:

signal wert: signed (10 downto 0);
signal multiplikator: signed (7 downto 0);
signal ergebnis: signed (30 downto 0);


innerhalb eines process rechne ich dann:

ergebnis <= wert * multiplikator;

Wenn ich mich richtig erinnere kann das Ergebnis einer n- und einer 
k-bit-langen Zahl maximal eine n+k-bit lange Zahl sein, oder? In meinem 
Fall sollte das Produkt einer 8-Bit-Zahl und einer 11-Bit-Zahl also 
locker in mein 31-bit grosses Ergebnis passen, gell? Nur bloederweise 
schmeisst mir mein Simulationsknecht (ghdl) fuer die 
Multiplikationszeile folgenden Fehler raus:

./testbench:error: bound check failure at sine.vhdl:54

Was ist hier falsch?

Danke, Tim

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es passt zwar locker rein, aber es muß genau rein passen. VHDL ist 
da so pingelig. Besser also so:
ergebnis(18 downto 0) <= wert * multiplikator;

Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ohm man, was fuer einen Grund gibt es denn dafuer?

Immerhin, das funktioniert. Was allerdings nicht funktioniert ist, wenn 
ich das ergebnis direkt als 18 downto 0 deklarieren. Dann bekomme ich 
wieder die selbe Fehlermeldung. Das verstehe mal einer.
Tim

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.