如果我所說的任務,並通過引用傳遞的事件,它不會被裏面的任務檢測到事件被觸發後: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可以被解釋爲等待引用變爲另一個事件對象,而不是事件觸發器本身。可能應該被定爲非法構造。 –