下列哪一項是對正反器設置時間的正確說明?
- A時脈邊緣之後,資料必須持續保持的最短時間
- B時脈邊緣之前,資料輸入必須保持穩定的最短時間
- C從開啟電源到開始動作的時間
本計算器針對單一正反器到正反器的路徑,套用與靜態時序分析(STA)相同的推理,求出建立時間與保持時間的餘裕(slack)。改變延遲與偏移,即可看出哪項檢查最先失敗。所有數值單位皆為奈秒(ns)。
符合 違反
上排檢查最晚抵達的資料是否早於建立時間期限(虛線);下排檢查最早抵達的資料是否晚於保持時間期限。餘裕為負表示違反。
其他輸入維持目前的值,只讓選擇的輸入在目前值的 1/4 到 4 倍之間變化時的結果。紅點是目前的值。
新資料抵達擷取端正反器的最晚時間,為最大時脈至 Q 延遲加上最大組合邏輯延遲。資料必須在下一個擷取邊緣(週期加上偏移)減去建立時間與時脈不確定性之前抵達。建立時間餘裕為期限減去抵達時間;若為負值,表示週期太短,必須降低頻率或縮短邏輯路徑。
保持時間檢查的是:在同一個時脈邊緣發送的資料,是否抵達得太快,以致破壞擷取端正反器仍在鎖存的值。最早抵達時間,即最小時脈至 Q 延遲加上最小組合邏輯延遲,必須晚於偏移加上保持時間。保持時間檢查中不含時脈週期,因此降低時脈頻率永遠無法修正保持時間違反;工具會改在短路徑上插入延遲緩衝器。
當擷取時脈比發送時脈晚到(正偏移)時,建立時間期限會往後延,有利於建立時間,但不利於保持時間。負偏移則相反。設計者有時會刻意加入偏移來挽救關鍵的建立時間路徑(useful skew),但必須重新檢查保持時間。實際的 STA 會以最差情況檢查每一條路徑:建立時間在慢速角落(slow corner)檢查,保持時間在快速角落(fast corner)檢查。
建立時間餘裕恰好為零時的週期,即為該路徑的最小週期,其倒數就是最高頻率:fmax = 1 / (時脈至 Q 延遲 + 組合邏輯延遲 + 建立時間 + 不確定性 − 偏移)。晶片的最高頻率由其最慢的路徑,也就是關鍵路徑決定。增加管線級數可縮短每一級的邏輯,提高可達到的頻率。
建立時間違反可透過降低時脈頻率、加速或重新架構邏輯,或增加管線級數來修正。保持時間違反與頻率無關,因此要在短路徑上加入緩衝器以增加延遲來修正。
兩者都會,且方向相反。正偏移(擷取時脈較晚抵達)有利於建立時間、不利於保持時間;負偏移則相反。
餘裕就是時序上的裕度:要求時間減去實際抵達時間。餘裕為正表示通過檢查;餘裕為負即為違反。