23 / 63 · 概念
組合選擇與暫存輸出的延遲
分析 MUX 結果存入暫存器後,介面與延遲如何改變。
單元可免費閱讀,註冊課程即可儲存學習進度。
為什麼在輸出加暫存器
MUX多工器是依選擇訊號,將多個輸入之一連至輸出的組合電路。必須明確定義選擇位元與輸入編號的對應關係。 詳細內容 的組合輸出會隨選擇線或資料改變。在後方加入暫存器暫存器儲存多個位元的狀態。本課程中的同步暫存器會在時脈邊緣儲存指定的輸入。 詳細內容,可讓下一級使用時脈邊界確定的值,但觀察時點與延遲也會改變。
以 表示邊緣 k 前已準備好的輸入,以 表示該邊緣後的儲存值,則:
談延遲時,必須同時定義何時提出輸入、何時觀察輸出。若介面的輸入與輸出都定義為暫存器輸出,中間暫存器級數便決定週期延遲。
先畫出簡短時間表
| 邊緣前 | a | b | sel | y | 邊緣後 q |
|---|---|---|---|---|---|
| 1 | 0 | 1 | 0 | 0 | 0 |
| 2 | 0 | 1 | 1 | 1 | 1 |
| 3 | 1 | 0 | 1 | 0 | 0 |
若 sel 在邊緣 1 與 2 之間改變,y 先變,q 則保持到邊緣 2。直接拿 q 的變化與輸入變化比較,可能看起來像差一週期的錯誤。
各欄是有順序的觀察時點,不是等間距時間軸。此處 a=0、b=1,請看 sel 改變後、下一邊緣前 q 保持的區段。
查看波形資料
| 訊號 | 波形 | 匯流排值 |
|---|---|---|
| 事件 | 23452 | E1 後 → sel → 1 → E2 後 → sel → 0 → E3 後 |
| sel | 01.0. | |
| y | 01.0. | |
| q | 0.1.0 |
暫存器無法解決什麼
輸入若在擷取邊緣附近不穩定,即使加了暫存器也不安全。來自另一時脈域的選擇訊號需要另外設計同步機制。這也不代表組合輸出 y 的毛刺完全消失,必須確認介面是否只用 q,或其他路徑也使用 y。
自己試試看
考慮共用同一時脈的輸入暫存器 → MUX → 輸出暫存器。輸入暫存器在邊緣 k 產生的新值,通常在哪個輸出暫存器邊緣反映?
查看解說
正常的單週期同步路徑會在邊緣 k+1 擷取。邊緣 k 時,輸出暫存器看到輸入暫存器的舊值;新值經過 clock-to-Q 與組合延遲,準備供下一邊緣使用。不能認為新值在同一邊緣立刻穿過兩個暫存器。
✓ 已學習