12 / 37 · 概念
MUX 驗證:窮舉檢查與性質
分別檢查組合輸入覆蓋與儲存行為,並縮小反例。
單元可免費閱讀,註冊課程即可儲存學習進度。
什麼才算正確
1 位元 a、b 加上 sel,共八組輸入。這種規模下,逐一確認全部情況很有效。寬度 W 的 MUX多工器是依選擇訊號,將多個輸入之一連至輸出的組合電路。必須明確定義選擇位元與輸入編號的對應關係。 詳細內容 若直接窮舉全部輸入,連同選擇線共有 組,因此寬度稍增就需要其他策略。
輸出寬度為 W 時,各位元的選擇規則如下。
依錯誤類型挑選激勵
| 要檢查的錯誤 | 有效的輸入或觀察 |
|---|---|
| a/b 接反 | 讓 a、b 不同,比較 sel=0 與 1 |
| 位元順序顛倒 | 只有一個 1 的 walking-one 樣式 |
| stuck-at 固定值缺陷 | 全 0、全 1、交錯位元樣式 |
| 儲存邊緣錯誤 | 在邊緣間改變輸入,確認 q 保持 |
| 差一週期延遲 | 讓連續邊緣的預期值彼此不同 |
測試很多不等於驗證良好,必須說得出要偵測哪種缺陷。
下方只選 a、b 不同的情況,每欄是一個測試向量。錯誤選擇式在四欄都產生與 expected 相反的值。
查看波形資料
| 訊號 | 波形 | 匯流排值 |
|---|---|---|
| a | 0.1. | |
| b | 1.0. | |
| sel | 0101 | |
| 預期值 | 01.0 | |
| 選擇反向錯誤 | 10.1 |
參考模型應獨立於實作
直接複製 DUT 程式,可能把同一錯誤實作兩次。用規格的真值表真值表完整列出所有可能的輸入組合,以及每個組合的輸出。隨時間的變化須另外以波形確認。 詳細內容或索引選擇建立預期值,q 則另外追蹤先前擷取的狀態。出現 mismatch 後,嘗試縮成仍會失敗的最短輸入序列,再解釋原因。
不要只比對最後狀態,應在每個觀察點記錄實際值、預期值與輸入。這份紀錄能區分「模擬執行過」與「符合規格」。
自己試試看
8 位元 MUX 只用 a=0x00、b=0xFF 檢查兩種選擇值。這樣也能找出輸出位元順序顛倒的錯誤嗎?
查看解說
不能。0x00 與 0xFF 顛倒位元順序後仍相同。應用 0x01、0x02 等能顯示位置的樣式,並逐一比較輸出位元。
✓ 已學習