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发生变化?如果是这样,为什么模拟不会永远挂起,而不是在不打印_消息的情况下终止 感谢事件驱动模拟器一直运行,

Verilog事件控制是否会阻止过程的执行,直到事件发生?考虑下面的例子。

module test;
  reg a;
  initial begin
    @(a) $display("%b", a);
    $display("the_message");
  end
endmodule
如果我运行上述命令,模拟将在不打印_消息的情况下结束。为什么?

这是否意味着@a将阻止直到a发生变化?如果是这样,为什么模拟不会永远挂起,而不是在不打印_消息的情况下终止


感谢

事件驱动模拟器一直运行,直到不再安排活动事件,或明确终止$finish。

感谢@dave_59,你能给我推荐一个URL,其中详细讨论了计划和事件处理吗?只是有点小细节,但在System Verilog中,我们没有提到过程。有任务[可以消耗时间,不返回值,具有零个或多个参数]和函数[不能消耗时间,必须返回值,具有一个或多个参数]。