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

时间:2019-06-23 19:48:25

标签: verilog system-verilog system-verilog-assertions

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

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

如果运行上述命令,则模拟结束,而没有打印the_message。为什么?

这是否意味着@(a)会阻塞直到a发生变化?如果是这样,为什么模拟不会永远挂起,而不是不打印the_message就终止?

谢谢

1 个答案:

答案 0 :(得分:1)

事件驱动的模拟器一直运行,直到不再计划或明确终止($finish)的活动事件为止。