在verilog中絕大多數使用的都是邊沿敏感事件,例如@(posedge event)和@(negedgeevent)。
在SystemVerilog中使用電平敏感事件控制的語法關鍵詞是“wait”。
“wait”不是去檢測一個邊沿事件的發(fā)生,而是去等待一個條件的滿足,否則會一直仿真進程阻塞。
module level; int a; initial begin # 10; wait (a == 1); $display($stime,,, "wait complete"); end initial begin a = 1; end endmodule
仿真log:
wait complete V C S S i m u l a t i o n R e p o r t
在這個例子中,我們使用“wait”等待a的值為1,只要在語句“wait (a == 1);” 后面時間滿足條件才會仿真繼續(xù)執(zhí)行。
因為在時間0,a賦值為1,所有在時間10就打印了“wait complete”。
但是,如果我們使用的是@(posedge a),實際上在這個例子當中是永遠等待不到的。
審核編輯:湯梓紅
-
Verilog
+關注
關注
28文章
1351瀏覽量
110074 -
System
+關注
關注
0文章
165瀏覽量
36928
原文標題:SystemVerilog中的電平敏感事件控制
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論