串扰,窗口以及CRPR对Delta Delay的处理方式

电子说

1.3w人已加入

描述

一切烦恼的根源来源于执念,串扰和噪声则来源于电容两端电压差不能突变。串扰可以定义为一条Net电平变化导致邻近的net电平的波动。这种波动可能对受害Net的时序带来变化,甚至可能造成功能的错误。

在90nm,65nm及更先进工艺,串扰和噪声的影响越来越严重,主要原因还是在于绕线更密,频率更高,电压更低。

串扰

串扰是一直困扰着后端和EDA工具的一个问题。做过先进工艺的同仁应该深有体会,在Place和CTS阶段,时序已经优化得不错,但是Route之后,引入了Delta Delay,时序立即恶化,需要通过几轮Post-Route优化才能勉强恢复到Route之前的状态,即便如此,功耗和面积也会有很大牺牲。其原因在于Pre-Route阶段不存在真实的绕线,没办法精准预估绕线之间串扰的影响。

随着机器算力的快速增长,以及EDA公司在逐渐普及AI技术,老本相信这个问题应该最终会得到解决,因为AI的本质在于预测。通过不断地学习,建立在布局阶段去预测布线之后串扰的深度学习模型,从而能够在布局阶段相对精准地预测串扰将会带来的影响。或者更简单粗暴一点,仗着算力够用,在布局阶段就直接用Detail Route Based的Placer引擎。

PT进行SI分析需要特别注意以下SI相关命令是否正确:

...

#使能Crosstalk/SI分析

set si_enable_analysis true

#指定composite aggressor模式

set_app_var si_xtalk_composite_aggr_mode statistical

#指定victim和aggressor窗口对齐模式

set_app_var si_xtalk_delay_analysis_mode all_path_edges/all_path

...

#确保读入耦合电容寄生参数

read_parasitics -keep_capacitive_coupling ...

...

#在timing path中显示Delta Delay一栏信息

report_timing -crosstalk

窗口

时序窗口是指信号在通过不同的路径到达某条Net时,时间上有快有慢,最长路径延时和最短路径延迟之间的差值就是时序窗口的大小。如下图所示中,信号线A1, A2, A3和V都有各自的时序窗口。对于信号线V来说,A1, A2, A3都与之有重叠窗口(overlapping timing window),而A2和A3之前是没有重叠窗口的,A1和A3可以认为有部分重叠窗口。那么在计算信号线V的Delta Delay时,将其分成3个阶段:第1阶段,A1和A2同时对V造成影响,Delta Delay = 0.12 + 0.14 = 0.26;第2阶段,A1对V造成影响,Delta Delay = 0.14;第3阶段,A3对V造成影响,Delata Delay = 0.23。这种情况下,信号线V的Delta Delay取最差值0.26。

EDA工具

需要注意的是,上面考虑的Net之间是同步的情况下,如果两条Net相关的clock是异步的,处理的方式会有很大不同。假如是设成Async,那么计算Delta Delay采用的是无限时序窗口,考虑的是最悲观的可能情况;假如是设成Logic Exclusive,那么只有在有重叠窗口的情况下才去计算Delta Delay;假如设成Physical Exclusive,无需考虑串扰的影响,不计算Delta Delay。假如Net相关的clock设置成False Path,处理方式和Synchronous相同,所以在设置Clock异步关系时要特别小心。总结如下表:

EDA工具

CRPR对Delta Delay的处理

EDA工具

以上图中Path为例,在Clock Path的公共路径上如果有串扰造成的Delta Delay,这一部分Delta Delay会不会被CRPR机制影响,进而被取消呢?答案是:在计算Setup时,Delta Delay不会被CRPR影响;而在计算Hold时,Delta Delay会被CRPR影响。原因在于:

(1)计算Setup时,Launch Clock和Capture Clock采样一般发生在不同的时钟沿,所以Aggressor对两个时钟沿的影响是不同的,考虑到最差的情况,这部分的Delta Delay不能被取消。

(2)在计算Hold时,Launch Clock和Capture Clock采样一般发生在相同的时钟沿,Aggressor对两者的影响是一模一样的,既然在公共路径上,这一部分Delta Delay是可以通过CRPR机制取消的。

那么如何降低串扰的影响呢?从本文阐述可以看出,主要的方法还是隔离,例如Shielding和加大线间距等,另外一种有效的方式就是错开特定走线之间的时序窗口。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分