SV中wait和@的区别

发布时间 2023-08-15 10:17:52作者: 小司同学

【1】wait和@的区别:
@只能等待成功在之后时刻触发的事件,通过@和->同时发生可能会产生竞争;
wait则是可以等待成功当前及以后触发的事件。
从上面的解释看起来好像是wait要优于@,不一定的,
例如:
[code1]
forever begin
$display("waiting to start…");
wait (a.triggered);
$display("waiting to end…");
end

[code2]
forever begin
$display("waiting to start…");
@ (a.triggered);
$display("waiting to end…");
end

两个代码的结果是:代码1会不断重复打印 waiting to start….
                                                                    waiting to end…
                                 因为代码1在等待后面并没有产生延时,最终代码1陷入死循环,被挂死。

                                 代码2则恰好可以避免这种没有延时的循环。