Kļūdas ziņojums, izmantojot Modelsim Linux

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;
************************************************** *******

 
Hi Ciaran,
Nekas nepareizi TB kodu parādīts šeit.Skaidrs, ja reset = "1" jums ir dizains, kas nāk no reset un saskaņā dizains jums šķiet, ka cilpas.Nedaudzas izvēles:Ciaran rakstīja:

Hello visiemSimulā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

 
Checkout šo VAI mums apskatīt kodu radix2_cell_array!

Kods:

- 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: no 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: = '0 ';

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);-------------------------------------------------- ---------------------------------------

CLK <= transports nav CLK pēc 5000 ns;

-------------------------------------------------- ---------------------------------------RST: processsāktreset <= "1";

pagaidiet 10000 ns; - pulksteni ciklāreset <= '0 ';

gaidīt;end process RST;-------------------------------------------------- ---------------------------------------p1: process (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āktja reset = "1", tadseedA1: = seedA1 231, - mainīt sēklas

seedB1: = seedB1 231, - mainīt sēklas

seedC1: = seedC1 231, - mainīt sēklasseedA2: = seedA2 101, - mainīt sēklas

seedB2: = seedB2 101, - mainīt sēklas

seedC2: = seedC2 101, - mainīt sēklasseedA3: = seedA3 83 - mainīt sēklas

seedB3: = seedB3 83 - mainīt sēklas

seedC3: = seedC3 83 - mainīt sēklasr_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", tadr_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;
 
Hi,
Es domāju, ka jūsu dizains, daži, kur process varētu izmantot implimenting daudzkombināciju blokiem.Jutība sarakstu varētu pasludināt par nepareizi, iespējams, paziņojot, daži vēl bloks, piemēram: assign1 <= assign1;.

 
Pirmkārt, paldies jums visiem par jūsu veida palīdzību.

nand_gates, es mēģināju atjauninājums jums ierosināja, lai izmēģinājumu stendā, bet diemžēl tam nebija nekādas ietekmes!Man ir pievienots kods radix2_cell_array.Es sākotnēji domāju, ka problēma var būt ar Signal_Assign process, kurā esmu a_sig (0) <= a_sig (platums 1) veikt (0) <= pārvadāt (platums 1) q_sig (0) <= q_sig (platums 1).Taču es iepriekš mainījies jutību sarakstu, lai ietvertu a_sig (platums 1) veikt (platums 1), un q_sig (platums 1), nevis a_sig, pārvadāt, un q_sig bet atkal tam nebija nekādas ietekmes uz kļūdas ziņojumu.Tātad, cerams, kāds var redzēt kaut ko, ka es nevaru pievienotajā kodu?Vēlreiz paldies par jūsu palīdzību, es ceru dzirdēt no jums drīz.

Ciaran

************************************************** *****************
- Radix-2 Cell Array -

bibliotēkas IEEE;

izmantot ieee.std_logic_1164.all;
izmantot ieee.std_logic_unsigned.all;
izmantot ieee.numeric_std.all;

izmantot work.radix2_package.all;

-------------------------------------------------- ---------------------------------------

vienība radix2_cell_array ir

ports (CLK: ar std_logic;
reset: ar std_logic;
n: ar std_logic_vector (platums downto 0);
b: kas std_logic_vector (platums downto 0);
Ain: ar std_logic;
summa: no std_logic_vector (platums downto 0));

beigās radix2_cell_array;

-------------------------------------------------- ---------------------------------------

arhitektūra radix2_cell_array no radix2_cell_array ir

-------------------------------------------------- ---------------------------------------

komponents radix2_first_cell
ports (CLK: ar std_logic;
s: ar std_logic;
veic: no std_logic_vector (1 downto 0));
beigu komponents;

-------------------------------------------------- ---------------------------------------

komponents radix2_cell
ports (CLK: ar std_logic;
reset: ar std_logic;
s: ar std_logic;
n: ar std_logic;
b: kas std_logic;
Qin: ar std_logic;
Ain: ar std_logic;
CIN: ar std_logic_vector (1 downto 0);
summa: no std_logic;
qout: no std_logic;
août: no std_logic;
Tiesa: no std_logic_vector (1 downto 0));
beigu komponents;

-------------------------------------------------- ---------------------------------------

signāls cnt: vesels skaitlis;
signāls sum_in: std_logic_vector (platums downto 0);
signāls sum_out: std_logic_vector (platums downto 0);
signāls q_sig: std_logic_vector (platums 1 downto 0);
signāls a_sig: std_logic_vector (platums 1 downto 0);
signāls ir: radix2_carry_array;
signāls firstcarry: std_logic_vector (1 downto 0);
signāls sum_out_collect: std_logic_vector (((cnt_size 1) * (platums 1)) -1 downto 0);

-------------------------------------------------- ---------------------------------------

sākt

-------------------------------------------------- ---------------------------------------

Counter: process (CLK, reset)

sākt

ja reset = "1", tad

cnt <= 0;

elsif clk'event un CLK = "1", tad

ja cnt = cnt_size pēc tam

cnt <= 0;

vēl

cnt <= cnt 1;

beidzas, ja;

beidzas, ja;

end process Counter;

-------------------------------------------------- ---------------------------------------

Savākt: process (CLK, reset)

sākt

ja reset = "1", tad

sum_out_collect <= (pārējie => '0 ');

elsif clk'event un CLK = "1", tad

par i cnt_size downto 0 cilpa

uz j 0 līdz platumā cilpu

ja cnt = i, tad

sum_out_collect ((i * (platums 1)) j) <= sum_out (j);

beidzas, ja;

beigu cilpas;

beigu cilpas;

beidzas, ja;

end process Collect;

-------------------------------------------------- ---------------------------------------

Signal_Assign: process (cnt, Ain, firstcarry, sum_out_collect, a_sig, pārvadāt, q_sig)

sākt

ja cnt = 1, tad

a_sig (0) <= Ain;

pārvadāt (0) <= firstcarry;

q_sig (0) <= sum_out_collect (2 * (platums 1)); - cnt = 2 -

vēl

a_sig (0) <= a_sig (platums 1);

pārvadāt (0) <= pārvadāt (platums 1);

q_sig (0) <= q_sig (platums 1);

beidzas, ja;

end process Signal_Assign;

-------------------------------------------------- ---------------------------------------

Sum_Assign: process (CLK, reset)

sākt

ja reset = "1", tad

sum_in <= (pārējie => '0 ');

elsif clk'event un CLK = "1", tad

par i cnt_size-2 downto 1 cilpu

uz j 0 līdz platums-1 cilpa

ja cnt = i-1 un pēc tam

sum_in (j) <= sum_out_collect (((i 2) * (platums 1)) (j 1));

beidzas, ja;

beigu cilpas;

beigu cilpas;

uz j 0 līdz platums-1 cilpa

ja cnt = cnt_size pēc tam

sum_in (j) <= sum_out_collect (((2) * (platums 1)) (j 1));

beidzas, ja;

beigu cilpas;

par i cnt_size downto cnt_size-1 cilpa

uz j 0 līdz platums-1 cilpa

ja cnt = i-1 un pēc tam

sum_in (j) <= sum_out_collect (((i-(cnt_size-1)) * (platums 1)) (j 1));

beidzas, ja;

beigu cilpas;

beigu cilpas;

ja cnt = cnt_size pēc tam

sum_in (platums) <= '0 ';

vēl

par i cnt_size downto cnt_size-1 cilpa

ja cnt = i-1 un pēc tam

sum_in (platums) <= sum_out_collect (((i-(cnt_size-1)) * (platums 1)));

beidzas, ja;

beigu cilpas;

par i cnt_size-2 downto 1 cilpu

ja cnt = i-1 un pēc tam

sum_in (platums) <= sum_out_collect (((i 2) * (platums 1)));

beidzas, ja;

beigu cilpas;

beidzas, ja;

beidzas, ja;

end process Sum_Assign;

-------------------------------------------------- ---------------------------------------

radix2_first_cell_1: radix2_first_cell osta karte (CLK,
sum_out_collect (2 * (platums 1)),
firstcarry);

-------------------------------------------------- ---------------------------------------

Array_Generate1: par i platums downto 0 radīt

radix2_cell_1: radix2_cell osta karte (CLK,
reset,
sum_in (i),
n (i),
b (i)
q_sig (i),
a_sig (i),
pārvadāt (i),
sum_out (i),
q_sig (i 1),
a_sig (i 1),
pārvadāt (i 1));

beigās radīt Array_Generate1;

-------------------------------------------------- ---------------------------------------

summa <= sum_out;

-------------------------------------------------- ---------------------------------------

beigās radix2_cell_array;
************************************************** *****************

 

Welcome to EDABoard.com

Sponsor

Back
Top