硬體描述語言與驗證

在測試平台中,若在與時脈上升相同的時刻以阻塞賦值改變對電路的輸入,有時會發生問題。主要原因與對策的組合,下列何者正確?

  1. A因為電路會取入改變前還是改變後的值,會隨執行順序而變(競爭)。將輸入從時脈邊緣稍微錯開,或以非阻塞賦值來改變
  2. B因為時脈的頻率會自動降低。將時脈加快
  3. C因為阻塞賦值在測試平台中無法使用。全部改為assign語句
查看答案與解析

正確答案:A. 因為電路會取入改變前還是改變後的值,會隨執行順序而變(競爭)。將輸入從時脈邊緣稍微錯開,或以非阻塞賦值來改變

若在同一時刻,發生測試平台改寫輸入的處理與電路的正反器取入輸入的處理,則依模擬器先執行哪一個,取入的值可能是舊值,也可能是新值。這是模擬的競爭(race),結果也可能因模擬器而異。可以透過在下降時改變輸入、稍微延遲、使用非阻塞賦值或SystemVerilog的clocking block等來防止。

  • A. 正確。這是避免模擬競爭(race)的做法。
  • B. 頻率並不會改變。
  • C. 在測試平台中也可以使用阻塞賦值。
練習這個領域 前往領域頁面

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

  1. 自我檢查型測試平台的特徵,下列何者正確?
  2. 在驗證中,使用以C語言等撰寫的參考模型(黃金模型,golden model)的目的,下列何者正確?
  3. 將模擬的結果輸出成VCD等格式的檔案,其主要目的為何?
  4. 在使用隨機輸入的測試中,先記錄亂數種子(seed)的原因,下列何者正確?
  5. 關於SystemVerilog的約束隨機驗證(constrained-random verification)的說明,下列何者正確?

這個領域的比較