如果我所说的任务,并通过引用传递的事件,它不会被里面的任务检测到事件被触发后:Systemverilog中的事件可以通过引用传递吗?
event e;
fork
test_ev(e);
begin
#1ms;
->e;
end
join
...
task ev(ref event e);
@(e)
do_something; // this will never happen
endtask
与此试验台打围:http://www.edaplayground.com/x/5YS7,这似乎有些模拟器如参考事件,有些则不。没有发出编译警告,但@(..)语句永远不会传递。
这似乎是一个有效的Systemverilog用于我,有没有我失踪的警告?
哇事件的这个类行为是不直观的..所以现在我明白为什么'输入'的作品,它是有道理的使用它的方式。我仍然好奇为什么在使用'ref'时它不起作用?不应该这样在任务内创建一个引用吗? – chinocolerico
我不认为LRM在这里很清楚。由于这是对引用事件的引用,所以@e可以被解释为等待引用变为另一个事件对象,而不是事件触发器本身。可能应该被定为非法构造。 –