这章节描述了纳米工艺中ASIC的信号完整性问题,在深亚细微米科技中,串扰在设计的信号完整性方面,有着重要的影响。串扰噪音指的是信号之间无意的活动之间的耦合。相关的噪声、串扰分析方法如毛刺分析以及串扰分析,使得他们的影响能在静态时序分析中被体现。这些方法可以用来增加鲁棒性(robust)。
目录
6.2 串扰毛刺分析(crosstalk glitch analysis)
6.2.6 攻击者的功能相关性(functional correlation)
6.4 使用串扰延时进行时序验证(timing verification)
6.1 综述
为什么是噪声以及信号完整性?
为什么,噪声在深亚细微米技术中有很大影响?原因:
- 增加的金属层:随着工艺尺寸的缩小,所需要的金属层会变多。下图是一个例子。
- 垂直主导金属长宽比:新近的工艺,通常是细高,而不是之前工艺的又宽又扁。因此一大部分电容来自于线与线之间耦合所导致的侧壁耦合电容。
- 由于先进工艺导致的更高布线密度:更多的金属线离得更近了。
- 大量的交互设备以及互连线:在相同的硅片面积下,包装了更多了单元。
- 更快的波形:快速的边缘会导致更多电流尖峰,并且对邻近信号线和单元的耦合影响更大。
- 更低的供电电压:留给噪声的裕度变小。
噪声和串扰会造成一个网络中的信号电平翻转时候,与其耦合的网络的信号不可预测的行为。前者称为侵略者或攻击者(aggressors),后者称为受害者(victim)。要注意两个网络可以互相影响,地位可以互换。
两种类型的噪声效应:
- 毛刺(glitch)是指由于相邻攻击者信号的电平切换的耦合而在稳定受害者信号上产生的噪声;
- 时序变化(串扰增量延迟, cross-talk delta delay)由于受害者电平切换与攻击者电平切换的耦合而导致的。
6.2 串扰毛刺分析(crosstalk glitch analysis)
6.2.1 基础知识
一个稳定的信号网络的毛刺,可以由电平发生变化的攻击者,所引起的耦合电容上的电荷转移引起。下图是,一个正向的毛刺。
两个网络之间的耦合电容被表示为一个集总电容 Cc,而不是分布式耦合电容。这是为了简化下面的解释,而不失一般性。在提取的网表的典型表示中,耦合电容可能分布在多个段上,如第6.1节中所见。
在上图中,UNAND0的输出电平变化,给他的输出网络充电,并标记为攻击者。部分充电的电荷,也转移到了受害者网络。从而导致了一个正向的毛刺。转移的电荷量也是和Cc有关的,向受害网络的接地电容上转移的电荷会导致该网络上的毛刺。由于通过驱动单元INV2的下拉网络(pulldown)转移了电荷,因此可以恢复受害网络上的稳定值(在这种情况下为低电平)。
毛刺的峰值的有关因素:
- 攻击者和受害者之间的耦合电容:越大,毛刺峰值越大。
- 攻击者网络的压摆:压摆越快,造成的毛刺峰值就会越大;通常来说,驱动能力越大,造成的毛刺峰值越大。
- 受害者网络的接地电容:越小,毛刺峰值越大。
- 受害者网络的驱动能力:驱动受害者网络的单元输出驱动强度越小,毛刺的幅度越大。
总的来说,受害者网络上的稳定值恢复之后,毛刺可能会影响电路功能的正确性:
- 毛刺可能足够大,从而达到不同的逻辑电平值,这对时序单元格外重要。尤其是,有可能在异步复位或者置位引脚上的毛刺,会对结果产生很大影响。如果是在数据路径上产生毛刺,那么可能会在数据被锁存时,导致错误数据的存储。
- 即使受害者网络不驱动时序逻辑单元,一个宽/较大毛刺可能会通过受害者网络的扇出单元传播至一个时序逻辑单元的输入,这将对设计造成灾难性的后果(意思就是中间经过了别的单元,但不是时序单元,然后到达时序单元)
6.2.2 毛刺的类型
上升、下降毛刺(Rise&Fall Glitches):受影响后,低电平向高变,高电平向低变。
过冲、欠冲毛刺(Overshoot and Undershoot Glitches): 高变得更高,低变得更低。
如前几小节所说,毛刺由耦合电容、攻击者压摆,受害者驱动能力所决定。毛刺的计算基于激励信号切换时注入的电流、受害网络的RC互连以及驱动受害网络的单元的输出阻抗。详细的毛刺计算依赖于库模型;用于计算的相关噪声模型是第3章中描述的标准单元库模型的一部分。第3.7节中的输出直流电流(output dc current)模型与单元的输出阻抗相关。跳转第三章
6.2.3 毛刺的阈值以及传播
攻击者网络耦合引起的毛刺是否可以通过扇出单元传播,取决于扇出单元以及毛刺属性,比如高度或者宽度(height width).这个分析可以基于直流(DC)或交流(AC)噪声阈值进行:
-
直流噪声分析:仅检查毛刺的幅度,通常是保守的估计,可能会低估传播能力。
-
交流噪声分析:除毛刺幅度,还会考虑其他属性,如毛刺宽度和扇出单元的输出负载,这样的分析能更好评估毛刺的传播潜力。
DC阈值(DC thresholds)
DC噪声裕度(Noise Margin)在保证单元正确逻辑功能的前提下,在单元输入引脚的直流噪声限制。例如,反相器单元的输出可能保持高电平(即,保持在最低 值以上),只要输入电压保持在单元的最大
值以下。类似地,反相器单元的输出可能保持低电平(即,保持在最高
值以下),只要输入电压保持在最低
值以上。这些都是基于直流转移特性(DC transfer characteristics),并存在库中。
此图过于常见,不解释。输入为低电平时候,低于直流裕度限制(DC Marin Limits, 也就是VILmax 和 VIHmin)的毛刺不能通过单元传播;输入为高电平时候,高于直流裕度限制的毛刺不能通过单元传播。故,一个保守的毛刺分析,检查电压的峰值水平,无论是正峰值还是负峰值。只要在裕度限制的范围内,我们即可说,毛刺对于电路的功能性没有影响。
下图是DC裕度限制的一个例子。我们可以设置一个最大容忍噪声峰值(largest tolerable noise magnitude),超过了设置的值,我们就认为噪声可能会随单元传播。通常来说,我们认为毛刺导致的电压峰值,低于VILmax或者高于VIHmin。高度通常表示为电源电压的百分比,如果我们设为30%,就意味着如果有毛刺的高度,超过30%的Vdd,那我们就认为这个毛刺会随单元传播,对于电路的设计的功能性有潜在影响。
也不是所有超过了直流限制裕度的毛刺,会改变当前单元的输出。毛刺的宽度同样也是一个重要的考虑因素。一个非常狭窄的毛刺,通常是不会引起单元输出的变化的。但是直流裕度限制通常只用最坏情况电压值(worst case value)来恒定,而不考虑噪声的宽度。如下图中的示例提供了噪声抑制水平,该噪声抑制水平是单元噪声容限的非常保守的估计。(意思就是因为我不考虑毛刺的宽度,超过了直流裕度限制的电压值,就认为会有影响,即使他是一个很窄的毛刺)
交流阈值(AC thresholds)
直流裕度限制对于毛刺分析而言,是极度保守的,因为这是在最坏情况下进行的。直流裕度限制认为,毛刺的宽度任意,只要不超过限制的电压值,那就不会对电路设计的正确功能性有影响。
多数情况下,一个设计可能没法通过保守的直流噪声分析限制(DC Noise Margin Limits),因为他太严格了。因此,验证毛刺宽度以及单元输出负载的影响,变得十分重要。总的来说,如果毛刺很窄,或者扇出单元有很大的输出电容,那么毛刺就不会对于单元的功能正确性产生影响。毛刺宽度和输出电容的影响都可以用扇出单元的惯性(inertia)来描述。通常来说一个单级的单元可以阻挡任何比延迟更窄的输入毛刺。这是因为,如果毛刺的宽度很窄的话,则在扇出单元对其进行响应之前,毛刺就已经结束了。因此窄毛刺不会对单级的单元产生影响。原因在于,输出电容增加了穿过单元的延迟。双刃剑:减少了毛刺的影响,但是增加了延迟。
交流噪声抑制如图中所示。深的阴影区域表示好的或者是可以接受的毛刺,因为这些毛刺不是太窄了,就是太矮了,因此对于单元的功能正确性没有影响。浅阴影区域代表坏的或是不可接受的毛刺。因为这些毛刺,不是太高了或者就是太宽了,会对单元的功能正确性产生影响。在毛刺较宽的极限情况下,毛刺阈值对应于DC噪声裕量。
对于一个给定的单元,增加输出负载,会增加噪声裕度,因为这样做增加了惯性延时以及通过单元的毛刺所需的宽度。下面的例子说明了。a图中展示了一个没有负载的反相器单元,在输入引脚的正向毛刺超过了直流噪声裕度限制,因此在反相器的输出,产生了一个负向的毛刺。b图中的反相器输出端有负载。相比于b图,c图中反相器的输出端负载更大。由波形可以看出,c图中反相器的输出几乎没有毛刺了。因此,我们可以得出结论,输出的负载越大,单元对毛刺的免疫(immune)能力越强。
就像在上面所说的,低于交流噪声阈值的毛刺,我们可以认为对单元的输出不会产生功能性的影响。而交流噪声阈值,是依靠于输出负载和毛刺的宽度。第三章中描述的抗扰度模型(noise immunity model),包含了AC噪声抑制的影响。在3.7中描述的传播噪声模型(noise propagated model) ,除了对通过单元的传播进行建模外,还包括了AC噪声阈值的影响。
如果毛刺超过了AC噪声阈值,会发生什么?如果毛刺超过了AC噪声阈值,则输入引脚上的毛刺,又会引起输出引脚上的毛刺。输出毛刺的宽度和高度是输入毛刺的宽度、高度以及输出负载的函数。该信息在单元库中进行了特征化,其中用详细的表或者函数,表示了(输出引脚的毛刺高度、宽度)与(输入毛刺的高度、宽度、输出负载)的关系。噪声的传播是由噪声传播模型决定的,这个模型在库中有详细的描述,在第三章中讲过了。
扇出单元输出处的毛刺(以及毛刺的传播)已经进行了计算,并在扇出网络上进行了相同的检查,依此类推。
在前面的讨论中,我们采用了通用的术语——毛刺(glitch),来描述问题,但是我们需要注意。上升毛刺由早期模型的propagated_noise_high 或 noise_immunity_high 建模;下降毛刺由早期模型中的 propagated_noise_low 或 noise_immunity_low 建模。过冲毛刺由noise_immunity_above_high建模;欠冲毛刺由noise_immunity_below_low建模。这些都在之前的章节进行了描述。
6.2.4 多攻击者造成的噪声累积
综合来说,一个受害者网络可能与多个网络相互耦合。如果有多个网络中的信号同时改变了电平值,那么他们在受害者网络上造成的影响是混合在一起的。
大多数由多个攻击者网络引起的耦合分析都考虑了每个攻击者网络引起的毛刺效应,并计算了对受害者网络的累积效应,这是保守的,但这确实表明了受害者网络的最坏情况。另一种方法就是RMS(root mean squared approach), 对每个攻击者毛刺的影响进行均方根计算,然后再综合多个攻击者的影响。
6.2.5 攻击者的时序相关性
对于多攻击者引起的毛刺,分析必须包含攻击者网络的时序相关性,并且判定多个攻击者能否同时改变信号的电平值。静态时序分析通过攻击者的时序窗口获取有关的信息。在进行时序分析过程中,可以得到最早(earlist)的、最晚(lastest)的电平转换时间。这两个时间中间夹着的时间,代表了时序窗口,这些时间表示网络可以在一个时钟周期内切换的时序窗口。电平切换窗口(上升和下降)提供了有关攻击者网络是否可以一起切换的必要信息。
多个攻击者能否同时切换,决定了多个攻击者引起的毛刺对于受害者网络的影响是否将会合并。第一步,分析工具将会分别计算4种不同的毛刺。下一步就是将不同攻击者的毛刺的影响合并起来,多个攻击者可以针对每种不同类型的毛刺分别进行组合。举例来说,受害者网络V与4个攻击者网络耦合,分别为A1\A2\A3\A4。在分析时,有可能A1A2A4对上升毛刺、过冲毛刺有贡献;而只有A2A3对下降毛刺、欠冲毛刺有贡献。
另一种情况,四个攻击者网络中任一改变状态,都会导致上升的毛刺。下图为时序窗口,以及每个攻击者网络引起的毛刺幅值。分析工具将会计算出,可能存在的最差的毛刺组合,这会导致毛刺最大。在这个例子中,电平切换窗口可分为四个区域,每一个区域中都展现了攻击者可能发生的电平转换。在区域1中,A1A2攻击者,会引起一个幅值为0.21的毛刺(0.21=0.10+0.11)。区域2中,A1A2A3攻击者会引起幅值为0.3的毛刺(0.3=0.11+0.1+0.09)。区域3中,A1A3攻击者网络会引起幅值为0.2的毛刺(0.2=0.11+0.09)。区域4中的A3A4网络可能会引起,幅值为0.32的毛刺(0.32=0.23+0.09)。
区域4有着最坏的毛刺幅值——0.32。注意,不使用时序窗口的分析,会直接将所有毛刺的幅值相加, 这就有些太悲观保守了。
6.2.6 攻击者的功能相关性(functional correlation)
扫描控制信号,只在扫描模式(scan mode)下进行电平的切换,而在功能模式(functional mode)或者是任务模式(mission mode)下,扫描信号的电平并不发生改变。因此,扫描信号在功能模式下,并不能引起毛刺的产生。他只能在扫描模式下,充当攻击者。在一些情况下,测试时钟与功能时钟是彼此互斥的。比如说,在进行测试的时候,只有测试时钟是活跃的,而功能时钟是关闭的。在这些设计中,测试时钟控制的逻辑,与功能时钟控制的逻辑是两组互相没有关系的攻击者。这些情况下,由测试时钟控制的攻击者,不能与其他被功能时钟控制的攻击者组合起来计算最坏情况的噪音。另一个例子,两个攻击者,他们互相是彼此的互补也就是逻辑上为逆(inverse)。这时候,信号以及其互补信号不可能在同一方向上进行电平切换从而进行串扰的计算。
下图展示了N1网络与其他的三个网络有耦合关系,N2N3N4。考虑功能相关性,如果假设N4网络是一个恒定值(如模式设置网络, mode setting net),从而不能作为N1网络的攻击者,尽管他们是耦合的。如果假设N2网络是调试总线(debug bus)的一部分,在功能模式下,他处于稳定状态。因此网络N2也不会对N1网络进行攻击。假设N3网络携带了功能有关的数据,因此只有N3网络是会对N1网络产生影响的攻击者。
6.3 串扰延时分析
6.3.1 基础
在纳米设计中,对一个网络的电容提取,包含许多临近导体的影响。部分是接地电容的影响,部分是来自于其他信号网络的金属走线的影响。接地电容和信号间电容如下图所示。在计算基础延时时候,所有的这些电容,都被认为是总的网络电容的一部分(没有考虑任何串扰)。当临近网络的状态达到稳定的时候,信号间的电容可以认为是接地的。当临近的网络中的信号发生了电平转换时候,充电电流会通过影响耦合电容进而本网络的时序。网络间的等效电容会根据攻击者网络电平切换的方向而变大或变小,下面的一个简单示例对此进行了说明。
下图中,展示了N1网络与临近网络有一个Cc的耦合电容,以及Cg的接地电容。这个图假设了在与非门输出有上升电平过渡,根据攻击者网络是否在同时也发生了电平转换,来分析不同情况。
不同情况下,驱动单元所需要的电容电荷可能是不同的:
1. 攻击者尚未达到稳定:驱动着N1网络的单元,会给Cc、Cg电容提供电荷,让他们的电容电压充至Vdd。因此提供的总电荷为(Cg + Cc) * Vdd。在这种情况下计算延时的时候,我们没有考虑来自攻击者网络的串扰。下表展示了Cg、Cc,在N1的电平状态转换之前、之后,电容的电荷变化。
2. 攻击者与本网络向相同的方向变换(都变高或者都变低):这种情况下,驱动网络的驱动单元有着攻击者的帮助。如果攻击者以相同的压摆,在同一时间发生变化(也就是说相同的过渡时间),驱动单元提供的整体电荷就只是Cg*Vdd。如果攻击者网络的压摆比N1网络的压摆更快,实际上需要的电荷可能更比Cg*Vdd更小,因为攻击者网络可以给Cg提供充电电流。所以总的来说,如果攻击者网络与本网络N1电平发生转换的方向相同,这将会导致N1网络有较小的延时。减少的延时被称为负向串扰延时(negative crosstalk delay)。
3. 攻击者与本网络向相反的方向变换(相反变换):这种情况,耦合电容两端的电压从-Vdd充电至Vdd。因此在耦合电容的电荷变化为2*Cc*Vdd。多出来的电荷一部分由N1的驱动单元提供,一部分由攻击者网络提供。由于需要的电荷变多,充电时间变长。延长的时间被称为正串扰延时(positive crosstalk delay).
上面的考虑都是上升边沿,对于下降边沿的考虑,也是类似的。
6.3.2 正向以及负向的串扰
综上所述,受害者、攻击者网络同时的电平变换,会影响受害者网络的时序。根据攻击者网络的信号电平转换方向,串扰所造成的延时效应(crosstalk delay effect)可以是正的(增加了过渡时间),或者是负的(减小了过渡时间)。
正向的串扰噪声延迟如下图。
负向的串扰噪声延迟如下图。
注意,最差的正串扰延时以及最差的负串扰延时对于上升延时和下降延时而言是要分开进行计算的。由于串扰而导致的最大上升时间、最小上升时间、最小下降时间、最大下降时间延迟的攻击者的组合是不同的。
6.3.3 多攻击者导致的累积效应
串扰的延时分析,需要考虑每一个攻击者对于串扰延时的贡献。6.2中讨论的是对于毛刺的影响,现在讨论的是延时的影响,都是相似的。效果同样也是混合的。
多数的分析,都是把各个攻击者对于耦合的影响加起来,然后计算在受害者上造成的累积效应,但是这太保守了,过于悲观了。但是他确实能反应实际情况。
与毛刺分析相似的,我们在综合延时的影响的时候,也可以使用RMS均方根方法,这比起来直接相加,就没那么悲观了。
6.3.4 攻击者与受害者的时序相关性
时序相关性有关的分析。串扰延时的有关分析,理论上来说,和串扰毛刺的有关分析,是相似的。如果攻击者和受害者网络的时序窗口重叠,则可以计算出串扰对延迟的影响。对于多攻击者而言,多时序窗口,分析的方法也是类似的。在各种时序区域(timing bin),计算串扰延迟影响最严重的时序区域,以进行延迟分析。
在下面的例子中攻击者网络A1A2A3,与受害者网络V耦合,并且时序窗口存在重叠(overlap)。我们就借着下图重叠的时序窗口,分析每个区域中攻击者可能的最坏组合情况,也就是最大的串扰延时的情况。在区域1中,攻击者A1A2可能导致串扰延迟影响为0.26(0.26=0.12+0.14)。在区域2中,攻击者A1会导致0.12的延时。在区域3中,A3会引起0.23的延时。因此最坏的延迟情况为区域1中的0.26。
就像在前面所说的,串扰延时分析会分别计算四种不同的串扰延时。四种类型的延迟包括:
- 正上升延迟
- 负上升延迟
- 正下降延迟
- 负下降延迟
总的来说,网络的不同攻击者会产生不同类型的延迟。假设一个网络与四个网络A1A2A3A4有耦合。在串扰延迟分析过程中,A1、A2 和 A4 可能对正上升延迟和负下降延迟产生影响,而 A2 和 A3 则对负上升延迟和正下降延迟有影响。
6.3.5 攻击者与受害者的功能相关性
举例来说,扫描信号(scan)只在扫描模式发生电平转换,在功能模式或者任务模式下,它是稳定的。因此扫描信号,在功能模式期间不能作为攻击者。扫描控制信号,只在扫描模式下作为攻击者。扫描信号以及扫描控制信号,在功能模式下,不能与其他信号一起进行最坏噪声情况的计算。
另一个功能相关性的例子,是两个攻击者是彼此的互补。这种情况下,信号以及它的互补信号,永远无法在相同的方向(一直是相反方向的)切换电平以进行串扰噪声计算。利用之类的信息,可以确保仅实际上可以一起切换电平的信号作为攻击者,防止过于悲观。
6.4 使用串扰延时进行时序验证(timing verification)
以下4种串扰延时的影响,在设计中将会被分开计算:
- 正上升延迟(上升沿向前移动时间,增加了延时)
- 负上升延迟(上升沿向后移动时间,减少了延时)
- 正下降延迟(下降沿向前移动时间)
- 负下降延迟(下降沿向后移动时间)
串扰延时在最大延时路径、最短延时路径,被用来进行建立、保持(setup & hold )时间的时序验证。对于发射(launch)、捕获(capture)寄存器的时钟是分开计算的。
6.4.1 建立分析(setup analysis)
进行串扰分析的静态时序分析,对于设计的数据路径以及时钟路径,都要进行最坏情况下的延时时序验证。下图中的设计,串扰在数据路径和时钟路径的多个网络中存在。对于建立时间检查的最坏情况是:发射时钟路径以及数据路径都存在正向的串扰;与此同时捕获时钟路径有着负向串扰。发射时钟路径以及数据路径的正向串扰(也就是延迟增加了)导致了数据更晚到达捕获寄存器。此外,在捕获时钟路径的负向串扰,导致数据更早被锁存。所以这就是最坏的情况。
基于上述的分析,建立时间分析(setup analysis)有下列的假设:
- 发射时钟路径有正串扰延时,因此数据发射的更晚
- 数据路径有正串扰延时,因此数据到达捕获寄存器的输入引脚所需时间更长
- 捕获时钟路径有负串扰延时,因此捕获寄存器将会更早的捕获数据。
建立时间检查的发射和捕获时钟沿是不同的(通常间隔一个时钟周期),所以公共时钟路径(common clock path)对于发起和捕获时钟沿可能具有不同的串扰影响。
6.4.2 保持分析(hold analysis)
保持分析与之前的建立分析,是非常类似的。对于保持时间检查的最坏情况为:发射时钟路径以及数据路径都具有负串扰延时;捕获时钟路径有正串扰延时。前者会使数据更早的到达捕获寄存器;后者会使捕获寄存器锁存更晚。
保持分析和建立分析有一个很大的不同点,在于公共时钟路径。在保持分析中,发射时钟边沿和捕获时钟边沿通常是相同的。因此公共时钟路径不会对发射时钟、捕获时钟的边沿产生不同的影响。因此有下列的假设:
- 发射时钟路径有着负串扰延时,因此数据将会发出更早。
- 数据路径也有着负串扰延时,因此数据将会更早的到达捕获寄存器。
- 捕获时钟路径有着正串扰延时,因此数据将会更晚的被捕获。
在保持时间分析中不考虑对时钟树公共路径部分的串扰影响,仅针对时钟树的非公共路径(non-common)部分计算发射时钟的正串扰影响和捕获时钟的负串扰影响。在用于保持时间分析的j静态时序分析报告中,公共时钟路径可能会显示发起时钟路径和捕获时钟路径具有不同的串扰影响。但是,来自公共时钟路径的串扰影响会被单独减去,免得过于悲观。10.1节中详细介绍这个。
如前面小节所述,建立时间分析涉及时钟的两个不同边沿,这些边沿可能会在时序上受到不同影响。因此,在建立时间分析中,发起和捕获时钟路径均考虑了公共路径的串扰影响。
时钟信号至关重要,因为时钟树上的任何串扰都直接转化为时钟抖动(jitter)并影响设计的性能。因此,应该采取特殊的方法来减少时钟信号上的串扰。常见的避免噪声的方法是时钟树的屏蔽(shield)。
6.5 计算复杂度
一个大规模的纳米级设计,在合理的时间内对每个耦合电容进行分析是一件计算量很大的事情。在对一个网络进行寄生参数提取的时候,有很多与其他网络耦合的电容。一个大型的设计通常需要对寄生参数提取、串扰延迟分析和串扰毛刺分析进行适当的设置。这些设置在保证CPU力所能及的情况的下,为分析提供适当的准确度。这小节提供了一些在大型纳米级设计分析中会用到的一些技巧(techniques)。
层次化的设计和分析
之前在4.5中讲到了层次化方法。一个类似的方法也可以用来减少寄生参数提取、分析的复杂度。
对于一个大型设计,寄生参数的提取不会运行(run)一次就完成。每个层次模块的寄生参数提取可以分开完成。这也就要求大型设计要进行层次化的设计。这意味着在分层模块内部的信号与模块外部的信号之间不存在耦合,这可以通过不在模块边界上布线或通过在模块上添加屏蔽层(shield)来实现。信号网络也不应该布局在模块的边界,任何布局在模块边界的网络都要被屏蔽。这可以防止与其他分层模块之间的耦合。
耦合电容的过滤
即便是中型的设计,寄生参数的提取也会包含很多小小的耦合电容。小的耦合电容可以可以基于以下的标准,被滤除:
- 电容值小:例如小于1fF的电容可以被滤除,值很小的电容也可以被当做接地电容进行处理。
- 耦合比率:耦合效应对于受害者网络的影响,是基于耦合电容与受害者网络总电容的比率而言的。举例来说,比例如果小于0.001,那么我们就认为可以忽略这个影响。
- 组合小攻击者:许多有着小耦合电容的攻击者,可以合并为一个大的、虚拟的攻击者。这可能有些悲观,但是可以简化分析。可以通过切换攻击者的子集来减少悲观度,攻击者的子集可以通过统计方法来确定。
6.6 避免噪音的方法
这里讲一些在物理设计阶段(physical design phase)可以用来避免噪声的方法。
- 屏蔽(shield):屏蔽线放置在关键信号的两侧,屏蔽线连接到地或是电源电压。这确保了关键信号没有有效的攻击者,因为在同一金属层中最相邻的走线是处于固定电位的屏蔽走线。虽然不同的金属层之间可能存在耦合,但多数耦合都是在同一金属层中。这是因为,紧接的金属层通常会采用正交布线,层层之间的耦合作用就很小了。因此,在相同的金属层放置屏蔽线,可以保证对于关键信号而言,在同一层之内有很小的耦合。如果由于布线的拥塞导致无法通过金属线连接地或者Vdd进行屏蔽。可以使用在功能模式下,恒定电平或者活跃度较低的信号,比如说扫描信号,作为关键信号的近邻,充当屏蔽作用。
- 线距离(wire spacing):减少了与临近网络的耦合。
- 快压摆(fast slew rate):在网络中较快的压摆(即信号变化的速度)意味着这个网络对串扰(crosstalk)的敏感性较低,因此对串扰具有一定的抵抗力。
- 稳定的供电(good power supply):这可以减少由于电源电压差异所引起的抖动。电源的噪音可以引起时钟信号的大量的噪音。应该添加足够的去耦电容(decoupling capacitances),最小化电源供电电压的噪音的影响。
- 保护环(guard ring):在衬底上使用保护环,或双重保护环,可以保护设计的模拟电路部分,避免受到数字电路部分的噪声干扰。
- 深n阱(deep n well):与上述的类似,可以保护电路设计中的模拟电路部分防止收到来自于数字电路部分的噪声干扰。
- 隔离模块(isolating a block):在层次化设计中,可以将布线晕圈(halos)添加到块的边界;此外,还可以将隔离缓冲器(isolation buffers)添加到块的每个IO中。
部分内容翻译自“Static Timing Analysis for Nanometer Designs A Practical Approach” 欢迎指正!