时序违例的原因
时序违例的主要原因是建立时间和保持时间不满足要求。
建立时间不满足要求 通常是因为组合逻辑处理时间太长,
保持时间不满足要求通常是组合逻辑处理时间太短。
时序违例解决方法
建立时间不满足的方法有:
降低时钟频率
拆分组合逻辑,插入寄存器,增加流水线
优化布局布线,减小传输延时 Tsetup <= Tclk + Tskew - Tco - Tcomb
保持时间不满足的方法有:
增加组合逻辑的处理时间,插入buffer
减小时钟的延时
Thold <= Tco + Tcomb - Tskew
时序优化
解决时序收敛的问题也是静态时序分析中的主要任务,静态时序分析,优化时序的类型分为建立时间,保持时间和时序设计 规则三种。
优化建立时间和时序设计规则
1.1 改变单元位置
不合理的单元物理位置会使信号线过长而导致 线负载和线延时 变大,从而影响时序收敛。
----可以通过优化单元的物理位置来提高时序性能的目的。
1.2 改变单元的大小
通常标准单元库 提供了多种驱动能力的单元,延时随驱动能力增大而递减。因此把由于负载过大而导致延时恶化的单元调整为驱动能力更大的同类型单元,可以改变时序性能。
同样,驱动能力小的同类型单元对前级驱动单元所表现的负载电容也较小,将驱动能力大的负载单元换成驱动力小的负载单元,可以减小前级驱动单元的输出负载,从而改善前级驱动单元的时序性能。
总而言之,前级驱动单元可以换成驱动能力大的单元,负载可以换成驱动能力小的单元。
1.3 插入缓冲单元
随着工艺尺寸的不断缩小,其线延时增加与线长近似成正比指数性关系,而增加缓冲单元个数与延时近似成正比线性关系。
可以通过在长距离信号线中间增加合适的缓冲单元来提高延时性能。
1.4删除缓冲单元
如果设计中存在插入缓冲器单元不合理的情况,那么可以通过删除导致降低时序性能的缓冲单元,来达到优化时序性能的目的。
1.6 时钟有用偏斜
现如今用的较多的useful skew,称为有用偏差。skew会恶化timing结果,
但如果合理使用,那skew也可以起到修复timing的作用,从而提高设计的频率。
其工作原理就是在两个串行的时序路径中,通过借用其中一条时序路径的延时余量的方法来修复另一条时序路径上时序违反的问题。
2.优化保持时间
优化保持时间的方法相对简单。主要通过插入延时单元(delay cell)来显著增加时序路径整体延时来达到满足保持时间要求的目的。