在verilog中絕大多數(shù)使用的都是邊沿敏感事件,例如@(posedge event)和@(negedgeevent)。
在SystemVerilog中使用電平敏感事件控制的語(yǔ)法關(guān)鍵詞是“wait”。
“wait”不是去檢測(cè)一個(gè)邊沿事件的發(fā)生,而是去等待一個(gè)條件的滿足,否則會(huì)一直仿真進(jìn)程阻塞。
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
在這個(gè)例子中,我們使用“wait”等待a的值為1,只要在語(yǔ)句“wait (a == 1);” 后面時(shí)間滿足條件才會(huì)仿真繼續(xù)執(zhí)行。
因?yàn)樵跁r(shí)間0,a賦值為1,所有在時(shí)間10就打印了“wait complete”。
但是,如果我們使用的是@(posedge a),實(shí)際上在這個(gè)例子當(dāng)中是永遠(yuǎn)等待不到的。
審核編輯:湯梓紅
-
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110100 -
System
+關(guān)注
關(guān)注
0文章
165瀏覽量
36943
原文標(biāo)題:SystemVerilog中的電平敏感事件控制
文章出處:【微信號(hào):芯片驗(yàn)證工程師,微信公眾號(hào):芯片驗(yàn)證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論