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

一切烦恼的根源来源于执念,串扰和噪声则来源于电容两端电压差不能突变。串扰可以定义为一条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。

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

CRPR对Delta Delay的处理

以上图中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和加大线间距等,另外一种有效的方式就是错开特定走线之间的时序窗口。

下回接着讲解串扰带来的另一个烦扰:“噪声”,敬请关注。

  • 5
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delta Delay是指信号在不同路径到达某个节点时所引起的延迟差异。根据引用[1],在计算Setup时,Delta Delay不会受到CRPR(Clock Relationship Path Rule)机制的影响;而在计算Hold时,Delta Delay会受到CRPR机制的影响。 根据引用,时序窗口是指信号在通过不同路径到达某条Net时,最长路径延时和最短路径延迟之间的差值。Delta Delay的计算会考虑信号线A1、A2和A3对信号线V的影响。在计算信号线V的Delta Delay时,将其分成三个阶段:第一阶段,A1和A2同时对V造成影响,Delta Delay为0.26;第二阶段,A1对V造成影响,Delta Delay为0.14;第三阶段,A3对V造成影响,Delta Delay为0.23。根据最差情况的原则,信号线V的Delta Delay取最大值0.26。 需要注意的是,根据引用,如果两条Net相关的clock是异步的,处理方式会有所不同。如果设置为Async,则计算Delta Delay时采用无限时序窗口,考虑最悲观的情况。如果设置为Logic Exclusive,则只有在有重叠窗口的情况下才计算Delta Delay。如果设置为Physical Exclusive,则不考虑的影响,不计算Delta Delay。如果设置为False Path,则处理方式与同步情况相同。 综上所述,Delta Delay是指信号在不同路径到达某个节点时所引起的延迟差异。在计算Setup时,Delta Delay不受CRPR影响;而在计算Hold时,Delta Delay受到CRPR影响。Delta Delay的计算会考虑时序窗口以及信号线之间的相互影响。对于异步的情况,处理方式会有所不同,根据具体的设置来确定是否计算Delta Delay。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [STA | 9. 窗口以及CRPRDelta Delay处理方式](https://blog.csdn.net/graymount/article/details/106294128)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值