静态时序分析 第五章 延迟计算

第五章 延迟计算

5.1概述(Overview)

本章概述了预布局(Pre-Layout)布局(Post-Layout)后的,以单元为基础的设计是如何进行延迟计算的。前几章重点介绍了互连线建模(interconnect modeling techniques)和库函数。单元和互连线的建模技术被用来得到设计的时序。


5.1.1延迟计算的基础( Delay Calculation Basics)

   一个典型的设计包括了各种组合逻辑以及时序单元。我们用图5-1所示的逻辑片段为例来介绍延迟计算的概念。
   每个单元的库描述中为每个输入引脚(标准单元库中通常不为单元输出指定引脚电容)指定了引脚电容值。所以,设计中的每条线都有电容负载,是由该条线每个扇出的引脚电容负载之和,加上互连线的贡献构成的。出于简化的目的,在本章我们就不考虑互连线的贡献了,该内容将在之后的小节讨论。不考虑互连线寄生参数,图5-1中的内部线NET0的线电容,是由UAND1和UNOR2的输入引脚电容构成的。输出端O1具有UNOR2单元的引脚电容,加上该逻辑块输出上的任何电容性负载。输入I1和I2具有UAND1和UINV0单元的相应的引脚电容。通过这种抽象理解,图5-1中的逻辑设计可以被描述为图5-2所示的等效表达。
在这里插入图片描述
   正如在第3章中描述的,库单元包括了用于各种时序弧的NLDM。这种非线性模型用索引为输入转换时间和输出电容的二维表来表示。逻辑单元的输出转换时间也可以用二维表来描述,该表的索引是输入转换时间和线上的总输出电容。所以,如果在逻辑块(Logic Block)的输入指定了输入转换时间(或者转换率),就可以从库单元描述中得到输出转换时间与经过UINV0单元和UAND1单元(对于输入I1)的时序弧的延迟。对扇出单元使用同样的方法,就能得到经过单元UAND1(从NETO到O1)和单元UNOR2时序弧的转换时间和延迟。对于多输入单元(比如UAND1),不同的输入引脚可以带来不同的输出转换时间值。为扇出线选择哪个转换时间,取决于转换率合并的选项,这将在5.4节中讨论。用上面描述的方法,任何经过逻辑单元的廷迟,都可以基于输入引脚的转换时间和输出引脚上的电容来得到。
在这里插入图片描述


5.1.2带有互连线的延迟计算( Delay Calculation with Interconnect)

1.预布局时序(Pre-layout Timing)

   正如在第4章中描述的,在预布局阶段时序验证时,互连寄生参数是用线负载模型预估的。在很多情况下,在线负载模型中电阻的贡献被设为0。在这种情况下,线负载的贡献是纯电容性的,之前小节中描述过的延迟计算方法可以应用到设计中所有时序弧的廷迟计算。
   假如线负载模型包括了互连线电阻的影响,将用NLDM模型和总的线电容一起计算经过单元的延迟。因为互连线是电阻性的,从驱动单元的输出到扇出单元的输入就有额外的延迟。互连延迟的计算方法将在5.3节中介绍。


2.布局后时序(Post-layout Timing)

   金属走线的寄生参数将映射为驱动和终点单元间的RC网络。以图5-1中的例子为例,线的互连电阻如图5-3所示。图5-1中的1条内部线如NET0映射为图5-3中的多个子节点,所以,反相器UINVO的输出负载是由RC结构构成的。因为NLDM表的索引是输入转换时间和输出电容,在输出引脚存在电阻性负载意味着NLDM表不可以直接使用。下一节将介绍如何在有电阻性互连线的情况下使用NLDM表。
在这里插入图片描述


5.2使用有效电容的单元延迟(Cell Delay using Effective Capacitance)

   正如之前描述的,如果单元输出负载包括了互连线电阻,NLDM是不可以直接使用的。相应地,要采用一种“有效”电容法来处理电阻的影响。
   有效电容法试图创建1个单独的电容作为等效的负载,该负载可以让具有该负载的设计和初始设计在单元输出上具有相似的时序。这个等效的单独电容被称为有效电容(EffectiveCapacitance)
   图5-4a所示的1个单元在扇出有RC互连。这个RC互连由图5-4b所示的等效RC PI-网络表示。有效电容的概念就是要得到1个等效的输出电容Ceff(如图5-4c所示),该电容和具有RC负载的初始设计有相同的经过单元的延迟。通常来说,单元具有RC负载的输出波形和具有单独电容负载的输出波形是很不同的。
在这里插入图片描述


   图5-5展示了单元输出具有总电容,有效电容的代表波形,以及具有真实RC互连的波形。选取合适的有效电容Ceff使得图5-4c中的单元输出延迟(在转换时间中间点测得)和图5-4a中的延迟一致,如图5-5所示。
在这里插入图片描述


   使用PI等效模型表示时,有效电容可以表示为
在这里插入图片描述
   式中,C1是近端电容,C2是远端电容,见图5-4b。k值在0~1之间。在互连电阻可以忽略的情况下,有效电容和总电容近似相等。这可以用图5-4b中R设置为0来直接解释。类似地,如果互连电阻相当大,有效电容几乎相当于近端电容C1(见图5-4b)。这可以用R增大到极限变为无穷大(相当于电路开路)来解释。

有效电容是以下各项的函数:

  • 1)驱动单元the driving cell
  • 2)负载的特征,或者说从驱动单元看到的负载输入阻抗,the characteristics of the load or specifically the input impedance of the load as seen from the driving cell

   对于给定的互连线,1个具有弱输出驱动的单元比强输出驱动的单元看到更大的有效电容。所以,有效电容最小值是C1(对于高互连电阻或者强驱动单元),最大值就是总电容(当互连电阻可以忽略不计或者弱驱动单元)。注意,终点引脚转换时间晚于驱动单元的输出。近端电容充电快于远端电容,这一现象也被称为互连线的电阻屏蔽效应(Resistive Shielding Effect)。因为只有一部分远端电容能被驱动单元看到。

   不像在库文件中直接查表NLDM来计算延迟,延迟计算工具通过多次迭代的方式来得到有效电容。从算法上讲,第一步是得到从单元输出看到的真实RC负载的驱动点阻抗。真实RC负载的驱动点阻抗是用以下任何一种方法来计算的,比如二阶AWE(Second Order AWE,Asymptotic Waveform Evaluation,渐进波形估计法)或者Arnoldi算法(Arnoldi Algo-rithms)。当使用真实RC负载(基于驱动点阻抗)时,单元输出上的电荷转移(Charge Transfer)和使用有效电容作为负载的电荷转移相等。注意,电荷转移直到转换时间的中间点才相等。整个过程从有效电容的估算开始,然后迭代更新估算。在大多数实际情况中,有效电容值可以在几次迭代后收敛。

    所以,有效电容近似法是计算经过单元延迟的好模型。但是,通过有效电容得到的输出转换率和单元输出的真实波形是不一致的。在单元输出的波形,特别是波形的后半部分,是不能用有效电容近似法来表示的。注意,在典型的情况下,我们在意的波形并不是在单元的输出处,而是在互连线的终点处,也就是扇出单元的输入引脚。

   有很多种办法来计算延迟和互连线终点处的波形。在很多实现(Implementation)中,有效电容法也需要为驱动单元计算出1个等效戴维南电压源。戴维南源由具有串联电阻Rd的电压源构成,如图5-6所示。这些串联电阻Rd表示了单元输出级的下拉(上拉)电阻。

在这里插入图片描述
   本节描述了使用有效电容来计算通过带有RC互连线的驱动单元的延迟。有效电容及算法也提供了等效戴维南电压源模型,通过该模型可以得到通过RC互连线的时序。下面描述了获取经过互连线时序的过程。


5.3互连线延迟( Interconnect Delay)

   正如在第4章中描述的,线的互连寄生参数通常通过RC电路来表示。RC互连可以是预布局或者布局后。布局后的寄生互连参数可以包括相邻线间的耦合电容,基本延迟计算会把所有电容(包括耦合电容)当作接地电容对待。图5-7所示的例子展示了1条线以及它的驱动单元和扇出单元所具有的寄生参数。
在这里插入图片描述
   用有效电容法,分别得到通过驱动单元的延迟和通过互连线的延迟。有效电容法提供了通过驱动单元的延迟,以及单元输出端的等效戴维南源。通过互连线的延迟就是用该戴维南源分别计算的。互连部分有1个输入和与终点引脚一样多的输出。在互连线的输入使用等效戴维南电压源,到各个终点引脚的延迟就可以通过计算得到,见图5-8。

   对预布局分析来说,RC互连结构是由RC树类型决定的,而RC互连结构又决定了线延迟。3种类型的RC互连树表示方法已经在4.2节中详细介绍过了。选择哪种互连树通常已经在库中定义过了。通常,最坏情况(Worst case)慢速库会选择最坏情况树,因为该类型的树会提供最大的互连延迟。类似的,最佳情况树结构通常会被最佳情况快速工艺角(Best-case Fast Corner)选中,该类型树不包括任何从源引脚到终点引脚的电阻。因此,最佳情况树的互连延迟为零。典型情况树和最差情况树的互连延迟处理方式和布局后的RC互连处理方式是一样的。


1.Elmore延迟模型

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

  • 1)有唯一输入(源)节点;Has a single input (source) node.
  • 2)没有电阻回路(Resistive Loop);Does not have any resistive loops
  • 3)所有的电容都位于节点和电源地之间; All capacitances are between a node and ground.

    Elmore延迟可以认为是找到经过每部分的延迟,也就是R与下游电容的乘积,然后把从源头到终点的延迟求和。
在这里插入图片描述
在这里插入图片描述
   Elmore延迟在数学上相当于考虑脉冲响应(Impulse Response)的一阶矩(Frist Moment)。现在我们把Elmore延迟模型应用到1个简化的表示法上:1条具有Rwire和Cwire寄生参数的线段,加上负载电容Cload来建模线段远端的引脚电容。等效RC网络可以简化成PI网络模型或者T模型,参见图4-4和图4-3。任一种模型都有如下线延迟(基于Elmore延迟方程):
在这里插入图片描述
    这是因为Cload看到了充电路径上的全部线段的电阻,而在T模型表示法中,Cwire电容只看到了Rwire/2;在PI模型表示法中,Cwire/2看到了充电路径上全部的Rwire。上面的方法也可以扩展到更复杂的互连结构上。
   下面的例子对1条使用线负载模型和平衡RC树(以及最差情况RC树)的线使用Elmore延迟计算方法。
   使用平衡树模型,线的电阻和电容在线的分支上(假设扇出是N)平均分开。对于1个分支,具有引脚负载Cpin,使用平衡树计算得到的延迟是
在这里插入图片描述
    使用最差情况RC树模型,每个终点都要考虑整条线的电阻和电容。这里Cpin是所有扇出的总引脚电容。
在这里插入图片描述
   图5-9所示为一个设计实例。
在这里插入图片描述

   如果我们使用最差情况树模型来计算线N1的延迟,我们得到:
在这里插入图片描述
   如果我们使用平衡树模型,我们得到线N1的2个分支的延迟:
在这里插入图片描述


2.高阶互连线延迟估计(Higher Order Interconnect Delay Estimation)

   正如上面描述的,Elmore延迟是脉冲响应(Impulse Response)的一阶矩(Frist Moment)。AWE(Asymptotic Waveform Evaluation,渐进波形估计法),Arnoldi算法或者其他算法匹配响应的更高阶矩。通过考虑更高阶矩估计法,可以计算得到更高精度的互连线延迟。


3.整个芯片延迟计算(Full Chip Delay Calculation)

   到现在为止,本章介绍了单元和单元输出互连线上的延迟计算。所以,对于给定的单元输入上的转换时间,可以计算得到通过单元和该单元输出互连线上的延迟。互连线上远端(终点)上的转换时间又是下一级的输入,这一过程在整个芯片上不断重复。整个设计的每个时序弧的延迟就都可以通过计算得到了。


5.4 转换率融合(Slew Merging)

   如果多个转换率到达了同一个点会发生什么?比如多输入的单元,或者多驱动的线?这样的点被称为转换率融合点(Slew Merge Point)。哪一个转换率会被选中,从这个融合点继续传播?思考图5-10所示的2输入单元。
在这里插入图片描述

   由引脚A上信号改变引起的引脚Z上的转换率,到达的较早但是上升的缓慢(慢转换率);由引脚B上信号改变引起的引脚Z上的转换率,到达的较晚但是上升的迅速(快转换率)。在转换率融合点,比如引脚Z,该选哪个转换率来传播?传播哪一个都可能是正确的,这取决于进行的是哪种时序分析(最大还是最小),下面将进一步介绍。
   在进行最大时序路径分析时有两种可能性:

  • 1)最差转换率传播(Worst Slew Propagation):这种模式选择融合点处最差转换率来传播。也就是图5-10a中的转换率。对于经过引脚A→Z的时序路径,这个选择是准确的,但这对于经过B→Z的时序路径,这个选择就悲观了。
  • 2)最差到达时间传播(Worst Arrival Propagation):这种模式选择融合点处最差的到达时间来传播。这对应着图5-10b中的转换率。选择这个转换率对经过B–>Z的时序路径是准确的,但对于经过A–>Z的时序路径,这个选择就乐观了。

   类似地,进行最小时序分析时也有两种可能性:

  • 1)最佳转换率传播(Best Slew Propagation):这种模式选择融合点处最佳转换率来传播。也就是图5-10b中的转换率。对于经过引脚B–>Z的时序路径,这个选择是准确的,但这对于经过A–>Z的任何时序路径来说都小了。对于经过A–>Z的路径,路径延迟比实际值小,所以对于最小路径分析来说是悲观的。
  • 2)最佳到达时间传播(Best Arrival Propagation):这种模式选择融合点处最佳到达时间来传播。这对应着图5-10a中的转换率。选择这个转换率对经过引脚A–>Z的时序路径是准确的,但对于经过引脚B–>Z的任何时序路径来说都大了。对于经过B–>Z的路径,路径延迟比实际值大,所以对于最小路径分析来说是乐观的。

   工程师可能通过生成SDF的方式,在静态时序分析环境之外进行延迟计算。在这种情况下,延迟计算工具通常会使用最差转换率传播。得到的SDF只适合最大路径分析,对于最小路径分析可能就太乐观了。
   大部分静态时序分析工具会使用最差和最佳转换率传播作为默认方式,因为这是保守的分析方式。但是,当分析一条指定的路径时,可以使用准确的转换率传播方式。准确的转换率传播可能要求在时序分析工具中开启1个选项。所以,了解静态时序分析工具使用了哪种转换率传播方式是很重要的,也要明白什么情况下是过于悲观的。


5.5不同的转换率阈值(Different Slew Thresholds)

   通常,在表征(Characterization)单元时,库文件会指定转换率(转换时间)的阈值。问题是,当I个单元具有一组转换率阈值(Slew Threshold),驱动另一些具有不同转换率阈值设定的单元,会发生什么?思考图5-11所示的例子,1个单元用20-80的转换率阈值表征,驱动着2个扇出单元;1个是10-90转换率阈值,另1个是30~70转换率阈值且转换率减免系数(Slew Derate)为0.5。
在这里插入图片描述


   在单元库中,单元U1的转换率设置如下:
在这里插入图片描述


   上面只列出了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减免(Derated)后才得到的。这个例子说明了扇出单元输入上的转换率是如何计算的,是基于转换波形和扇出单元的转换率阈值设定。

    在设计预布局阶段,可能没有考虑到互连电阻,可以用以下方式来计算具有不同阈值的线的转换率。例如,10-90百分比转换率和20-80百分比转换率的关系如下:
在这里插入图片描述
   所以,10-90百分比测量点下,阈值500ps转换率相当于20-80百分比测量点下阈值为(500psx0.6)/0.8=375ps。类似的,20-80百分比测量点下阈值600ps相当于10-90百分比测量点下阈值(600ps×0.8)/0.6=800ps。


5.6不同的电压域(Different Voltage Domains)

    一个典型的设计可能为芯片上不同的部分使用不同的供电电压。在这种情况下,在不同电压域的接口上要使用电平转换单元(Level Shifting Cells)。1个电平转换单元可以在输入端使用1个电压域,并在另一个电压域提供输出。举例来说,1个标准单元的输入可以是1.2V,而在输出可以是降压的电源供电,比如0.9V,如图5-12所示的例子。
在这里插入图片描述
   注意延迟是通过电压50%的阈值点来计算的。对接口单元来说,这个阈值点对于不同引脚是具有不同电压的。


5.7路径延迟计算(Path Delay Calculation)

   一旦有了所有时序弧的延迟,经过设计中所有单元的时序就可以用时序图(Timing Graph)来表示。通过组合逻辑单元的时序可以用从输入到输出的时序弧表示。类似的,互连时序可以用相应的从源头到每个终点(Sink)分别的时序弧来表示。一旦整个设计用相应的时序弧来反标,计算路径延迟就变成了把整条路径上所有线和单元的时序弧相加。


5.7.1组合逻辑路径计算

   思考图5-13所示的3个反相器串联的情况。考虑从线N0到N3的路径,我们要考虑上升沿和下降沿的路径。假设在线N0有个上升沿。
在这里插入图片描述
   第1个反相器的输入端的转换时间(或者转换率)可能被给定了,如果没有被给定,那么就假设为0(对应为理想情况)。在输入UINVa/A的转换时间是由之前小节中指定的互连延迟模型得到。同样的延迟模型也用来得到线N0的延迟Tn0。

   输出UINVa/Z的有效电容是基于UINVa输出的RC负载得到的。输入UINVa/A的转换时间和输出UINVa/Z的等效有效负载被用来得到单元输出下降延迟。
   在引脚UINVa/Z的等效戴维南源模型(Equivalent Thevenin oure Model)被用来通过互连延迟模型来确定引脚UINVb/A的转换时间。互连延迟模型也被用来计算线N1上的迟Tn1。
    一旦输入UINVb/A的转换时间是已知的,计算经过UINVb延迟的过程是类似的。UIN-Vb/Z的RC互连值和UINVc/A的引脚电容被用来计算线N2的有效负载。UINVb/A的转换时间被用来计算经过反相器UINVb的上升延迟,以此类推。
   最后一级的负载是由任何明确指定的负载值决定的,如果没有指定,那么将只有线N3的线负载。上面的分析都假设了在线N0的上升沿。类似的分析也可以假定线N0的下降沿再进行。所以,在这个简单的例子里,有两条时序路径具有以下延迟:

在这里插入图片描述
   通常,通过互连线的上升和下降延迟是不一样,因为驱动单元输出的戴维南源模型(Thevenin Source Model)不一样。


5.7.2到触发器的路径(Path to a Flip-flop)

1.输入到触发器路径(Input to Flip-flop Path)

   考虑从输入SDT到触发器UFF1的时序路径,如图5-14所示。
在这里插入图片描述
   我们需要考虑上升和下降沿路径。当输入SDT是上升沿,数据路径延迟如下:
在这里插入图片描述

   类似地,当输入SDT是下降沿,数据路径延迟如下:
在这里插入图片描述

   输入MCLK的上升沿捕获时钟路径延迟如下:

在这里插入图片描述


2.触发器到触发器路径(Flip-flop to Flip-flop Path)

   2个触发器之间的数据路径和对应时钟路径如图5-15所示。
在这里插入图片描述
   UFF0/Q上升沿的数据路径延迟:
在这里插入图片描述

   输入PCLK上升沿的发射(Launch)时钟路径延迟:
在这里插入图片描述
   输入PCLK上升沿的捕获时钟路径延迟:
在这里插入图片描述
   注意考虑单元的单调性(Unateness),因为经过单元的沿方向可能改变。


5.7.3多路径(Multiple Paths)

   在任意2个点间,可能有很多条路径。最长路径就是用时最长的路径,也被称为最差路径(Worst Path),晚路径(Late Path),或者最大路径(Max Path) 。最短路径就是用时最短的路径,也被称为最佳路径(Best Path),早路径(Early Path),或者最小路径(MinPath)

   注意图5-16中的逻辑,以及穿过时序弧的延迟。2个触发器间最长的路径是通过单元UBUF1、UNOR2,以及UNAND3。2个触发器间最短路径是通过单元UNAND3。
在这里插入图片描述


5.8裕量计算( Slack Calculation)

   裕量(Slack)是信号的需要到达时间(Required Time)和实际到达时间之间的差值。在图5-17中,要求信号为了满足建立时间(Setup),必须在时间7ns时保持稳定。但是信号在1ns就开始稳定。所以,裕量是(7ns-1ns)=6ns。

在这里插入图片描述
    假设数据需要到达时间是从捕获触发器的建立时间得到的:

在这里插入图片描述

   类似的,如果2个信号之间对偏移(Skew)的要求为100ps,而测量的偏移为60ps,那偏移的裕量就为(100ps-60ps)=40ps。

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA中的静态时序分析和动态时序分析是两种不同的时序分析方法,用于评估设计的时序性能和稳定性。 静态时序分析是一种在设计编译阶段进行的分析方法。它基于设计元数据和时序约束,通过计算信号路径的传播延迟和时序约束之间的差异来评估设计的时序性能。静态时序分析可以提前检测到潜在的时序问题,如setup和hold错误,并提供相关的报告和警告信息。它通常用于优化设计,通过调整布局布线、逻辑重划等方式来改善时序性能。 动态时序分析是一种在设计完成后、在实际运行或仿真过程中进行的分析方法。它通过模拟或测试电路的实际运行情况,考虑信号传播延迟、时钟抖动、噪声等因素,评估设计在实际环境中的时序性能。动态时序分析可以更准确地模拟设计的实际行为,并检测到一些静态时序分析无法捕捉到的问题。 区别总结如下: 1. 时间点:静态时序分析在设计编译阶段进行,动态时序分析在设计完成后进行。 2. 分析对象:静态时序分析基于设计元数据和时序约束,动态时序分析基于实际运行或仿真过程中的电路行为。 3. 检测能力:静态时序分析可以提前检测到潜在的时序问题,如setup和hold错误,动态时序分析可以检测到静态分析无法捕捉到的问题。 4. 优化方法:静态时序分析通过调整布局布线、逻辑重划等方式来改善时序性能,动态时序分析可以帮助验证设计在实际环境中的可靠性和稳定性。 综上所述,静态时序分析和动态时序分析是两种不同的时序分析方法,用于评估设计的时序性能和稳定性,各有其优缺点和应用场景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值