在事件发生之前,Verilog事件控制是否会阻止过程的执行?请看下面的例子。
module test;
reg a;
initial begin
@(a) $display("%b", a);
$display("the_message");
end
endmodule
如果运行上述命令,则模拟结束,而没有打印the_message
。为什么?
这是否意味着@(a)
会阻塞直到a
发生变化?如果是这样,为什么模拟不会永远挂起,而不是不打印the_message
就终止?
谢谢
答案 0 :(得分:1)
事件驱动的模拟器一直运行,直到不再计划或明确终止($finish
)的活动事件为止。