Altifigence Academy

33 / 37 · 概念

Setup、hold 與時序預算

分開最大與最小路徑延遲,計算獨立於時脈頻率的 hold 條件。

功能正確,也必須及時到達

同步路徑由傳送正反器正反器在指定的時脈邊緣儲存輸入,並保持至下一個邊緣。輸入須滿足 setup 與 hold 條件。 詳細內容 → 組合電路 → 接收正反器構成。兩時脈 skew 為 0 的簡化模型中,setup建立時間(setup)是輸入資料在時脈擷取邊緣之前,必須保持穩定的最短時間。若違反此條件,便無法保證儲存結果。 條件如下。uncertainty 保守納入抖動與設計餘裕。

Tclk≥tcq,max+tpd,max+tsetup+tuncertaintyT_{clk}\ge t_{cq,\mathrm{max}}+t_{pd,\mathrm{max}}+t_{setup}+t_{uncertainty}

tcqt_{cq} 是 clock-to-Q,tpdt_{pd} 是組合最大延遲。扣除暫存器暫存器儲存多個位元的狀態。本課程中的同步暫存器會在時脈邊緣儲存指定的輸入。 詳細內容產生結果的時間與接收端 setup 時間後,剩餘區間才能用於組合電路。

用數值範例計算路徑限制

clock-to-Q 為 0.12 ns、組合延遲 1.80 ns、setup 0.15 ns、uncertainty 0.08 ns,最小週期為 2.15 ns。

fmax≤12.15 ns≈465.1 MHzf_{\mathrm{max}}\le\frac{1}{2.15\ \mathrm{ns}}\approx465.1\ \mathrm{MHz}

500 MHz 等於 2 ns,因此 setup 餘裕為 −0.15 ns。這只是給定路徑與假設的範例;實際工作頻率保證,必須檢查所有相關路徑、corner 與約束。

沿著串聯相加的延遲項觀察,下方總和為 2.15 ns。箭頭表示時序預算的加總順序,不表示元件大小或延遲比例。

消耗 setup 時間預算的路徑
  1. 傳送端正反器: clock-to-Q: 0.12ns
  2. 組合路徑: 最大延遲:1.80ns
  3. 接收條件: setup: 0.15ns
  4. 設計裕量: 時序不確定量:0.08ns

Hold 是最快路徑的問題

同一邊緣若傳送資料變得太快,會侵入接收正反器穩定擷取舊值所需的時間。skew=0、略去額外餘裕的簡化 hold 條件保持時間(hold)是輸入資料在時脈擷取邊緣之後,仍必須保持穩定的最短時間。請依上下文區分它與一般的數值保持行為。如下。

tcq,min+tcd,min≥tholdt_{cq,\mathrm{min}}+t_{cd,\mathrm{min}}\ge t_{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、tcq=0.2t_{cq}=0.2 ns、tsetup=0.3t_{setup}=0.3 ns、uncertainty=0.1 ns,允許的最大組合延遲是多少?改成 8 ns 週期能解決 hold 違反嗎?

查看解說

最大允許延遲為 4−0.2−0.3−0.1=3.44-0.2-0.3-0.1=3.4 ns。一般同邊緣 hold 條件不會因週期加長而修復,須另外分析最短資料路徑與時脈到達時間。

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