Forum: FPGA, VHDL & Co. VHDL : Bad index (8) in aggregate of size 8


von krista (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
hab ein mir völlig unbekanntes Problem und weiss leider nicht genau 
woran das liegen kann :(

Fehlermeldung:
Error: CSSIM0013: fifo_tb.vhdl: (line 30): Bad index (8) in aggregate of 
size 8
    At fifo_tb.vhdl: (line 30)
        Instance = :fifo_tb(bench):

Code Ausschnitt (Code im Anhang):
entity fifo_tb is
generic (
NBITS : positive := 8;
NWORDS : positive := 10
 );
end entity fifo_tb;

architecture bench of fifo_tb is
constant CLK_PER : time := 20 ns; --période de l'horloge
signal t_clk: std_logic:= '0';
signal trst_b, t_read, t_write : std_logic;
signal t_din : std_logic_vector(NBITS-1 downto 0);
signal t_empty, t_full, t_error : std_logic;
signal t_dout : std_logic_vector(NBITS-1 downto 0);

begin

-- unité à tester
UUT : entity work.fifo_bhv(bhv)
port map (clk => t_clk, rst_b => trst_b, rread => t_read, wwrite => 
t_write,
din => t_din, empty => t_empty, full => t_full, eerror => t_error, dout 
=> t_dout );

-- générateur d'horloge
t_clk <= not t_clk after CLK_PER/2;

trst_b <= '1'; --, '0' after CLK_PER/2, '1' after CLK_PER*2;

-- générateur de stimuli
process
begin
....

Wäre froh, wenn mir schnellstmöglichst jemand helfen könnte.

mfg
Krista

von Morin (Gast)


Lesenswert?

In Zeile 139 steht die Zuweisung:
1
t_din <= "111011001";
Der Wert auf der rechten Seite ist 9 Bits lang, also zu lang für t_din.

von krista (Gast)


Lesenswert?

danke vielmals, das wars....

aber weshalb zeigt er mir zeile 30 an, wenn das prob auf zeile 139 is? 
-.-

von Ratzeputz (Gast)


Lesenswert?

signal t_din : std_logic_vector(NBITS-1 downto 0);

Ist das Zeile 30?

von Morin (Gast)


Lesenswert?

> aber weshalb zeigt er mir zeile 30 an, wenn das prob auf zeile 139 is?

Das solltest du besser den Hersteller des Programms fragen ;)

Kleiner Tipp wie ich den Fehler gefunden habe: Die Fehlermeldung deutet 
auf eine Zuweisung an einen ungültigen Index (8) eines Vektors (7..0) 
hin. Die einzigen Vektoren sind t_din und t_dout. Also bin ich einfach 
die Zuweisungen der Reihe nach durchgegangen.

> signal t_din : std_logic_vector(NBITS-1 downto 0);
>
> Ist das Zeile 30?

Nein.

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.