纳米设计下的静态时序分析05

   Chapter5  延时计算

   本章概述了基于单元的设计在布局前和布局后时序验证中的延迟计算。 前面的章节着重介绍了互连和单元库的建模。 单元和互连建模技术被用来获得设计的时间。

   

   5.1概述

   5.1.1 延迟计算基础

   典型的设计包括各种组合和连续的单元。 我们使用图5-1所示的示例逻辑片段来描述延迟计算的概念。

      

   每个单元的库描述指定每个输入引脚的引脚电容值。 因此,设计中的每个网络都有一个容性负载,它是网络每个扇出的引脚电容负载加上互连的贡献之和。 为了简单起见,本节不考虑互连的贡献 - 这些在后面的章节中有描述。 在不考虑互连寄生效应的情况下,图5-1中的内部网络NET0的净电容由UAND1和UNOR2单元的输入引脚电容组成。 输出O1具有UNOR2单元的引脚电容以及逻辑块输出的任何容性负载。 输入I1和I2具有对应于UAND1和UINV0单元的引脚电容。 有了这样的抽象,图5-1中的逻辑设计就可以用图5-2所示的等价表示来描述。

   如第3章所述,单元库包含各种时序弧的NLDM时序模型。根据输入转换时间和输出电容,非线性模型被表示为二维表格。逻辑单元的输出转换时间也根据输入转换和网络上的总输出电容被描述为二维表格。因此,如果在逻辑块的输入处指定了输入转换时间(或摆动),则可以从库中获得UINV0单元和UAND1单元(用于输入I1)的输出转换时间和延迟通过时序弧描述。通过扇出单元扩展相同的方法,可以获得通过UAND1单元(从NET0到O1)和通过UNOR2单元的另一个时序弧的转换时间和延迟。对于多输入单元(如UAND1),不同的输入引脚可以提供不同的输出转换时间值。用于扇出网络的转换时间的选择取决于转换合并选项,在5.4节中进行了描述。使用上述方法,通过任何逻辑单元的延迟可以基于输入引脚上的转换时间和输出引脚上存在的电容来获得。

     

 

   5.1.2互连延迟计算

   Pre-layout Timing

   如第4章所述,在预布局时序验证期间,使用有线负载模型估计互连寄生参数。 在许多情况下,电线负载模型中的电阻贡献被设置为0.在这种情况下,电线负载贡献是纯电容性的,上一节中描述的延迟计算方法适用于获得设计中所有时序弧的延迟。

   在有线负载模型包括互连电阻的影响的情况下,NLDM模型与通过单元的延迟的总净电容一起使用。 由于互连是电阻性的,因此从驱动单元的输出到扇出单元的输入引脚会有额外的延迟。 互连延迟计算过程在5.3节中描述。

   Post-layout Timing

   金属迹线的寄生图映射到驱动器和目标单元之间的RC网络。 使用图5-1的例子,网络的互连电阻如图5-3所示。 图5-1中的NET0等内部网络映射成多个子节点,如图5-3所示。 因此,反相器单元UINV0的输出负载由RC结构构成。 由于NLDM表就输入转换和输出电容而言,输出引脚上的电阻负载意味着NLDM表不能直接应用。 在下一节中介绍使用NLDM和电阻互连。  

     

   

   5.2 使用有效电容的单元延迟

  如上所述,当单元输出端的负载包括互连电阻时,NLDM模型不能直接使用。 相反,采用“有效”电容方法来处理电阻效应。

  有效的电容方法试图找到可用作等效负载的单个电容,使得原始设计以及具有等效电容负载的设计在单元的输出处的时序方面表现类似。 这个等效的单个电容被称为有效电容。

   图5-4(a)显示了一个在其扇出处具有RC互连的单元。 RC互连由图5-4(b)中所示的等效RC PI网络表示。 有效电容的概念是获得等效的输出电容Ceff(如图5-4(c)所示),其与RC负载的原始设计具有相同的延迟。 一般来说,RC负载的单元输出波形与单个电容负载的波形非常不同。

   图5-5显示了单元输出端的总电容,有效电容和具有实际RC互连的波形的代表性波形。 选择有效电容Ceff使得图5-4(c)中单元输出端的延迟(如在转换的中点测量)与图5-4(a)中的延迟相同。 如图5-5所示。

   关于PI等效表示,有效电容可以表示为:

     Ceff = C1 + k * C2, 0 <= k <= 1

   其中C1是近端电容,C2是远端电容,如图5-4(b)所示。 k值介于0和1之间。在互连电阻可以忽略不计的情况下,有效电容几乎等于总电容。 图5-4(b)中将R设置为0可以直接解释这一点。 同样,如果互连电阻相对较大,有效电容几乎等于近端电容C1(图5-4(b))。 这可以通过将R增加到R成为无穷大(本质上是开路)的极限情况来解释。

     

   有效电容是一个函数:

    I.驱动单元,and

   II.负载的特性或特别是从驱动单元看到的负载的输入阻抗。

   对于给定的互连,具有弱输出驱动的单元将比具有强驱动的单元看到更大的有效电容。 因此,当互连电阻可忽略不计或驱动单元较弱时,有效电容将在C1的最小值(用于高互连电阻或强驱动单元)和最大值(与总电容相同)之间。 请注意,目标引脚的转换晚于驱动单元的输出。 近端电容充电比远端电容更快的现象也被称为互连的电阻屏蔽效应,因为驱动单元只能看到部分电容电容。

   与通过在库中直接查找NLDM模型计算延迟不同,延迟计算工具通过迭代过程获得有效电容。就算法而言,第一步是获得实际RC负载的单元输出所见的驱动点阻抗。实际RC负载的驱动点阻抗是使用任一方法(如二阶AWE或Arnoldi算法)计算的。计算有效电容的下一步是将两个方案中转移的中点的电荷等同起来。当使用实际RC负载(基于驱动点阻抗)时,在电池输出端传输的电荷与使用有效电容作为负载时的电荷传输匹配。请注意,电荷转移仅在转换的中点时才匹配。该过程从有效电容的估计开始,然后迭代地更新估计。在大多数实际情况下,有效电容值在少量迭代内收敛。

   有效的电容近似因此是通过单元计算延迟的良好模型。但是,使用有效电容获得的输出摆动与单元输出处的实际波形不一致。单元输出处的波形,尤其是波形的后半部分,不是由有效电容近似表示的。请注意,在一个典型的场景中,感兴趣的波形不是在单元输出端,而是在扇出单元输入引脚的互连目标点。

   有多种方法来计算互连目标点的延迟和波形。在许多实施中,有效电容程序还计算驱动单元的等效戴维南电压源。 Thevenin源包括一个串联电阻Rd的斜坡源,如图5-6所示。串联电阻Rd对应于电池输出级的下拉(或上拉)电阻。

     

   本节描述了通过使用有效电容的RC互连来驱动单元的延迟的计算。 有效的电容计算还提供了等效的戴维南电源模型,然后通过RC互连获取时序。 接下来描述通过互连获得时序的过程。

 

   5.3互连延迟

   如第4章所述,网络的互连寄生效应通常由RC电路表示。 RC互连可以是布局前或布局后。 尽管布局后寄生互连可以包括耦合到相邻网络,但是基本延迟计算将所有电容(包括耦合电容)视为接地电容。 图5-7显示了一个网络的寄生效应及其驱动单元和扇出单元的例子。

     

   使用有效的电容方法,分别获得通过驱动单元和通过互连的延迟。 有效的电容方法通过驱动单元以及单元输出处的等效戴维南源提供延迟。 然后使用戴维南源分别计算通过互连的延迟。 互连部分具有一个输入和与目的地引脚一样多的输出。 使用互连输入处的等效戴维宁电压源,计算每个目标引脚的延迟。 如图5-6所示。

   对于布局前分析,RC互连结构由树的类型决定,这又决定了网络延迟。 第4.2节中详细介绍了三种互连树表示形式。 所选的树类型通常由库定义。 通常情况下,最差情况下的缓存库会选择最差情况下的树型,因为该树型提供最大的互连延迟。 类似地,通常为最佳情况下的树结构选择最快的树结构,其不包括从源引脚到目标引脚的任何电阻。 最佳情况下树型的互连延迟因此等于零。 典型情况树和最坏情况树的互连延迟与布局后RC互连类似。

   Elmore Delay

   Elmore延迟适用于RC树。 什么是RC树? RC树满足以下三个条件:

      •有一个输入(源)节点。

      •没有任何电阻回路。

      •所有电容都在节点和地之间。

   Elmore延迟可以被认为是通过每个段寻找延迟,因为R乘以下游电容,然后取从根到延迟的总和。

     

   各种中间节点的延迟表示为:

     

   考虑到脉冲响应的第一时刻,Elmore延迟在数学上是相同的。 我们现在将Elmore延迟模型应用于以Rwire和Cwire作为寄生参数的简化线路表示,再加上一个负载电容Cload来模拟线路远端的引脚电容。 等效的RC网络可以简化为PI网络模型或者T表示,分别如图4-4和图4-3所示。 这两种表示都提供了净延迟(基于Elmore延迟方程):

     

   这是因为Cload在其充电路径中看到了整个导线电阻,而Cwire电容在T表示中看到Rwire / 2,在Cwire / 2看来Rwire在PI表示的充电路径中。 上述方法也可以扩展到更复杂的互连结构。 以下给出使用平衡RC树(以及最坏情况下的RC树)的有线负载模型的网络的Elmore延迟计算的示例。 使用平衡树模型,网络的电阻和电容在网络的分支之间平均分配(假设扇出为N)。 对于引脚负载Cpin的分支,使用平衡树的延迟是:

     

   在最坏情况下的树状模型中,网络的每个端点都考虑网络的电阻和整个电容。 这里Cpins是所有扇出总销载荷:

     

   图5-9显示了一个示例设计。

     

   如果我们使用最坏情况下的树模型来计算网络N1的延迟,我们得到:

     

   如果我们使用平衡树模型,我们得到网络N1的两个分支的下列延迟:

      Net delay to NOR2 input pin = (0.3/2) * (0.5/2 + 1.3) = 0.2325

      Net delay to BUF input pin= (0.3/2) * (0.5/2 + 1.0) = 0.1875

   Higher Order Interconnect Delay Estimation

   如上所述,Elmore延迟是脉冲响应的第一个时刻。 AWE(渐近波形评估),Arnoldi或其他方法匹配高阶响应。 通过考虑更高阶的估计,可以获得更高的计算互连延迟的准确度。

   Full Chip Delay Calculation

   小结,本章已经描述了一个单元的延迟和一个单元输出端的互连的计算。 因此,给定单元输入处的转换,可以计算通过单元的延迟和单元输出处的互连。 互连(目的地或节点)远端的过渡时间是下一阶段的输入,并且在整个设计过程中重复这个过程。 因此计算出设计中每个时序弧的延迟。

     

   5.4 斜坡合并

   当多重斜坡到达一个共同点时会发生什么情况,比如在多输入单元或多驱动网络的情况下? 这样一个共同的点被称为转换合并点。 选择哪一个转换在合并点向前传播? 考虑图5-10中显示的2输入单元。

     

   由于引脚A上的信号变化,引脚Z处的摆动早期到达,但上升缓慢(慢速摆动)。 由于引脚B上的信号变化,引脚Z处的摆动到达较晚,但快速上升(快速摆动)。 在摆动合并点,比如引脚Z,哪个摆动应该被选择进一步传播? 如下所述,根据正在执行的时序分析类型(最大值或最小值),这些摆率值中的任何一个值都可能是正确的。进行最大路径分析时有两种可能性。  

      I. 最差的斜坡传播:该模式选择合并点处的最差斜坡传播。 这将是图5-10(a)中的转折点。 对于穿过引脚A-> Z的时序路径,这个选择是确切的,但是对于通过引脚B-> Z的任何时序路径是悲观的。
     II.最差的到达传播:这种模式选择合并点传播的最差到达时间。 这对应于图5-10(b)中的摆动。 在这种情况下选择的斜率对于穿过引脚B-> Z的时序路径是精确的,但对于穿过引脚A-> Z的时序路径是乐观的。

   同样,进行最小路径分析时有两种可能性:

      I. 最佳斜坡传播:此模式选择合并点处的最佳斜坡传播。 这将是图5-10(b)中的转折点。 对于通过引脚B-> Z的时序路径,该选择是精确的,但对于经过引脚A-> Z的任何定时路径,选择都较小。 对于经过A-> Z的路径,路径延迟小于实际值,因此对于最小路径分析是悲观的。

     II. 最佳到达传播:此模式选择合并点处传播的最佳到达时间。 这对应于图5-10(a)中的摆动。 在这种情况下选择的摆动对于穿过引脚A-> Z的时序路径是精确的,但是选择大于通过引脚B-> Z的时序路径的实际值。 对于经过B→Z的路径,路径延迟大于实际值,因此对于最小路径分析是乐观的。

   设计者可以在用于产生SDF的静态时序分析环境之外执行延迟计算。 在这种情况下,延迟计算工具通常使用最差的摆动传播。 由此产生的SDF足以用于最大路径分析,但对于最小路径分析可能是乐观的。 大多数静态时序分析工具使用最差和最好的摆动传播作为默认值,因为它通过保守来限制分析。 但是,在分析特定路径时,可以使用精确的摆动传播。 精确的摆动传播可能需要在时序分析工具中启用一个选项。 因此,了解在静态时序分析工具中默认使用哪种传播模式是非常重要的,并了解何时可能过于悲观的情况。

 

   5.5不同的临界值

   通常,库指定在单元的表征过程中使用的摆动(转换时间)阈值。 问题是,当具有一组摆动阈值的单元使用不同的摆动阈值设置来驱动其他单元时会发生什么? 考虑图5-11所示的情况,其特征在于具有20-80转换阈值的单元驱动两个扇出单元; 一个10-90转换阈值,另一个30-70转换阈值和一个摆动0.5减免。

   单元格U1的旋转设置在单元库中定义如下:

     

     

     

   另一个库中的单元U2可以将slew设置定义为:

     slew_lower_threshold_pct_rise : 10.00

     slew_upper_threshold_pct_rise : 90.00

     slew_derate_from_library : 1.00

     slew_lower_threshold_pct_fall : 10.00

     slew_upper_threshold_pct_fall : 90.00

   另一个库中的单元U3可以将slew设置定义为:

     slew_lower_threshold_pct_rise : 30.00

     slew_upper_threshold_pct_rise : 70.00

     slew_derate_from_library : 0.5

     slew_lower_threshold_pct_fall : 30.00

     slew_upper_threshold_pct_fall : 70.00

   上面只显示U2和U3的相关设置。 输入和输出阈值的延迟相关设置是50%,上面没有显示。 延迟计算工具根据连接网络的单元的转换阈值来计算转换时间。 图5-11显示了U1 / Z的摆动如何对应于此引脚的开关波形。 U1 / Z的等效戴维宁源被用来获得扇出单元输入端的开关波形。 根据U2 / A和U3 / A的波形及其转换阈值,延迟计算工具计算U2 / A和U3 / A的转换。 请注意,U2 / A的摆率基于10-90的设置,而U3 / A的摆率基于30-70设置,然后根据库中指定的slew_derate 0.5进行降额设置。 此示例说明扇出单元的输入处的摆动是如何基于扇出单元的切换波形和摆动阈值设置来计算的。

   在不考虑互连电阻的预布局设计阶段,可以按照以下方式计算具有不同阈值的网络的摆动。 例如,10-90转换和20-80转换之间的关系是:

     slew2080 / (0.8 - 0.2) = slew1090 /(0.9 - 0.1)

   因此,具有10-90个测量点的500ps的回转对应于具有20-80个测量点的回转(500ps * 0.6)/0.8=375ps。 类似地,具有20-80个测量点的600ps的摆动对应于具有10-90个测量点的(600ps * 0.8)/0.6=800ps的摆动。

 

   5.6 不同的电压域

   典型的设计可以针对芯片的不同部分使用不同的电源电平。 在这种情况下,在不同电源域之间的接口处使用电平转换单元。 电平转换单元接受一个电源域的输入,并在另一电源域提供输出。 例如,一个标准单元输入可以是1.2V,其输出可以是一个降低的电源,可以是0.9V。 图5-12显示了一个例子。

   请注意,延迟是从50%的阈值点计算出来的。 这些点对于接口单元的不同引脚处于不同的电压。

 

   5.7 路径延迟计算

   一旦每个时序弧的所有延迟都可用,则通过设计中的单元的时序可以表示为时序图。 通过组合单元的时序可以表示为从输入到输出的时序弧。 类似地,互连由来自源到每个目的地(或汇)点的相应的弧表示,表示为单独的时序弧。 一旦整个设计被相应的弧注释,计算路径延迟包括沿路径加上所有的网络和单元时序弧。

     

   5.7.1组合路径延迟

   考虑三个串联的反相器,如图5-13所示。 当考虑从净N0到净N3的路径时,我们考虑上升沿和下降沿路径。 假设网络N0有一个上升沿。 可以指定在第一反相器的输入处的转换时间(或摆动) 在没有这样的说明的情况下,假设转移时间为0(对应于理想的步骤)。 输入UINVa / A的转换时间是通过使用上一节中指定的互连延迟模型来确定的。 同样的延迟模型也用于确定网络N0的延迟Tn0。

        

   输出UINVa / Z的有效电容是根据UINVa输出端的RC负载获得的。 然后使用输入UINVa / A的转换时间和输出UINVa / Z的等效有效负载来获得单元输出下降延迟。
   引脚UINVa / Z的等效戴维宁源模型用于通过使用互连模型来确定引脚UINVb / A处的转换时间。互连模型还用于确定网络N1上的延迟Tn1。
   一旦输入UINVb / A处的转换时间已知,则通过UINVb计算延迟的过程也被类似地使用。 UINVb / Z上的RC互连和引脚UINVc / A的引脚电容用于确定N2处的有效负载。 UINVb / A的转换时间用于确定通过反相器UINVb的上升延迟等等。
   最后一级的负载由所提供的任何明确的负载规格确定,或者在没有负载的情况下仅使用净N3的线负载。

  上面的分析假设净N0的上升沿。 对于网络N0上的下降沿,可以进行类似的分析。 因此,在这个简单的例子中,有两个定时路径有以下延迟:

     

      

   一般来说,由于驱动单元输出处的戴维宁源模型不同,通过互连的上升和下降延迟可能不同。

   

   5.7.2触发器的路径

   Input to Flip-flop Path

   考虑从输入SDT到触发器UFF1的路径的时序,如图5-14所示。

     

   我们需要考虑上升沿和下降沿路径。 对于输入SDT上升沿的情况,数据通路延迟为:

     

   类似地,对于输入SDT的下降沿,数据路径延迟为:

     

   输入MCLK上升沿的捕捉时钟路径延迟为:

     

   Flip-flop to Flip-flop Path

   图5-15显示了两个触发器和相应时钟路径之间的数据路径示例。

     

   UFF0 / Q上升沿的数据路径延迟为:

     

    输入PCLK上升沿的启动时钟路径延迟为:

     

   输入PCLK上升沿的捕捉时钟路径延迟为:

     

   请注意,单元格的不一致性需要考虑,因为边缘方向可能随着它穿过单元格而发生变化。

 

   5.7.3多路径

   在任何两点之间,可以有许多路径。 最长的路径是花费时间最长的路径; 这也被称为最差路径,晚期路径或最大路径。 最短的路径是最短的时间; 这也被称为最佳路径,早期路径或最小路径。 通过图5-16中的时序弧查看逻辑和延迟。 两个触发器之间的最长路径是通过单元UBUF1,UNOR2和UNAND3。 两个触发器之间的最短路径是通过单元UNAND3。

     

 

   5.8冗余计算

   松弛是所需时间和信号到达时间之间的差异。 在图5-17中,为了满足设置要求,数据需要在7ns时间内保持稳定。 然而数据在1ns时变得稳定。 因此,松弛是6ns(= 7ns - 1ns)。

     

   假设数据所需时间是从捕获触发器的建立时间获得的,

     

   类似地,如果两个信号之间有100ps的偏斜要求,并且测得的偏斜是60ps,则偏斜的松弛是40ps(= 100ps-60ps)。

 

posted on 2017-12-05 12:19  浅狼魂  阅读(1732)  评论(0)    收藏  举报

导航