T
tboy501
Guest
programom utvrde prekid u behaviorial modu, ali kad sam sythesize i pokušati simuliraju vrata verzija Imam problem sa mojim testbench broj jer mi sljedeće greške, a ja dont dobiti bilo koji izlazni (sve je 0):
"/ CMC/kits/artisan_rcim/tsmc18.v", 23815: Vrijeme prekršaja u prog_counter_testbench.prog_counter_inst. \ Latch_counter_reg [2]
$ setuphold <hold> (negedge G & & & (SandR == 1): 702, negedge D: 702, 1, 1);
ive pokušao koristiti početno sat / 2 i povećanje ciklus vrijeme, ali još uvijek mi ista pogreška, JA stvarno dont znati što drugo probati pls help.i želio potpuno eliminirati reza iz mog originalnog programa ali kod mog supervizora kaže theres no problem s programom, ali njegova je šifra testbench da je neispravan jer im pokušavate pročitati više od jedne registrirati istovremeno sat iput promjene, ali idf da je bilo tako, onda sat / 2 trebala bi imati skewed sat vremena wrt na ostale u krug.IM zbunjena
(inicijalni program je programabilni timer koji funkcionira na taj način kao odbrojavanje vremena)
//********** testbench *************************************
modul prog_counter_testbench ();
reg reset, CE, write_CR, clk, load;
reg [7:0] data_in;
žica data_out;
reg [7:0] podaci;
parametar ciklusa = 40;
početno
započeti
clk = 0;
zauvijek ciklus clk = # ~ clk;
kraj
početno
započeti
reset = 0;
CE = 1;
write_CR = 0;
load = 0;
data_in = 0;
# ciklus
/ / Postavljanje za vraćanje na 1
reset = 1;
repeat (2) # ciklus;
reset = 0;
# ciklus;
/ / Za postavljanje CE na niske da omogućite chip
CE = 0;
# ciklus;
/ / Učitavanje vrijednosti u counter
data = 8'hfa;
load_counter (podaci);
/ / Write_CR vrijednosti u kontroli registrirati
/ / Kako bi se omogućilo counter counter i stavi u mod 0
/ / To je jedan metak mod
data = 8'b00000100;
write_CR_CR (podaci);
# 2000;
$ zaustaviti;
kraj
Zadatak write_CR_CR;
input [7:0] podaci;
započeti
write_CR = 1;
data_in = data;
repeat (2) # ciklus;
write_CR = 0;
data_in = 0;
# ciklus;
kraj
endtask
Zadatak load_counter;
input [7:0] podaci;
započeti
load = 1;
data_in = data;
repeat (2) # ciklus;
load = 0;
data_in = 0;
# ciklus;
kraj
endtask
prog_counter prog_counter_inst (reset, CE, write_CR,
data_in, clk, opterećenje, data_out);
početno
započeti
$ zaslon ( "Izvršavanje u Mode 0");
$ monitor ( "% b clk vratiti b% CE% b% load b data_in% b write_CR% b% data_out B", clk, reset, CE, opterećenje, data_in, write_CR, data_out);
kraj
endmodule
"/ CMC/kits/artisan_rcim/tsmc18.v", 23815: Vrijeme prekršaja u prog_counter_testbench.prog_counter_inst. \ Latch_counter_reg [2]
$ setuphold <hold> (negedge G & & & (SandR == 1): 702, negedge D: 702, 1, 1);
ive pokušao koristiti početno sat / 2 i povećanje ciklus vrijeme, ali još uvijek mi ista pogreška, JA stvarno dont znati što drugo probati pls help.i želio potpuno eliminirati reza iz mog originalnog programa ali kod mog supervizora kaže theres no problem s programom, ali njegova je šifra testbench da je neispravan jer im pokušavate pročitati više od jedne registrirati istovremeno sat iput promjene, ali idf da je bilo tako, onda sat / 2 trebala bi imati skewed sat vremena wrt na ostale u krug.IM zbunjena
(inicijalni program je programabilni timer koji funkcionira na taj način kao odbrojavanje vremena)
//********** testbench *************************************
modul prog_counter_testbench ();
reg reset, CE, write_CR, clk, load;
reg [7:0] data_in;
žica data_out;
reg [7:0] podaci;
parametar ciklusa = 40;
početno
započeti
clk = 0;
zauvijek ciklus clk = # ~ clk;
kraj
početno
započeti
reset = 0;
CE = 1;
write_CR = 0;
load = 0;
data_in = 0;
# ciklus
/ / Postavljanje za vraćanje na 1
reset = 1;
repeat (2) # ciklus;
reset = 0;
# ciklus;
/ / Za postavljanje CE na niske da omogućite chip
CE = 0;
# ciklus;
/ / Učitavanje vrijednosti u counter
data = 8'hfa;
load_counter (podaci);
/ / Write_CR vrijednosti u kontroli registrirati
/ / Kako bi se omogućilo counter counter i stavi u mod 0
/ / To je jedan metak mod
data = 8'b00000100;
write_CR_CR (podaci);
# 2000;
$ zaustaviti;
kraj
Zadatak write_CR_CR;
input [7:0] podaci;
započeti
write_CR = 1;
data_in = data;
repeat (2) # ciklus;
write_CR = 0;
data_in = 0;
# ciklus;
kraj
endtask
Zadatak load_counter;
input [7:0] podaci;
započeti
load = 1;
data_in = data;
repeat (2) # ciklus;
load = 0;
data_in = 0;
# ciklus;
kraj
endtask
prog_counter prog_counter_inst (reset, CE, write_CR,
data_in, clk, opterećenje, data_out);
početno
započeti
$ zaslon ( "Izvršavanje u Mode 0");
$ monitor ( "% b clk vratiti b% CE% b% load b data_in% b write_CR% b% data_out B", clk, reset, CE, opterećenje, data_in, write_CR, data_out);
kraj
endmodule