硬體描述語言與驗證
關於SystemVerilog的約束隨機驗證(constrained-random verification)的說明,下列何者正確?
- A在規格允許的範圍或組合條件(約束)之內隨機產生輸入的值,連人想不到的情況也廣泛地嘗試
- B完全隨意地產生輸入的值,並給予許多規格中沒有的值
- C輸入的值全部由人以手工撰寫
查看答案與解析
正確答案:A. 在規格允許的範圍或組合條件(約束)之內隨機產生輸入的值,連人想不到的情況也廣泛地嘗試
只靠人設計的測試(指定型測試),容易漏掉設計者未預期的組合所造成的缺陷。在約束隨機驗證中,會寫下例如「位址是4的倍數」「長度為1~256」之類的約束,並在其中隨機產生輸入,因此只用有意義的輸入就能嘗試許多情況。嘗試了哪些情況以覆蓋率(coverage)來衡量,不足的部分則透過變更約束,或以指定型測試來補足。
- A. 正確。與覆蓋率搭配使用。
- B. 若盡是規格中沒有的輸入,就不是有意義的驗證。
- C. 那是指定型測試。