一、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)