硬體描述語言與驗證

上方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
  1. A將1個fifo花4個時脈重複使用4次
  2. B只在模擬時顯示4次fifo
  3. 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個電路。
練習這個領域 前往領域頁面

硬體描述語言與驗證的其他題目

  1. HDL驗證中所使用的Lint工具的作用,下列何者正確?
  2. 對邏輯合成或佈局繞線之後的電路(閘級網表),加入延遲資訊進行模擬的主要目的為何?
  3. 如上方的描述般,不經過正反器,而是組合電路的輸出回到自己的輸入的形式稱為什麼?又為什麼應該避免?
  4. 將上方的描述針對FPGA進行邏輯合成時,一般會如何處理?
  5. 在組合電路中,比較長串的if・else if描述與條件互不重疊的case語句描述時的說明,下列何者正確?

這個領域的比較