【数字IC基础】时序违例的修复

建立时间违例

基本思路是减少数据线的延时、减少 Launch clock line 的延时、增加capture clock line的delay

  1. 加强约束,重新进行综合,对违规的路径进行进一步的优化,但是一般效果可能不是很明显降低时钟的频率,但是这个一般是在项目最初的时候决定的,这个时候很难再改变

  2. 拆分组合逻辑,插入寄存器,增加流水线,这个是常用的方法

  3. 优化布局布线,减小传输的延时

后端的一些具体方法有:

1)换速度更快的cell

对绝大多数工艺,任何一种标准单元(standardcell)都有不同种速度的Library,也就是常说的不同Vt的cell,比如HVT, RVT, LVT或者SLVT。其中HVT cell速度最慢,SLVT速度最快。而减少data line delay最常用的方法就是更换不同Vt的cell,比如HVT的cell换成RVT, LVT或者SLVT

2)更换驱动能力更强的cell

在某些timing path中,可能会出现因为cell的驱动能力比较弱而产生比较大的delay。这时就可以将这种cell更换成驱动能力更强的cell。比如X2倍的cell更换成X4或者X6的cell。

3)将net的layer更换成阻值更低的金属层以减小cell的load和net delay

4)useful skew 的方法。实际操作很简单,就是在capture register的CK pin插入buffer或者inverter以增加capture clock delay。

保持时间违例

保持时间裕量与建立时间裕量是一对互斥的关系,上述可以用于优化建立时间裕量的方法,都不能用于优化保持时间裕量,大家要注意。

保持时间违例可以通过如下方式解决:

  1. 在组合逻辑中插入延时buffer,或者链路拉长,使得数据传输延时变大。

  2. 可以在后端调整时钟SKEW,使得违例寄存器的时钟SKEW变得更小(相对于正SKEW)

Buffer 插入位置

修复 hold violations 时,插入 buffer 或者 delay cell 的位置,是靠近launch端还是capture端,还是并无任何要求呢?

在逻辑和物理上都应该尽量靠近capture端,也就是endpoint。在逻辑上更靠近endpoint能够保证插入的cells只会影响到有violation的path,物理上更靠近endpoint能够有效避免 DRV,因为修hold时加入的cell普遍驱动能力较弱。

参考资料

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值