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
)。
Verilog 事件控制是否会在事件发生之前阻止过程的执行?考虑下面的例子。
module test;
reg a;
initial begin
@(a) $display("%b", a);
$display("the_message");
end
endmodule
如果我 运行 以上,模拟结束时不会打印 the_message
。为什么?
这是否意味着 @(a)
阻塞直到 a
改变?如果是这样,为什么模拟不会永远挂起而不是在不打印 the_message
的情况下终止?
谢谢
事件驱动模拟器 运行 直到没有更多活动事件被安排或明确终止 ($finish
)。