Altifigence Academy

37 / 63 · 概念

序列輸入與資料框邊界

定義輸入順序與有效邊緣,計算串列轉並列的位元配置。

將時間順序轉成向量位置

序列輸入每個有效邊緣傳一位元。3 位元暫存器暫存器儲存多個位元的狀態。本課程中的同步暫存器會在時脈邊緣儲存指定的輸入。 詳細內容使用 q<={q[1:0],din},初始 q=000,依序接收 1,0,1,1,結果如下。

已接受位元數din更新後 q
11001
20010
31101
41011

新位元從右側進入,舊位元朝較高索引移動。暫存器是最近三位元的滑動視窗;接受第四位元時,第一位元會遺失。

每欄是一次上升緣上升緣是時脈由 0 變成 1 的瞬間。它與表示整段 CLK=1 期間的高準位不同。 詳細內容的觀察紀錄。輸入為邊緣前值,名稱含「後」的狀態為更新後值。欄位對齊表示取樣順序,並未繪出實體傳播延遲傳播延遲是輸入改變後,輸出穩定至正確值所需的時間。邏輯式是否等價與時間特性是兩個不同問題。 詳細內容。
第一欄是 reset。之後接受的 1,0,1,1 中,只有最近三位留在 q。請觀察最後一欄第一個位元被推出。

序列輸入轉為平行狀態的過程
查看波形資料
波形資料:每個字元表示一個區間;句點保持先前狀態;p 表示一個時脈週期。
訊號波形匯流排值
邊緣23452E0 → E1 → E2 → E3 → E4
reset10...
din0101.
q 後23452000 → 001 → 010 → 101 → 011

MSB-first 與 LSB-first 是通訊規則

8 位元值若從 MSBMSB是位權最高的位元。索引編號會隨向量的宣告方向而異,因此不能一律假設它的編號最大。 詳細內容 傳送,按上述方式接收八次便可還原原始向量。若從 LSBLSB是位權最低的位元。須同時確認表示方向與索引規則。 詳細內容 傳送,排列會相反,需改變連接方向或最後重新排列。這不是顯示選項,而是收發雙方必須約定的協定。

資料值本身無法標示資料框

需要狀態指出哪個邊緣是第一位、已收幾位、何時可消費結果。通常搭配已接受位元計數器與 valid 或 done。輸入若有暫停週期,應計算接受的資料數,而非時脈數。

acceptk=validk∧readykaccept_k=valid_k\land ready_k

採用 ready/valid交握(handshake)規定傳送端的 valid 與接收端的 ready 在同一邊緣皆為 1 時,才確定完成傳輸。等待期間如何保持資料也是契約的一部分。 詳細內容 介面時,只有上式成立的邊緣,shift 與計數器才一起更新。若只有一方套用 enable,資料與長度資訊會錯位。本課程連續輸入的練習,是每個資料邊緣都接受的簡化情況。

自己試試看

8 位元資料框的第四個位元後,valid 有兩週期為 0。ready=1 時,接收計數器與移位暫存器應如何動作?

查看解說

兩週期 accept 都為 0,因此計數器與資料暫存器一起保持。下一個有效位元才是第五個。若只計時脈,資料尚不足就可能錯誤宣告完成。

此選擇適用於本瀏覽器,隨時可從頁尾變更。