怎么debug_答读者问 | skew较大怎么debug?

8275315a498b43fd7ce5094258f256b8.png

【读者jing*问】:您好,打扰了。请教一下cts的时候如果工具无法把tree做的比较balance,在什么状态下或者什么手段可以看出skew较大的原因呢?先谢谢了

这个读者很聪明,我之前说了不要问“为啥skew那么大”之类的问题,结果他真的不问,而是问“用什么手段分析?”7df612aba8345887dd56678492656f67.png

这个问题有点难,尝试先用排除法,再用正面分析法来回答下。


排除法:

  1. target_skew是否设置正确?默认target_skew是0ps,也就是工具会把skew往最小的做。

  2. 时钟树的max_transition是否设置了?一般按照周期来设置。transition太大,可能会导致skew大。

  3. 时钟树需要的buffer/inverter,mux,ICG等,是否设为dont use?(检查set_lib_celll_purpose)。要确保有充足的cell可以用来做时钟树。不能把小驱动的(比如x4,x3,甚至x2等)全部禁掉,否则不利于skew。

  4. 设计里如果有macro,要检查macro自带的skew。这个问题经常遇到。如果macro lib/db(特别是sram)自带有100ps的skew,然后你的target skew设置的是50ps,那无论你怎么努力,工具也没有办法把skew做到小于100ps。

    macro自带skew有两种:

    第一种是macro里有internal checkpins:

    3ec706f00f2043d0d450343e90d2f8b6.png

上图的macro里,有一个U5,U5/CK有两个timing arc,一个是组合逻辑的,到data

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值