IC数字后端知识角

Clock Skew

2022-06-09  本文已影响0人  飞奔的大虎

Clock Skew (时钟偏移) 分为 Global skew 和 Local skew 两大类。

Global skew

Global skew 是泛指 design 中任意两个寄存器 latency 之差的最大值。

Local skew

Local skew 是指 design 中两个相关寄存器 latency 之差的最大值。因此,在数字后端设计实现中,我们更多的是关注 local skew。因为 local skew 会直接影响到我们的时序(setup 和 hold)。

图 1 所示,FF1 和 FF2 的 Local skew 为 3 个 buffer 的 delay,即 150ps(本文假定一个 buffer delay 为 50ps)。FF3 和 FF4 直接的 Local skew 为 100ps。那么 Global skew 是多少呢?

图 1 Global skew 和 Local skew

既然 clock skew 是表示两个 sink clock latency 的差值,那么就存在正负值,分别为 Positive skew 和 Negative skew。

Positive skew

Positive skew 是指时钟 clock 到达 launch FF1 的时间 (Tff1)早于时钟到达 capture FF2 的时间(Tff2)。图 2 所示为 Positive skew 的例子。

图 2 Positive skew 示意图

对应的 setup 和 hold 检查波形如图 3 所示。默认情况下 setup 检查的 edge 如图中绿色标识,hold 检查的 edge 如图中红色标识。显然在 positive skew 的情景下,setup 检查变得宽松点,hold 检查则变得更为严格。

吾爱 IC 社区公众号之前也推送过无数篇关于 setup,hold 的检查方式,如何画波形图,如何计算 setup,hold time 以及如何计算电路最高工作频率的分享。如果对这些还心存疑问困惑,可以查看下面几篇文章。

听说 Latch 可以高效修 hold 违例(Timing borrowing 及其应用)

CRPR 能补偿 crosstalk 吗?

原来电路最高工作频率是这么算出来的(STA 基础篇)

秒杀数字后端实现中 clock gating 使能端 setup violation 问题

数字芯片设计实现中修复 setup 违例的方法汇总

深入浅出讲透 set_multicycle_path,从此彻底掌握它

Setup slack=Tclock-Tck-q(FF1)-Tcomb-Tsu(FF2)+Tskew

Hold slack = Tck-q(FF1)+Tcomb-Thold(FF2)-Tskew

Tclock=Tck-q(FF1)+Tcomb+Tsu(FF2)-Tskew

图 3 Positive skew 下 setup 和 hold check

Negative skew

Negative skew 是指时钟 clock 到达 launch FF1 的时间 (Tff1)晚于时钟到达 capture FF2 的时间(Tff2)。图 4 所示为 Negative skew 的例子。对应的波形图如图 5 所示。从图 5 中可以看出,对于 Negative skew 的情景,setup 的检查其实是更严格了,而 hold 检查反而相对宽松点。

图 4 Negative skew 示例

图 5 Negative skew 下 setup 和 hold check

Clock skew 对 timing 的影响

从上面推导的公式或者波形图中,我们都可以很清楚地知道,clock skew 对 Timing 是有着直接的影响作用的。对于 Positive skew 来说,Tskew 大于 0,setup slack 变大,但是 hold slack 变小了。而对于 Negative skew,Tskew 小于 0,setup slack 变小,hold slack 变大了。

在实际的数字后端设计项目中,我们都要将 skew 做的越小越好。一方面 clock skew 会影响芯片设计的性能,另一方面容易引起 hold violations(我们常常说的 clock tree 长的不平),当然还有其他方面的考量,留给各位思考。大部分 hold violations 是由于 data path 太短,common clock path 太短以及 clock skew 太大导致的。对于 hold violations 如何 fix,后续也会做一个简单的分享。

最后留个思考题给大家: design 中 setup meet 了,是不是一定万事大吉了?如果 setup 和 hold 都没问题了,又该当如何呢?

原文链接:https://blog.csdn.net/weixin_37584728/article/details/117035304

上一篇 下一篇

猜你喜欢

热点阅读