0
在監視器語句後移除#2重置使代碼無法工作。輸出僅爲0 x。而包括它工作正常。爲什麼?監視器語句verilog
module counter(out,clock,reset);
input clock,reset;
wire clock,reset;
output [3:0]out;
reg [3:0]out;
always @(posedge clock or negedge clock)
begin
if(reset)
out<=1'b0;
else
out<=out+1;
end
endmodule
module tb();
reg clock,reset;
output [3:0]out;
counter c(out,clock,reset);
initial
begin
clock=0;
reset=1;
end
initial
begin
$monitor("%d %d",$time,out);
#2 reset=0;
end
always
#1 clock=~clock;
initial
#100 $finish;
endmodule
你爲什麼推斷雙刃翻牌?你是否打算進行異步復位? – Greg
從您的顯示器中刪除$時間,這是否工作?這是有問題的原因是$時間不斷變化,並且$ monitor正在無限調用。 – Russell
另外,您應該只有一個初始塊。其他人應該總是阻止或者可能是fork/join。 – Russell