1. 塊語句有兩種,一種是 begin-end 語句, 通常用來標志()執行的語句;一種是 fork-join 語句,通常用來標志()執行的語句。
答案:順序,并行
解析:
(1)begin_end順序塊,用于將多條語句組成順序塊,語句按順序一條一條執行(除了帶有內嵌延遲控制的非阻塞賦值語句),每條語句的延遲時間是相對于由上一條語句的仿真時間而言;
(2)fork-join并行塊,塊內語句同時執行。
2. 塊語句,下面這段語句中,第 40 時刻上,A、B 的值各是多少?
reg A;
reg B;
initial begin
fork
begin
A = 1;
#20 A = 0;
#30A=1;
#50 A = 0;
end
begin
B = 1;
#20 B = 0;
#30 B = 1;
#50 B = 0;
end
join
end
答案:A = 0,B = 0
解析:
塊語句有兩種,begin...end 和 fork...join,其中 fork...join 是并行塊,begin...end 是順序執行塊,可以相互嵌套。
上面,兩個 begin...end 之間是并行的,而各自 begin...end 內部是順序執行,A 和 B 的賦值邏輯是一樣的,所以要么都是 1,要么都是 0。
按照順序執行,A 前 20 個時間單位是 1,然后持續 30 個時間單位的 0,所以 40 時刻是 0,同理 B 也是 0。
審核編輯 :李倩
-
Verilog
+關注
關注
28文章
1351瀏覽量
110141
原文標題:Verilog 的塊語句 fork...join 和 begin...end
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論