“always”關(guān)鍵字意味著這個語句塊“總是”一直執(zhí)行。大多數(shù)時候“always”后面跟一個邊沿事件或者延遲。
always后面不能0延遲,不然仿真會一直hang,例如下面這行代碼:
always clk = !clk; //zero delay loop. Simulation
will get stuck at time 0
always #10 clk = !clk; //correct time control
在實際的項目當中“always” 后面經(jīng)常跟著一個邊沿事件上升沿或者下降沿。
always @(posedge) always @(negedge )
但問題是,你真的清楚posedge和negedge的準確定義么?
實際上:
posedge意味著
0->1, 0-> x, 0-> z, x->1, z->1
negedge意味著
1->0, x->0, z->0, 1->x, 1->z
還有一種不那么常見的寫法就是即對上升沿又對下降沿敏感:
always @(edge clk) begin ... end
或者
always @(clk) begin ... end
審核編輯:湯梓紅
-
Verilog
+關(guān)注
關(guān)注
28文章
1333瀏覽量
109719 -
System
+關(guān)注
關(guān)注
0文章
163瀏覽量
36744 -
代碼
+關(guān)注
關(guān)注
30文章
4671瀏覽量
67770
原文標題:SystemVerilog中的“always”語句塊
文章出處:【微信號:芯片驗證工程師,微信公眾號:芯片驗證工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論