Verilog事件控制是否阻止过程的执行?
Verilog事件控制是否会阻止过程的执行,直到事件发生?考虑下面的例子。Verilog事件控制是否阻止过程的执行?,verilog,system-verilog,system-verilog-assertions,Verilog,System Verilog,System Verilog Assertions,Verilog事件控制是否会阻止过程的执行,直到事件发生?考虑下面的例子。 module test; reg a; initial begin @(a) $display("%b", a); $display("the_message"); end endmodule 如果我运行上述命令,模拟将在不打印_消息的情况下结束。为什么? 这是否意味着@a将阻止直到a发生变化?如果是这样,为什么模拟不会永远挂起,而不是在不打印_消息的情况下终止 感谢事件驱动模拟器一直运行,
module test;
reg a;
initial begin
@(a) $display("%b", a);
$display("the_message");
end
endmodule
如果我运行上述命令,模拟将在不打印_消息的情况下结束。为什么?
这是否意味着@a将阻止直到a发生变化?如果是这样,为什么模拟不会永远挂起,而不是在不打印_消息的情况下终止
感谢事件驱动模拟器一直运行,直到不再安排活动事件,或明确终止$finish。感谢@dave_59,你能给我推荐一个URL,其中详细讨论了计划和事件处理吗?只是有点小细节,但在System Verilog中,我们没有提到过程。有任务[可以消耗时间,不返回值,具有零个或多个参数]和函数[不能消耗时间,必须返回值,具有一个或多个参数]。