13 / 24 · 概念
接受事件與停頓期間的穩定性
分配來源端與接收端責任,並保留停頓的負載內容。
單元可免費閱讀,註冊課程即可儲存學習進度。
傳輸需要兩個訊號在邊緣同時成立
Valid 承諾來源端有負載內容可提供。Ready 承諾接收端可在當前邊緣接受一筆。兩個訊號皆為高的上升緣,恰好傳輸一筆交易。負載內容包含所有伴隨欄位,例如標籤、操作碼或位址。valid 持續為高,可能代表一筆停頓項目,也可能代表在連續 ready 邊緣傳輸的一連串項目。
valid 為高、ready 為低時,保持 valid 與完整負載內容穩定。我們的契約只允許重設或明確 flush 取消此義務。若來源端等 ready 才宣告 valid,接收端又等 valid 才宣告 ready,兩者可能永遠等待。準備好的項目應獨立於 ready 提供。這些交握與穩定性原則記載於 Arm AMBA AXI 規格 A3 節。此小型串流並非完整 AXI 介面的實作。
| 邊緣 | valid | ready | 負載內容 | 傳輸 |
|---|---|---|---|---|
| 0 | 1 | 0 | tag4,y9 | 無 |
| 1 | 1 | 0 | tag4,y9 | 無 |
| 2 | 1 | 1 | tag4,y9 | tag4 一次 |
| 3 | 1 | 1 | tag5,y12 | tag5 一次 |
| 4 | 0 | 1 | 無關 | 無 |
Tag4 在整個停頓期間都必須保持不變。邊緣 2 傳輸後,來源端可呈現 tag5。邊緣 4 只有 ready,不會建立交易。只計算 valid 可能遺失輸入;只讀取資料可能重複輸出。
這些規則假設單一時脈域。它們不解決跨時脈域或亞穩態。以各自交握計算被接受輸入與已交付輸出。沒有重設時,接受數減去交付數,必須等於內部尚未完成的工作量。將被接受標籤排入佇列,只在交付時移除。將此計數與停頓負載檢查結合,即使算術值碰巧相同,也能偵測遺失、重複與身分改變。
自己試試看
表中四個邊緣的 valid 為高。發生多少次傳輸?哪些標籤被傳輸?若邊緣 1 的 y 變成 10,違反哪項規則?
查看解說
發生兩次傳輸:邊緣 2 與 3 的標籤 4 與 5。邊緣 1 改變 y,違反了邊緣 0 開始停頓的交易之負載穩定性。
✓ 已學習