Verilog 事件控制是否会阻止过程的执行?

Does a Verilog event control block execution of a procedure?

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

module test;
  reg a;
  initial begin
    @(a) $display("%b", a);
    $display("the_message");
  end
endmodule

如果我 运行 以上,模拟结束时不会打印 the_message。为什么?

这是否意味着 @(a) 阻塞直到 a 改变?如果是这样,为什么模拟不会永远挂起而不是在不打印 the_message 的情况下终止?

谢谢

事件驱动模拟器 运行 直到没有更多活动事件被安排或明确终止 ($finish)。