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