硬體描述語言與驗證
上方generate語句的作用,下列何者正確?
genvar i;
generate
for (i = 0; i < 4; i = i + 1) begin : g
fifo u_fifo (.clk(clk), .din(din[i]), .dout(dout[i]));
end
endgenerate
- A將1個fifo花4個時脈重複使用4次
- B只在模擬時顯示4次fifo
- C製作4個fifo的module,並分別連接到din與dout不同的元素
查看答案與解析
正確答案:C. 製作4個fifo的module,並分別連接到din與dout不同的元素
generate語句中的for會依genvar的值展開其中的內容,重複產生電路的描述。此例會產生從g[0].u_fifo到g[3].u_fifo共4個fifo實體,分別連接到din[i]與dout[i]。若以parameter改變通道數或位元數,產生的數量也能隨之改變,因此能以簡短的方式撰寫具有規則結構的電路。
- A. 不是重複使用,而是排列4個電路。
- B. 這不是顯示,而是產生電路的描述。
- C. 正確。合成時會展開成4個電路。