硬體描述語言與驗證

Verilog的wire型與reg型的差異,下列何者正確?

  1. Areg一定會成為正反器,wire一定會成為組合電路
  2. Bwire表示以assign語句等相連的佈線,reg表示在always區塊中被賦值的訊號,但reg不一定會成為正反器
  3. Cwire是用來放入數值的型別,reg是用來放入文字的型別
查看答案與解析

正確答案:B. wire表示以assign語句等相連的佈線,reg表示在always區塊中被賦值的訊號,但reg不一定會成為正反器

在Verilog中,規定由assign語句或module輸出所驅動的訊號宣告為wire,在always區塊中被賦值的訊號宣告為reg。reg看起來像是「暫存器(register)」的縮寫,但若在always @(*)中賦值,就會成為組合電路,而不是正反器。是否成為正反器,取決於是否以時脈邊緣更新值的寫法。在SystemVerilog中,兩者都可以用logic型來撰寫。

  • A. 即使名稱是reg,也可能成為組合電路。
  • B. 正確。reg在always @(*)中也可以成為組合電路。
  • C. 這不是文字的型別。
練習這個領域 前往領域頁面

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

  1. 上方Verilog的assign語句所表示的電路,下列何者正確?
  2. 上方Verilog的描述經邏輯合成後所產生的電路,下列何者正確?
  3. Verilog的非阻塞賦值(<=)的動作,下列何者正確?
  4. 在上方的描述中,時脈上升之前a=0、b=1。上升之後a與b的值會變成什麼?
  5. 原本打算做成2級位移暫存器,卻如上方般以阻塞賦值(=)撰寫。會發生的問題,下列何者正確?

這個領域的比較