Aufgrund eines Problems in der Quartus® II Software wird der oben genannte Fehler angezeigt, wenn eine VHDL-Instanziierung von altera_mult_add Megafunction simuliert wird.
Um dieses Problem zu beheben, müssen Sie die .vhd-Datei für die von Ihnen erstellte Variante ändern.
Beachten Sie zunächst die Bitbreite von datab_0, zum Beispiel verwendet folgendes einen 17-Bit-breiten datab_0:
datab_0: in std_logic_vector (16 auf 0) := (andere => \'0\'); -- datab_0.datab_0
Ändern Sie zweitens den Parameter "width_b", um der breite zu entsprechen, die Sie oben gefunden haben. Dieser Parameter wird an mehreren Stellen angezeigt, und Sie müssen alle Auftretenden ändern:
komponenten-altera_mult_add ist
generisch (
number_of_multipliers: Integer := 1;
width_a: Integer := 16;
width_b: Integer := 17;
name : Component altera_mult_add
generische Karte (
number_of_multipliers = > 1,
width_a => 16,
width_b => 17,-- Info zum Abrufen:
Drittens müssen Sie den Eingabewert von scaninb in der Komponentendeklaration ändern:
Port-Karte (
result => Ergebnis, -- result.result
dataa(15 downto 0) => dataa_0(15 downto 0), -- dataa_0.dataa_0
datab(15 downto 0) => datab_0(15 downto 0), -- datab_0.datab_0
clock0 => clock0, -- clock0.clk
scaninb => "000000000000000000", -- (beendet)
Dieses Problem wurde in Quartus-II Softwareversion 13.1 behoben