【第六章:串扰噪声 下】静态时序分析圣经翻译计划
本文由知乎
赵俊军
授权转载,知乎主页为https://www.zhihu.com/people/zhao-jun-jun-19
6.3 串扰延迟分析
6.3.1 基础
纳米设计中典型网络的电容提取包括许多相邻网络的影响,其中一些是接地电容,而其它一些则来自其它信号网络的一部分走线。接地电容和信号间电容如图6-1所示。在基本延迟计算时(不考虑任何串扰),所有这些电容均被视为网络总电容的一部分。当相邻网络稳定(或电平不切换)时,信号间电容也可以视为接地电容。当一个相邻网络电平切换时,通过耦合电容的充电电流会影响该网络的时序。网络间的等效电容会根据攻击者网络电平切换的方向而变大或变小,下面的一个简单示例对此进行了说明。
从图6-12中可以看出,网络N1通过电容Cc耦合到相邻的网络(标记为攻击者网络),并通过电容Cg接地。此示例假定网络N1在输出端具有上升电平过渡,并根据攻击者网络是否同时进行电平切换来考虑不同的情况。
各种情况下,驱动单元所需的电容电荷可能会有所不同,如下所述。
- 攻击者网络处于稳定状态:在这种情况下,网络N1的驱动单元将提供电荷使Cg和Cc充电至Vdd。因此,该网络的驱动单元提供的总电荷为(Cg + Cc)* Vdd。这种情况可以进行基本的延迟计算,因为在这种情况下未考虑来自攻击者网络的串扰。表6-13中为此情况下在网络N1电平切换前后Cg和Cc中的电荷量:
- 攻击者网络朝同方向切换电平: 在这种情况下,往同方向电平切换的攻击者网络可以起辅助驱动单元的作用。如果攻击者网络同时以相同的压摆(相同的过渡时间)进行电平切换,则驱动单元提供的总电荷仅为(Cg * Vdd )。如果攻击者网络的压摆比N1网络压摆更快,则所需的实际电荷可能甚至小于(Cg * Vdd),因为攻击者网络也可以为Cg提供充电电流。因此,在攻击者朝相同方向切换电平时,来自驱动单元的所需电荷会小于表6-13中描述的攻击者处于稳定状态时的所需电荷。因此,当攻击者网络朝相同方向切换电平时会导致网络N1切换电平的延迟更短, 延迟的减少被标记为负串扰延迟(negative crosstalk delay)。这种情况请参见表6-14,通常会在进行最小路径分析时考虑此情况。
- 攻击者网络朝相反方向切换电平:在这种情况下,耦合电容需要从-Vdd充电到Vdd。因此在电平切换前后,耦合电容上的电荷变化量为(2 * Cc * Vdd),网络N1的驱动单元以及攻击者网络均需要提供额外的电荷。这种情况会导致网络N1切换电平的延迟更大,延迟的增加被标记为正串扰延迟(positive crosstalk delay)。这种情况请参阅表6-15,通常会在进行最大路径分析时考虑此情况。
上面的示例说明了在各种情况下电容Cc的充电以及它如何影响网络N1切换电平的延迟。该示例仅考虑了网络N1处的上升过渡,但是类似的分析也适用于下降过渡。
6.3.2 正负串扰
基本延迟计算(不考虑任何串扰)假定驱动单元为网络总电容Ctotal(= Cground + Cc)的轨到轨(rail-to-rail)过渡提供了所有必要的电荷。如前一小节所述,当耦合(攻击者)网络和受害者网络朝相反方向切换电平时,耦合电容Cc所需的电荷会更大。朝相反方向电平切换的攻击者网络增加了来自受害者网络驱动单元的所需电荷量,并且增加了驱动单元和受害者网络互连的延迟。
类似地,当耦合(攻击者)网络和受害者网络朝相同方向切换电平时,Cc上的电荷在受害者和攻击者切换电平前后都保持不变。这减少了来自受害者网络驱动单元的所需电荷,并且减少了驱动单元和受害者网络互连的延迟。
综上所述,同时切换受害者和攻击者的电平会影响受害者网络过渡的时序。根据攻击者网络电平切换方向的不同,串扰延迟影响可能为正(减慢受害者网络过渡时间)或为负(加快受害者网络过渡时间)。
正串扰延迟影响的示例如图6-16所示。受害者网络在下降的同时,攻击者网络却在上升。攻击者网络向相反方向的电平切换会增加受害者网络的延迟。正串扰(positive crosstalk)会影响驱动单元以及互连线,这两者的延迟都会增加。
串扰延迟为负的情况如图6-17所示。攻击者网络与受害者网络同时上升,攻击者网络与受害者网络朝相同方向的电平切换可减少受害者网络的延迟。如前所述,负串扰(negative crosstalk)会影响驱动单元和互连线的时序,两者的延迟都会减小。
注意,最差的正串扰延迟和最差的负串扰延迟会分别针对上升和下降延迟进行计算。一般来说,由于串扰而导致的最大上升时间、最小上升时间、最大下降时间、最大下降时间延迟的攻击者是不同的,这将在下面的小节中进行介绍。
6.3.3 多攻击者的累积效应
在多攻击者的串扰延迟分析中将累积由每个攻击者串扰带来的影响,这类似于6.2节中介绍的串扰毛刺分析。当多个网络同时进行电平切换时,对受害者网络的串扰延迟影响将由于多攻击者而变得更加复杂。
大多数由于多攻击者而导致的耦合分析都增加了每个攻击者的增量影响,并计算了对受害者网络的累积影响。这可能看起来很保守,但是它确实表明了受害者网络最差情况的串扰延迟。
与多攻击者时的串扰毛刺分析相似,也可以使用均方根(RMS)法,这种方法的悲观度不如直接累加每个攻击者带来的影响。
6.3.4 攻击者与受害者网络的时序相关性
串扰延迟分析时序相关的处理在概念上类似于6.2节中介绍的串扰毛刺分析时序相关内容。只有当攻击者可以与受害者网络同时切换电平时,串扰才会影响受害者的延迟,这是使用攻击者和受害者网络的时序窗口确定的。如6.2节所述,时序窗口表示网络可以在一个时钟周期内切换的最早(earliest)和最迟(latest)时间。如果攻击者和受害者网络的时序窗口重叠,则可以计算出串扰对延迟的影响。对于多攻击者,也将类似地分析多个攻击者的时序窗口。计算各种时序区域的可能影响,并考虑串扰延迟影响最严重的时序区域,以进行延迟分析。
考虑下面的示例,其中三个攻击者网络可能会影响受害者网络的时序。攻击者网络(A1,A2,A3)与受害者网络(V)电容耦合,并且它们的时序窗口与受害者网络的时序窗口有重叠部分。图6-18中为时序窗口以及每个攻击者可能造成的串扰延迟影响。基于时序窗口,串扰延迟分析可以确定引起最大串扰延迟影响的攻击者组合。在此示例中,时序窗口可分为三个重叠区域,每个区域中都有不同的攻击者进行电平切换。区域1中A1和A2进行电平切换,这可能导致串扰延迟影响为0.26(= 0.12 + 0.14)。区域2中仅A1进行电平切换,带来的串扰延迟影响为0.14。区域3中仅A3进行电平切换,带来的串扰延迟影响为0.23。因此,区域1的串扰延迟影响0.26为最坏的情况。
如前所述,串扰延迟分析将分别计算四种类型的串扰延迟。串扰延迟的四种类型是:正上升延迟(上升沿提前到达)、负上升延迟(上升沿滞后到达)、正下降延迟和负下降延迟。通常,在这四种情况下,网络可以具有不同的攻击者组合。例如,受害者网络具有攻击者网络A1、A2、A3和A4。在串扰延迟分析过程中,A1、A2、A4可能对正上升和负下降延迟有影响,而A2和A3对负上升和正下降延迟有影响。
6.3.5 攻击者与受害者网络的功能相关性
除时序窗口外,串扰延迟计算还会考虑各种信号之间的功能相关性。例如,扫描控制信号仅在扫描模式期间进行电平切换,并且在执行设计的功能或任务模式期间保持稳定。因此,在功能模式期间,扫描控制信号不可能成为攻击者。扫描控制信号只能在扫描模式期间成为攻击者,在这种情况下,扫描控制信号不能与其他功能信号组合在一起,以进行最差情况的噪声计算。
功能相关性的另一个示例是两个攻击者互补(逻辑相反)的情况。在这种情况下,信号及其互补信号永远都不可能朝相同方向上切换电平以进行串扰噪声计算。可以利用这种类型的功能相关性信息,来确保仅实际上可以一起切换电平的信号作为攻击者,从而使串扰分析结果不会过于悲观。
6.4 使用串扰延迟进行时序检查
需要为设计中的每个单元和互连线计算以下四种类型的串扰延迟影响:
- 正上升延迟(Positive rise delay):上升沿提前到达
- 负上升延迟(Negative rise delay):上升沿滞后到达
- 正下降延迟(Positive fall delay):下降沿提前到达
- 负下降延迟(Negative fall delay):下降沿滞后到达
然后,在时序分析时将串扰延迟影响用于最大和最小路径的时序检查(建立时间和保持时间检查),对数据发起和捕获触发器的时钟路径处理方式是不同的。本节将介绍建立时间和保持时间检查时对数据路径和时钟路径的详细分析。
6.4.1 建立时间分析
带有串扰分析的STA可以通过最差情况下数据路径和时钟路径的串扰延迟来验证设计的时序。考虑图6-19所示的逻辑电路,其中串扰可能会沿着数据路径和时钟路径在各种网络处发生。建立时间检查的最差条件是发起时钟(launch clock)路径和数据路径都具有正串扰,而捕获时钟(capture clock)路径具有负串扰。发起时钟路径和数据路径上的正串扰影响会延迟数据到达捕获触发器的时间。此外,捕获时钟路径上的负串扰影响会导致捕获触发器的时钟有效沿过早地到达。
基于上述介绍,建立时间(或最大路径)分析将假定:
- 发起时钟路径出现正串扰延迟,因此发起数据较迟;
- 数据路径出现正串扰延迟,因此数据到达目的地需要更长的时间;
- 捕获时钟路径的串扰延迟为负,因此捕获触发器会更早捕获数据。
由于建立时间检查的发起和捕获时钟沿是不同的(通常间隔一个时钟周期),所以公共时钟路径(common clock path)对于发起和捕获时钟沿可能具有不同的串扰影响。
6.4.2 保持时间分析
STA的最差情况保持时间(或最小路径)分析类似于前面小节中介绍的最差情况建立时间分析。根据图6-19所示的逻辑电路,当发起时钟路径和数据路径均具有负串扰且捕获时钟路径具有正串扰时,会发生最差的保持时间检查条件。发起时钟路径和数据路径上的负串扰影响导致数据提前到达捕获触发器。此外,捕获时钟路径上的正串扰会导致捕获触发器的时钟有效沿延迟到达。
保持时间分析与建立时间分析对公共时钟路径上的串扰分析存在一个重要的区别:在保持时间分析中,发起和捕获时钟边沿通常是同一个边沿,通过公共时钟路径部分的时钟沿不会对发起时钟路径和捕获时钟路径具有不同的串扰影响,因此,最差情况的保持时间分析会从公共时钟路径中消除串扰影响。
因此,具有串扰的STA最差情况保持时间(或最小路径)分析将假定:
- 发起时钟(不包括公共时钟路径部分)的串扰延迟影响为负,因此可以较早地发起数据;
- 数据路径的串扰延迟影响为负,因此数据会较早到达目的地;
- 捕获时钟(不包括公共时钟路径部分)的串扰延迟影响为正,因此捕获触发器会较迟地捕获数据。
如上所述,在保持时间分析中不考虑对时钟树公共路径部分的串扰影响,仅针对时钟树的非公共路径部分计算发起时钟的正串扰影响和捕获时钟的负串扰影响。在用于保持时间分析的STA报告中,公共时钟路径可能会显示发起时钟路径和捕获时钟路径具有不同的串扰影响。但是,来自公共时钟路径的串扰影响会被作为公共路径悲观度单独减去。10.1节中将介绍一个STA报告中常见的减去路径悲观度的示例。
如前面小节所述,建立时间分析涉及时钟的两个不同边沿,这些边沿可能会在时序上受到不同影响。因此,在建立时间分析中,发起和捕获时钟路径均考虑了公共路径的串扰影响。
时钟信号至关重要,因为时钟树上的任何串扰都直接转化为时钟抖动(jitter)并影响设计的性能。因此,应该采取特殊的方法来减少时钟信号上的串扰。常见的避免噪声的方法是时钟树的屏蔽(shield),这将在6.6节中进行详细讨论。
6.5 计算复杂度
大型的纳米级设计通常过于复杂,以至于无法在合理的时间内对每个耦合电容进行分析。典型网络的寄生参数提取包含了许多相邻信号的耦合电容。大型设计通常需要对寄生参数提取、串扰延迟分析和串扰毛刺分析进行适当的设置。选择这些设置可为分析提供可以接受的准确度,同时确保对CPU的要求仍然可行。本节介绍了可用于分析大型纳米级设计的一些技术。
分层设计与分析
4.5节已介绍了可用于验证大型设计的分层方法(Hierarchical Methodology),类似的方法也可用于降低提取寄生参数和进行分析的复杂性。
对于大型设计,运行(run)一次通常无法实现寄生参数的提取。每个层级模块的寄生参数可以分别提取,这又需要在设计实现的时候使用了分层设计方法。这意味着在分层模块内部的信号与模块外部的信号之间不存在耦合,这可以通过不在模块边界上布线或通过在模块上添加屏蔽层来实现。另外,信号网络不应该布在靠近模块边界的地方,并且任何布线网络都应在靠近模块边界的地方进行屏蔽保护,这样可以避免与其他模块的网络耦合。
耦合电容的过滤
即使对于中等规模的模块,寄生参数通常也会包括大量非常小的耦合电容。小耦合电容可以在提取过程中或在分析过程中过滤掉。
这样的过滤是基于以下原则的:
- 较小的值:在串扰或噪声分析中,可以忽略非常小的耦合电容,例如低于1fF。在提取过程中,数值较小的耦合电容可以视为接地电容。
- 耦合比:耦合对受害者网络的影响是基于耦合电容相对于受害者网络总电容的相对值。具有较小耦合比(例如低于0.001)的攻击者网络可以从串扰延迟分析或串扰毛刺分析中排除。
- 合并小型攻击者:可以将影响很小的多个攻击者映射为一个较大的虚拟攻击者。这可能有点悲观,但可以简化分析。可以通过切换攻击者的子集来缓解一些悲观度,攻击者的确切子集可以通过统计方法来确定。
6.6 噪声避免技术
前面的小节介绍了串扰效应的影响和分析。在本小节中,我们将介绍一些可以在物理设计阶段使用的噪声避免技术。
- 屏蔽(Shielding):此方法要求将屏蔽线放在关键信号的两侧,屏蔽线已连接到了电源或地。关键信号的屏蔽确保了关键信号没有有效的攻击者,因为在同一金属层中最相邻的走线是处于固定电位的屏蔽走线。尽管在不同的金属层中可能存在来自布线的某些耦合,但是大多数耦合电容还是由于同一层中的电容耦合引起的。由于不同金属层(上方和下方)通常会正交走线,这样跨层的电容耦合会最小化。因此,将屏蔽线放置在同一金属层中可确保关键信号的耦合最小。如果由于布线拥塞而无法使用接地或电源线进行屏蔽,则可以把在功能模式下保持不变、电平切换不频繁的信号(如扫描控制信号)布线为关键信号的直接相邻信号。这些屏蔽方法可确保不会由于相邻网络的电容耦合而产生串扰。
- 线距(Wire spacing):这减少了与相邻网络的耦合。
- 快速压摆(Fast slew rate):网络上的压摆较快表示该网络不易受到串扰的影响。
- 保持良好的稳定电源(Maintain good stable supply):这对于串扰而言并不重要,但对于最大程度地减少由于电源变化而引起的抖动至关重要。由于电源上的噪声,可能会在时钟信号上引入大量噪声。应该添加足够的去耦电容,以最大程度地减少电源上的噪声。
- 保护环(Guard ring):衬底(substrate)上的保护环(或双重保护环)有助于将关键的模拟电路与数字噪声隔离开来。
- 深n阱(Deep n-well):与上面类似,因为在模拟部分具有深n阱,有助于防止噪声耦合到数字部分。
- 隔离块(Isolating a block):在分层设计流程中,可以将布线晕圈(halos)添加到块的边界;此外,还可以将隔离缓冲器(isolation buffers)添加到块的每个IO中。