硬體描述語言與驗證

在組合電路的always區塊中,為了防止非預期的閂鎖器而常用的寫法為何?

  1. A盡量多寫條件分支,並省略else
  2. B在區塊開頭,先對輸出的所有訊號賦予預設值,再撰寫條件分支
  3. C將輸出的訊號全部設為wire,並在always中賦值
查看答案與解析

正確答案:B. 在區塊開頭,先對輸出的所有訊號賦予預設值,再撰寫條件分支

在區塊開頭像「y = 0; valid = 0;」一樣先為輸出賦予預設值,之後的條件分支無論走哪條路徑,至少都已賦予預設值,因此不需要保持值,也就不會產生閂鎖器。這在條件眾多的狀態機輸出描述等情況特別有用。若使用SystemVerilog的always_comb,產生閂鎖器時工具會發出警告。

  • A. 省略else會成為閂鎖器的原因。
  • B. 正確。無論走哪條路徑,值都一定會被決定。
  • C. wire無法在always中賦值。
練習這個領域 前往領域頁面

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

  1. 下列Verilog的描述中,在邏輯合成時不會成為電路而被忽略的(模擬用描述)是哪一個?
  2. 如上方般計算8位元d中1的個數的描述,經邏輯合成後會成為什麼樣的電路?
  3. 上方描述的重置種類與動作,下列何者正確?
  4. 同步重置與非同步重置的差異,下列何者正確?
  5. 在使用非同步重置的電路中,先以2級正反器使重置的解除(由0變為1)與時脈同步,再分送給各電路,其原因下列何者正確?

這個領域的比較