Verilog HDL的賦值語句分為阻塞賦值和非阻塞賦值兩種。阻塞賦值是指在當(dāng)前賦值完成前阻塞其他類型的賦值任務(wù),阻塞賦值由=來完成;非阻塞賦值在賦值的同時(shí),其他非阻塞賦值可以同時(shí)被執(zhí)行,非阻塞賦值由《=來完成。
(1)組合邏輯中的阻塞和非阻塞
eg.
always@(a or b or c or d)
begin
t1 = a & b;
t2 = c & d;
out = t1 | t2;
end
當(dāng)abcd均由0變?yōu)?時(shí),采用阻塞賦值語句時(shí):t1=1,t2=1,out=1;
采用非阻塞賦值語句時(shí):t1=1,t2=1,out=0。非阻塞賦值每一條語句執(zhí)行不會阻止其他非阻塞語句的同時(shí)執(zhí)行,故此時(shí)的t1和t2還未更新,所以out的值不變。
(2)時(shí)序邏輯中的阻塞和非阻塞
eg.實(shí)現(xiàn)D觸發(fā)器
always@(posedge clk)
begin
q1 《= d;
q2 《= q1;
end
采用非阻塞賦值時(shí),q1=d,q2=q1;采用阻塞賦值時(shí)q1=q2=d,不符合D觸發(fā)器的要求。
綜述:對于組合邏輯(always模塊敏感列表為電平觸發(fā)),采用阻塞賦值(=);對于非阻塞邏輯(always模塊敏感列表為邊沿觸發(fā)),采用非阻塞賦值(《=)。
原文標(biāo)題:阻塞賦值與非阻塞賦值
文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
觸發(fā)器
+關(guān)注
關(guān)注
14文章
2000瀏覽量
61158 -
時(shí)序邏輯
+關(guān)注
關(guān)注
0文章
39瀏覽量
9163 -
非阻塞
+關(guān)注
關(guān)注
0文章
13瀏覽量
2175
原文標(biāo)題:阻塞賦值與非阻塞賦值
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論