22 / 63 · 概念
同步狀態轉移與時脈的角色
把同步系統解讀為讀取同一份前次狀態的暫存器集合。
單元可免費閱讀,註冊課程即可儲存學習進度。
整份狀態在同一邊緣一起更新
令同步電路狀態向量為 、輸入為 ,核心規格如下。
F 是下一狀態函數,G 是輸出函數。時脈不決定計算內容,而是決定何時儲存已算好的下一狀態。若有多個暫存器暫存器儲存多個位元的狀態。本課程中的同步暫存器會在時脈邊緣儲存指定的輸入。 詳細內容,可視為全部以同一份前次狀態決定自己的下一值。
Q 經過組合函數 F 產生下一狀態輸入,最後儲存的值再作為下一區間的 Q 回授,將邊緣之間的計算與邊緣上的儲存分開。
- 目前狀態 Q: 在時脈邊緣之間保持
- F(Q, X): 由輸入與先前狀態計算
- 在邊緣儲存: 計算結果成為下一個 Q
時脈週期必須滿足最慢路徑
輸入暫存器產生新值需要時間,通過組合電路到下一暫存器也需要時間;下一個邊緣前還必須留出 setup建立時間(setup)是輸入資料在時脈擷取邊緣之前,必須保持穩定的最短時間。若違反此條件,便無法保證儲存結果。 詳細內容 餘裕。程式寫得短,不代表可使用高時脈頻率。
10 ns 的時脈週期就是 100 MHz。
不要省略單位換算:1 ns 的倒數為 1 GHz,1 ps 的倒數為 1 THz。模擬中指定的週期是輸入排程,不是量測該實體電路能以這個頻率運作的結果。
判讀邊緣之間的訊號
暫存器輸出保持邏輯狀態直到下一個有效邊緣,組合輸出則可能在邊緣之間改變。上述保持規則的例外,也取決於重設重設將狀態回復至規格指定的初始值。必須一併定義它是同步或非同步,以及是否優先於其他控制訊號。 詳細內容採同步或非同步方式。本課程提供的練習採用單一時脈與同步重設。
閱讀波形前,先指定輸入有效時點、狀態更新時點與輸出觀察時點。比起「每個時脈執行一行程式」的軟體式解讀,狀態方程式更精確。
自己試試看
200 MHz 時脈的週期是多少?同一時脈連接的兩個暫存器 a、b,若 a<=d; b<=a;,b 會取得該邊緣剛更新的 a 嗎?
查看解說
週期為 5 ns。b 取得邊緣前的 a。兩個暫存器都從同一份前次狀態計算下一值,因此 d 的新值不會在一個邊緣就穿過兩級。