43 / 63 · 理解測驗
設計確認:延遲、對齊與輸入保留
不只檢查移位方向,也確認有效資料移動次數與觀察基準。
單元可免費閱讀,註冊課程即可儲存學習進度。
固定延遲的計數基準
3 位元暫存器暫存器儲存多個位元的狀態。本課程中的同步暫存器會在時脈邊緣儲存指定的輸入。 詳細內容只在有效輸入時執行 q <= {q[1:0], din},valid=0 時保持 q。重設重設將狀態回復至規格指定的初始值。必須一併定義它是同步或非同步,以及是否優先於其他控制訊號。 詳細內容後從 0 開始,在不同上升緣上升緣是時脈由 0 變成 1 的瞬間。它與表示整段 CLK=1 期間的高準位不同。 詳細內容依序套用 (valid,din) = (1,1), (0,0), (1,0), (1,1)。
總邊緣數是四個,實際移動卻只有三次。請確認狀態追蹤與「延遲幾週期」的說法沒有矛盾。
每欄是一次上升緣上升緣是時脈由 0 變成 1 的瞬間。它與表示整段 CLK=1 期間的高準位不同。 詳細內容的觀察紀錄。輸入為邊緣前值,名稱含「後」的狀態為更新後值。欄位對齊表示取樣順序,並未繪出實體傳播延遲傳播延遲是輸入改變後,輸出穩定至正確值所需的時間。邏輯式是否等價與時間特性是兩個不同問題。 詳細內容。
圖中展開題目的輸入順序。第二欄 valid=0,狀態保持;不要混淆 q 變化次數與時脈欄數。
查看波形資料
| 訊號 | 波形 | 匯流排值 |
|---|---|---|
| 邊緣 | 2345 | E0 → E1 → E2 → E3 |
| valid | 101. | |
| din | 10.1 | |
| 接受次數 | 2.34 | 1 → 2 → 3 |
| q 後 | 2.34 | 001 → 010 → 101 |
進一步設計問題
擴展為每次接收 8 位元資料的管線管線以暫存器將計算分為多個階段,讓多筆輸入重疊處理。資料、valid 與控制訊號必須在各階段對齊。 詳細內容時,若資料暫存器有三階,valid 卻只延遲一階,實作就是錯的。應對資料與 valid 套用相同移動規則,或一起設計可暫停緩衝區的接受與傳遞規則。
自己試試看
若改成不論 valid、每個邊緣都移動,上述輸入序列的最後 q 會如何改變?
查看解說
連 invalid 週期的 din=0 也被儲存,因此為 001 → 010 → 100 → 001。最終 001 不同於原本只移動有效輸入的 101。實作必須遵守忽略 invalid 資料值的契約。
套用本文含 valid 的輸入序列後,最後 q 與實際移動次數為何?
狀態為 000 → 001 → 001 → 010 → 101。第二個邊緣 valid=0,狀態保持。答案需同時符合移位方向、移動條件與次數。