C
Ciaran
Guest
Hello visiem
Paldies iepriekš laipni piekrītot man palīdzēt ar šo, jo man ir iestrēdzis uz ilgu laiku.
Būtībā, es esmu saņem šādu kļūdas ziņojumu, izmantojot Modelsim Linux:
** Error: (vsim-3601) atkārtojums limits sasniegts laikā 0 ns.
Esmu lasījis iepriekšējos rakstus, kas attiecas uz šo konkrēto kļūdas ziņojumu un tie liecina, ka var būt bezgalīga cilpa kaut kur manā VHDL kodu, kas izsauca Modelsim pārtraukt.Man ir skenēts manu kodu, soli pa solim, un ir veiktas izmaiņas, ja es domāju, ka problēma varētu būt, bet nekas nav strādājusi līdz šim.Vienīgais, kas, šķiet, nekādas atšķirības ir, kad es mainīt vērtību mana reset signāls manā testēšanas stendā ar "0" sākotnēji vietā "1" (Skatīt manu testa stenda zemāk).Simulācijas tad iet uz 10000 ns pirms atkal beidzas ar to pašu kļūdas paziņojumu, kad reset kļūst "1".Vai kāds, lūdzu, sniegt man kādu alternatīvu paskaidrojumu, kāpēc tas notiek?Paldies vēlreiz, kādi ieteikumi ir daudz appreciated.
Sveicieni
Ciaran************************************************** *******
- Radix-2 šūnu Array Test Bench -
bibliotēku darbu;
bibliotēkas IEEE;
izmantot ieee.std_logic_1164.all;
izmantot ieee.numeric_std.all;
izmantot ieee.std_logic_unsigned.all;
izmantot work.rng_lib.all;
izmantot work.radix2_package.all;
-------------------------------------------------- ---------------------------------------
vienība radix2_cell_array_tb ir
beigās radix2_cell_array_tb;
-------------------------------------------------- ---------------------------------------
arhitektūra radix2_cell_array_tb no radix2_cell_array_tb ir
-------------------------------------------------- ---------------------------------------
komponents radix2_cell_array
ports (CLK: ar std_ulogic;
reset: ar std_ulogic;
n: ar std_ulogic_vector (platums downto 0);
b: kas std_ulogic_vector (platums downto 0);
Ain: ar std_ulogic;
summa ut std_ulogic_vector (platums downto 0));
beigu komponents;
-------------------------------------------------- ---------------------------------------
signāls randomnum1: neparakstīts (31 downto 0);
signāls setofnums1: std_ulogic_vector (31 downto 0);
signāls randomnum2: neparakstīts (31 downto 0);
signāls setofnums2: std_ulogic_vector (31 downto 0);
signāls randomnum3: neparakstīts (31 downto 0);
signāls setofnums3: std_ulogic_vector (31 downto 0);
signāls CLK: std_ulogic;
signāls reset: std_ulogic;
signāls n: std_ulogic_vector (platums downto 0);
signāls b: std_ulogic_vector (platums downto 0);
signāls Ain: std_ulogic;
signāls summa: std_ulogic_vector (platums downto 0);
-------------------------------------------------- ---------------------------------------
sākt
-------------------------------------------------- ---------------------------------------
radix2_cell_array_1: radix2_cell_array osta karte (CLK,
reset,
n,
b,
Ain,
summa);
-------------------------------------------------- ---------------------------------------
Clockrocess
sākt
cilpa
CLK <= "1";
pagaidiet 5000 ns; - pusi pulksteni ciklā
CLK <= '0 ';
pagaidiet 5000 ns; - pusi pulksteni ciklā
beigu cilpas;
end process Pulkstenis;
-------------------------------------------------- ---------------------------------------
RSTrocess
sākt
reset <= "1";
pagaidiet 10000 ns; - pulksteni ciklā
reset <= '0 ';
gaidīt;
end process RST;
-------------------------------------------------- ---------------------------------------
p1rocess (CLK, reset)
mainīgais r_uni1: rand_var;
mainīgais r_uni2: rand_var;
mainīgais r_uni3: rand_var;
mainīgais seedA1: vesels skaitlis: = 0;
mainīgais seedB1: vesels skaitlis: = 0;
mainīgais seedC1: vesels skaitlis: = 0;
mainīgais seedA2: vesels skaitlis: = 0;
mainīgais seedB2: vesels skaitlis: = 0;
mainīgais seedC2: vesels skaitlis: = 0;
mainīgais seedA3: vesels skaitlis: = 0;
mainīgais seedB3: vesels skaitlis: = 0;
mainīgais seedC3: vesels skaitlis: = 0;
sākt
ja reset = "1", tad
seedA1: = seedA1 231, - mainīt sēklas
seedB1: = seedB1 231, - mainīt sēklas
seedC1: = seedC1 231, - mainīt sēklas
seedA2: = seedA2 101, - mainīt sēklas
seedB2: = seedB2 101, - mainīt sēklas
seedC2: = seedC2 101, - mainīt sēklas
seedA3: = seedA3 83 - mainīt sēklas
seedB3: = seedB3 83 - mainīt sēklas
seedC3: = seedC3 83 - mainīt sēklas
r_uni1: = init_uniform (seedA1, seedB1, seedC1, 0,0, 100,0);
r_uni2: = init_uniform (seedA2, seedB2, seedC2, 0,0, 100,0);
r_uni3: = init_uniform (seedA3, seedB3, seedC3, 0,0, 100,0);
randomnum1 <= (pārējie => '0 ');
randomnum2 <= (pārējie => '0 ');
randomnum3 <= (pārējie => '0 ');
elsif clk'event un CLK = "1", tad
r_uni1: = rands (r_uni1);
randomnum1 <= r_uni1.rnd_v;
r_uni2: = rands (r_uni2);
randomnum2 <= r_uni2.rnd_v;
r_uni3: = rands (r_uni3);
randomnum3 <= r_uni3.rnd_v;
beidzas, ja;
end process p1;
-------------------------------------------------- ---------------------------------------
setofnums1 <= std_ulogic_vector (randomnum1);
setofnums2 <= std_ulogic_vector (randomnum2);
setofnums3 <= std_ulogic_vector (randomnum3);
Ain <= setofnums1 (0);
n <= setofnums2 (platums downto 0);
b <= setofnums3 (platums downto 0);
-------------------------------------------------- ---------------------------------------
beigās radix2_cell_array_tb;
************************************************** *******
Paldies iepriekš laipni piekrītot man palīdzēt ar šo, jo man ir iestrēdzis uz ilgu laiku.
Būtībā, es esmu saņem šādu kļūdas ziņojumu, izmantojot Modelsim Linux:
** Error: (vsim-3601) atkārtojums limits sasniegts laikā 0 ns.
Esmu lasījis iepriekšējos rakstus, kas attiecas uz šo konkrēto kļūdas ziņojumu un tie liecina, ka var būt bezgalīga cilpa kaut kur manā VHDL kodu, kas izsauca Modelsim pārtraukt.Man ir skenēts manu kodu, soli pa solim, un ir veiktas izmaiņas, ja es domāju, ka problēma varētu būt, bet nekas nav strādājusi līdz šim.Vienīgais, kas, šķiet, nekādas atšķirības ir, kad es mainīt vērtību mana reset signāls manā testēšanas stendā ar "0" sākotnēji vietā "1" (Skatīt manu testa stenda zemāk).Simulācijas tad iet uz 10000 ns pirms atkal beidzas ar to pašu kļūdas paziņojumu, kad reset kļūst "1".Vai kāds, lūdzu, sniegt man kādu alternatīvu paskaidrojumu, kāpēc tas notiek?Paldies vēlreiz, kādi ieteikumi ir daudz appreciated.
Sveicieni
Ciaran************************************************** *******
- Radix-2 šūnu Array Test Bench -
bibliotēku darbu;
bibliotēkas IEEE;
izmantot ieee.std_logic_1164.all;
izmantot ieee.numeric_std.all;
izmantot ieee.std_logic_unsigned.all;
izmantot work.rng_lib.all;
izmantot work.radix2_package.all;
-------------------------------------------------- ---------------------------------------
vienība radix2_cell_array_tb ir
beigās radix2_cell_array_tb;
-------------------------------------------------- ---------------------------------------
arhitektūra radix2_cell_array_tb no radix2_cell_array_tb ir
-------------------------------------------------- ---------------------------------------
komponents radix2_cell_array
ports (CLK: ar std_ulogic;
reset: ar std_ulogic;
n: ar std_ulogic_vector (platums downto 0);
b: kas std_ulogic_vector (platums downto 0);
Ain: ar std_ulogic;
summa ut std_ulogic_vector (platums downto 0));
beigu komponents;
-------------------------------------------------- ---------------------------------------
signāls randomnum1: neparakstīts (31 downto 0);
signāls setofnums1: std_ulogic_vector (31 downto 0);
signāls randomnum2: neparakstīts (31 downto 0);
signāls setofnums2: std_ulogic_vector (31 downto 0);
signāls randomnum3: neparakstīts (31 downto 0);
signāls setofnums3: std_ulogic_vector (31 downto 0);
signāls CLK: std_ulogic;
signāls reset: std_ulogic;
signāls n: std_ulogic_vector (platums downto 0);
signāls b: std_ulogic_vector (platums downto 0);
signāls Ain: std_ulogic;
signāls summa: std_ulogic_vector (platums downto 0);
-------------------------------------------------- ---------------------------------------
sākt
-------------------------------------------------- ---------------------------------------
radix2_cell_array_1: radix2_cell_array osta karte (CLK,
reset,
n,
b,
Ain,
summa);
-------------------------------------------------- ---------------------------------------
Clockrocess
sākt
cilpa
CLK <= "1";
pagaidiet 5000 ns; - pusi pulksteni ciklā
CLK <= '0 ';
pagaidiet 5000 ns; - pusi pulksteni ciklā
beigu cilpas;
end process Pulkstenis;
-------------------------------------------------- ---------------------------------------
RSTrocess
sākt
reset <= "1";
pagaidiet 10000 ns; - pulksteni ciklā
reset <= '0 ';
gaidīt;
end process RST;
-------------------------------------------------- ---------------------------------------
p1rocess (CLK, reset)
mainīgais r_uni1: rand_var;
mainīgais r_uni2: rand_var;
mainīgais r_uni3: rand_var;
mainīgais seedA1: vesels skaitlis: = 0;
mainīgais seedB1: vesels skaitlis: = 0;
mainīgais seedC1: vesels skaitlis: = 0;
mainīgais seedA2: vesels skaitlis: = 0;
mainīgais seedB2: vesels skaitlis: = 0;
mainīgais seedC2: vesels skaitlis: = 0;
mainīgais seedA3: vesels skaitlis: = 0;
mainīgais seedB3: vesels skaitlis: = 0;
mainīgais seedC3: vesels skaitlis: = 0;
sākt
ja reset = "1", tad
seedA1: = seedA1 231, - mainīt sēklas
seedB1: = seedB1 231, - mainīt sēklas
seedC1: = seedC1 231, - mainīt sēklas
seedA2: = seedA2 101, - mainīt sēklas
seedB2: = seedB2 101, - mainīt sēklas
seedC2: = seedC2 101, - mainīt sēklas
seedA3: = seedA3 83 - mainīt sēklas
seedB3: = seedB3 83 - mainīt sēklas
seedC3: = seedC3 83 - mainīt sēklas
r_uni1: = init_uniform (seedA1, seedB1, seedC1, 0,0, 100,0);
r_uni2: = init_uniform (seedA2, seedB2, seedC2, 0,0, 100,0);
r_uni3: = init_uniform (seedA3, seedB3, seedC3, 0,0, 100,0);
randomnum1 <= (pārējie => '0 ');
randomnum2 <= (pārējie => '0 ');
randomnum3 <= (pārējie => '0 ');
elsif clk'event un CLK = "1", tad
r_uni1: = rands (r_uni1);
randomnum1 <= r_uni1.rnd_v;
r_uni2: = rands (r_uni2);
randomnum2 <= r_uni2.rnd_v;
r_uni3: = rands (r_uni3);
randomnum3 <= r_uni3.rnd_v;
beidzas, ja;
end process p1;
-------------------------------------------------- ---------------------------------------
setofnums1 <= std_ulogic_vector (randomnum1);
setofnums2 <= std_ulogic_vector (randomnum2);
setofnums3 <= std_ulogic_vector (randomnum3);
Ain <= setofnums1 (0);
n <= setofnums2 (platums downto 0);
b <= setofnums3 (platums downto 0);
-------------------------------------------------- ---------------------------------------
beigās radix2_cell_array_tb;
************************************************** *******