STA | 什么是Cross Talk: SI Timing 时序串扰?

 本文主要介绍数字芯片设计时序分析中的串扰时序(SI Timing)。

什么是时序串扰?


两根紧挨着的绕线(net)之间存在耦合电容,当一条线进行电平转换的过程中,另一条线也会受到相应的影响。其中第一条线称为攻击端(aggressor),第二根线称为受害端(victim)。

当受害端信号保持不变时,攻击端的电平转换会给受害端引入毛刺信号。

当受害端的电平转换与攻击端正好一致时,受害端的电平转换过程会加速。

当受害端的电平转换与攻击端正好相反时,受害端的电平转换过程会变慢。

如何检查时序串扰?


在EDA工具中,首先需要将设计读入,然后需要打开串扰分析的功能,最后可以使用具体的命令获取不同种类的串扰检查。

下图是用PrimeTime检查时序串扰的流程图。

STA | 什么是Cross Talk: SI Timing 时序串扰?_第1张图片

第一步:读取网表。这一步骤与普通时序检查相同。

第二步:开启串扰分析功能,命令是set_app_var si_enable_analysis true

第三步:读取RC信息,这一步与普通时序检查不同的地方在于,需要指定参数-keep_capcitive_coupling。

第四步:读取时序约束SDC。这一步与普通时序检查相同。

第五步:进行时序分析。这一步与普通时序检查相同。

另外,串扰分析是一个复杂的过程,这涉及到很多的策略,用户可以通过特定的变量来设置。

例如:

si_xtalk_delay_analysis_mode:用来设定串扰延时分析的模式,默认值是all_paths,推荐值是all_path_edges,减少悲观量。

si_filter_per_aggr_noise_peak_ratio: 用来设定需要考虑的来自攻击端的最小噪声,默认是0.01,也就是只考虑超出电源电压1%的串扰。对于Hold Timing(保持时间)检查,推荐使用默认值。对于Setup Timing(建立时间)检查,可以适当放松,例如0.02.

如何修复时序串扰?


首先,如果受害端的驱动单元的驱动能力太弱,可以增强其驱动能力。例如,更换更低阈值电压(low VT)的单元,或者更换成大驱动的单元。也可以减弱攻击端的驱动能力,不过这个方法不常用。

其次,如果有长线,可以在中间插入一个缓冲器(buffer)。

然后,可以增加绕线间隙,使用特殊绕线规则(Non default routing,NDR)。这个方法最好在布局布线阶段就使用,如果到了ECO阶段出现了串扰问题后再用,可能效果不好,因为绕线资源很可能已经不够了。

最后,可以更改绕线。例如,更换绕线层,或者加绕线屏蔽保护(shielding)。

你可能感兴趣的:(后端)