33 / 37 · 概念
Setup、hold 與時序預算
分開最大與最小路徑延遲,計算獨立於時脈頻率的 hold 條件。
單元可免費閱讀,註冊課程即可儲存學習進度。
功能正確,也必須及時到達
同步路徑由傳送正反器正反器在指定的時脈邊緣儲存輸入,並保持至下一個邊緣。輸入須滿足 setup 與 hold 條件。 詳細內容 → 組合電路 → 接收正反器構成。兩時脈 skew 為 0 的簡化模型中,setup建立時間(setup)是輸入資料在時脈擷取邊緣之前,必須保持穩定的最短時間。若違反此條件,便無法保證儲存結果。 條件如下。uncertainty 保守納入抖動與設計餘裕。
是 clock-to-Q, 是組合最大延遲。扣除暫存器暫存器儲存多個位元的狀態。本課程中的同步暫存器會在時脈邊緣儲存指定的輸入。 詳細內容產生結果的時間與接收端 setup 時間後,剩餘區間才能用於組合電路。
用數值範例計算路徑限制
clock-to-Q 為 0.12 ns、組合延遲 1.80 ns、setup 0.15 ns、uncertainty 0.08 ns,最小週期為 2.15 ns。
500 MHz 等於 2 ns,因此 setup 餘裕為 −0.15 ns。這只是給定路徑與假設的範例;實際工作頻率保證,必須檢查所有相關路徑、corner 與約束。
沿著串聯相加的延遲項觀察,下方總和為 2.15 ns。箭頭表示時序預算的加總順序,不表示元件大小或延遲比例。
- 傳送端正反器: clock-to-Q: 0.12ns
- 組合路徑: 最大延遲:1.80ns
- 接收條件: setup: 0.15ns
- 設計裕量: 時序不確定量:0.08ns
Hold 是最快路徑的問題
同一邊緣若傳送資料變得太快,會侵入接收正反器穩定擷取舊值所需的時間。skew=0、略去額外餘裕的簡化 hold 條件保持時間(hold)是輸入資料在時脈擷取邊緣之後,仍必須保持穩定的最短時間。請依上下文區分它與一般的數值保持行為。如下。
最小 clock-to-Q 0.05 ns、最小組合延遲 0.03 ns、hold 0.10 ns,則不足 0.02 ns。增加週期也無法解決這個同邊緣條件,需要加入延遲、調整時脈路徑等實作措施。
Capture 時脈比 launch 晚到的正 skew,可能有利於一般單週期 setup,卻不利於 hold。不要只背正負號,應將資料到達與擷取邊緣畫在時間軸上。Multicycle、false path 等例外,不得在缺乏實際功能依據時用來消除時序警告。
自己試試看
週期 4 ns、 ns、 ns、uncertainty=0.1 ns,允許的最大組合延遲是多少?改成 8 ns 週期能解決 hold 違反嗎?
查看解說
最大允許延遲為 ns。一般同邊緣 hold 條件不會因週期加長而修復,須另外分析最短資料路徑與時脈到達時間。