instalacji i przytrzymaj czasie błąd w testbench verilog kod

T

tboy501

Guest
program działa w trybie behaviorial ale kiedy sythesize i próbują symulować bram wersja Mam problem z moim testbench kod daje mi się następujący komunikat o błędzie, a ja dont get any wyjścia (wszystko jest 0):

"/ CMC/kits/artisan_rcim/tsmc18.v" 23815: Timing naruszenia w prog_counter_testbench.prog_counter_inst. \ Latch_counter_reg [2]
$ setuphold <hold> (negedge G & & & (SandR == 1): 702, negedge D: 702, 1, 1);

ive chciał użyć początkowej zegar / 2 i zwiększyć czas trwania cyklu, ale wciąż daje mi ten sam błąd, I really dont know what else spróbować pls help.i chciała całkowicie wyeliminować zatrzask z mojego oryginalnego kodu programu, ale mój promotor mówi theres no problem z kodu programu, ale jego testbench że są błędne, jak staramy się im więcej niż jednego rejestru w tym samym czasie zegar iput zmian, ale idf, które zostały tak, to zegar / 2 powinna mieć zawyżana zegar czasu wrt do reszty z obwodu.im confused
(początkowy program jest programowalny zegar, który funkcjonuje w tym trybie jako minutnik)
//********** testbench *************************************
Moduł prog_counter_testbench ();
reg reset, CE, write_CR, CLK, obciążenia;
reg [7:0] data_in;
Drut data_out;
reg [7:0] danych;
parametr cykl = 40;
początkowej
zacząć
CLK = 0;
zawsze # cyklu CLK = ~ CLK;
koniec
początkowej
zacząć
reset = 0;
CE = 1;
write_CR = 0;
load = 0;
data_in = 0;
# cyklu
/ / Ustawienie zresetować do 1
reset = 1;
powtórz (2) # cyklu;
reset = 0;
# cyklu;
/ / CE ustawić na niskim poziomie, aby umożliwić chip
CE = 0;
# cyklu;
/ / Wartości obciążenia na licznik
data = 8'hfa;
load_counter (dane);
/ / Write_CR wartości rejestru do kontroli
/ /, Aby włączyć licznik i umieścić licznik w trybie 0
/ /, Który jest jednym ujęciu trybie
data = 8'b00000100;
write_CR_CR (dane);
# 2000;
$ stop;
koniec
Zadaniem write_CR_CR;
wejscie [7:0] danych;
zacząć
write_CR = 1;
data_in = dane;
powtórz (2) # cyklu;
write_CR = 0;
data_in = 0;
# cyklu;
koniec
endtask
Zadaniem load_counter;
wejscie [7:0] danych;
zacząć
load = 1;
data_in = dane;
powtórz (2) # cyklu;
load = 0;
data_in = 0;
# cyklu;
koniec
endtask

prog_counter prog_counter_inst (reset, CE, write_CR,
data_in, CLK, obciążenia, data_out);

początkowej
zacząć
$ display ( "Wykonanie w trybie 0");
$ monitorowania ( "% b CLK zresetować% CE% b b b data_in obciążenia%% b write_CR% b% data_out b" CLK, zresetuj, CE, obciążenia, data_in, write_CR, data_out);
koniec
endmodule

 

Welcome to EDABoard.com

Sponsor

Back
Top