multiplikation: bound check failed

Gast #1185883
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
Gast #1185947
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren