一、Clock Setup Slack
Data Arrival Time 簡記為 DataA;
Data Required Time 簡記為 DataR;其他的類似,例如clkA。
Clock Setup Slack = DataR – DataA; (1)
DataA = Launch + uTco + Td-S + Td; (2)
其中,Launch 為 Launch Edge; uTco 為內部寄存器 clock-to-output 時間;Td-S為時鍾源到源端的時鍾延遲,S表示Source;Td某寄存器輸出端到另一寄存器輸入端的路徑延時。
DataR = clkA – uTsu – stUn; (3)
其中stUn表示 Clock Setup Uncertainty。Clock Uncertainty用來模擬jitter、skew或者建立一個時鍾的保護區。… Clock Uncertainty can be used to model jitter, skew and/or create a guard band for the analysis. 根據等式(1),考慮最壞情況,Latch的時候時鍾沿傾向於左偏,所以要減掉stUn。
clkA = Latch + Td-D; (4)
其中,Latch為 Latch Edge;Td-D為時鍾源到目的端的時鍾延時,D表示Destination。
考慮最壞的情況,
Clock Setup Slack
= DataR – DataA
= Latch + Td-D – uTsu –stUn – ( Launch + uTco + Td-S + Td )
= Latch + Td-D(min) – uTsu – stUn – ( Launch + uTco + Td-S(max) + Td(max) )
= (Latch - Launch) + (Td-D(min) – Td-S(max)) – uTsu –Td(max) – stUn - uTco (5)
二、Clock Hold Slack
Clock Hold Slack = DataA – DataR (6)
Hold Check時的DataA和clkA計算方法同等式(2)和等式(4),DataR的計算方法略有不同。
DataR = clkA + uThd + hdUn (7)
其中,hdUn表示Clock Hold Uncertainty。考慮最壞情況,Hold Check的時候Latch時鍾沿傾向於右偏,所以加上hdUn。
Clock Hold Slack
= DataA – DataR
= Launch + uTco + Td-S + Td – ( Latch + Td-D + uThd + hdUn )
= Launch + uTco + Td-S(min) + Td(min) – ( Latch + Td-D(max) + uThd + hdUn )
= –(Latch - Launch) - (Td-D(max) – Td-S(min)) – uThd + Td(min) – hdUn + uTco (8)

