后端Timing基本技能之:Hold Violation怎么修?

 

我们先回忆一下hold timing check的概念。下图-1展示了一条典型的timing path以及hold time的计算方法:

其中:

 对于图-1中的timing path,hold check需要满足如下条件:

根据上面的公式可以看出,主要有三类方法:

1. 增大data line delay

此方法为后端设计中最常见的手法。具体操作是在data line上插入buffer 或者delay cell去增加delay。在此提出一个问题请大家思考:插入buffer或者delay cell的位置,是靠近launch端还是capture端,还是并无任何要求呢?答案下期揭晓~

2. 增大launch clock delay

增加launch clock delay的方法理论上可行,但是在实际中不到万不得已我们是不希望动到clock的,因为动clock line不仅需要确认前后级path是否有足够的margin,有时候还会遇到影响范围不可控或者实现不方便等诸多限制。

3. 减小capture clock delay

此方法也具有方法2的缺点,同时还因为剪短clock delay在物理上无法实现的风险,因此应用更少。

       总结来说,与setup不同,hold因为与clock cycle并无关系,只要clock tree做的比较balance,hold就比较容易收敛。但是因为setup和hold其实是一对相互制约的约束,也就是说修了hold后setup的slack就会变小甚至变负,因此越是高频的path,setup和hold相互制约就越严重,甚至会出现修了setup后hold就修不掉的所谓“互卡”现象。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值