【发布时间】:2018-07-14 13:19:44
【问题描述】:
对于下面的 verilog dff 示例输出最后显示(仅显示前两行)。我无法理解为什么总是在零时间执行块,而我已经写了 always@(posedge clk)。 posedge clk 没有在零时间发生。你能帮我理解输出吗?
module main;
reg d,clk;
wire q;
always #5 clk++;
always #10 d++;
dff dff(d,clk,q);
initial
begin
d = 1;
clk = 1;
$monitor("time = %d d = %d clk = %d q = %d",$time,d,clk,q);
#50 $finish ;
end
endmodule
module dff(input wire d,clk, output reg q);
always @(posedge clk)
begin
q = d;
$display("time = %d inside module dff",$time);
end
endmodule
Output is
time = 0 inside module dff
time = 0 d = 1 clk = 1 q = 1
...
【问题讨论】:
标签: verilog