静态时序分析 第四章 互连寄生参数

互连寄生参数(Interconnect Parasitics)


   本章概述了各种处理和表示互连寄生参数的技术,这些技术用来验证设计的时序。在数字设计中,一条线段(Wire)把标准单元或块(Block)的引脚连接起来,被称为线(Net)。一条线(Net)通常只有一个驱动,但是它可以驱动多个扇出单元或块(Block)。在物理实现(Physical Implementation)之后,这条线(Net)可能经过芯片上的多层金属。不同的金属层可能有不同的电阻和电容值。对于等效电气表示,一条线通常分解为不同的片段(Segment),每个片段用等效寄生参数来表示。我们把互连走线(Interconnect Trace)当成片段的同义词,也就是说,它是线在特定金属层的一部分。


4.1互连线电阻、电感和电容( RLC for Interconnect)

   在设计实现中,互连电阻来自处于各层金属和过孔(Via)中的互连走线(Interconnect Trace)。图4-1中的例子展示了线穿过各种金属层和过孔。所以,互连电阻可以被认为是单元输出引脚和扇出单元输入引脚之间的电阻。
在这里插入图片描述
   互连电容也来自于金属走线,是由接地电容(Grounded Capacitance)和相邻信号线间的电容构成的。

   电感是由电流环路带来的。通常情况下,电感的影响在芯片内可以忽略不计,仅在封装和板级分析时考虑。在芯片级设计中,电流环路窄且短,这意味着电流回路是经过电源或者地信号,而电源和地信号走线距离很近。在大多数情况下,时序分析不考虑片上电感。任何对片上电感分析的进一步描述都超出了本书的范围。接下来我们将分析互连电阻和互连电容的表示方法。
   互连走线任一部分的电阻和电容(RC)被理想地表示为1个分布式RC树(Distributed RC Tree),如图4-2所示。在该图中,RC树的总电阻和电容分别是Rt和Ct,分别等于Rp * L 和 Cp * L,其中Rp和Cp是该段走线单位长度的互连电阻和电容,L是走线长度。Rp和Cp的值通常是从各种配置后提取的寄生参数中获得,且由ASIC代工厂提供。
在这里插入图片描述
    RC互连可以用各种简单模型来表示。下面将介绍几种简单模型。

1.T模型

   在T模型中,总的电容Ct,建模为连接在电阻树(Resistive Tree)的中间。总的电阻Rt被分为了两部分(每部分都是Rt/2),Ct连接在电阻树的中心点,如图4-3所示。
在这里插入图片描述


2.Pi模型

在图4-4所示的Pi模型中,总的电容Ct分成了两部分(每部分都是Ct/2),且连接到了电阻的两端。
在这里插入图片描述
   更精确的表示分布式RC树是通过把Rt和Ct分割成多个部分。如果分为N个部分,则每个中间部分的电阻和电容值分别为Rt/N和Ct/N。两端部分可以用T模型或者Pi模型的概念来建模。图4-5展示了用T模型建模两端的N个部分RC树,图4-6展示了用Pi模型建模两端的N个部分RC树。
   通过概述RC互连的建模,我们描述了寄生互连是如何使用的,在预布局(Pre-Layout)阶段通过估算,在布局后(Post-Layout)通过详细的提取。下一章描述预布局阶段寄生互连的建模。
在这里插入图片描述


4.2线负载模型( Wireload Models)

   在布图规划(Floorplan)布局(Layout)之前,线负载模型可以用来估计电容、电阻和互连线的面积开销。可以用线负载模型(Wireload Model)基于扇出的数量估计线的长度。线负载模型依赖于块(Block)的面积,不同面积的设计可以采用不同的线负载模型。线负载模型也可以把预估的线长映射为电阻、电容以及由于走线产生的面积开销。
   块(block)内的平均线长和块的大小密切相关,块尺寸增加,平均线长相应增加。图4-7表示对于不同的面积(芯片或者块的尺寸),通常用不同的线负载模型来决定寄生参数。所以,图中描述了较小尺寸的块有较小的电容。
在这里插入图片描述


   下面是一个线负载模型的例子
在这里插入图片描述
   Resistance是指每单位长度互连线的电阻,capacitance是指每单位长度互连线的电容,area是指每单位长度互连线的面积开销。Slope是在数据点超出扇出长度表(Fan-out LengthTable)时所使用的外推斜率。
   线负载模型说明了线长是如何作为扇出的函数被描述的。上面的例子在图4-8中有描述。对于任何没有明确在表中列出的扇出值,通过线性外推法用指定斜率计算得到互连长度。比如,8扇出的互连长度如图4-8所示

在这里插入图片描述
在这里插入图片描述


4.2.1互连树(Interconnect Trees)

   一旦预估了电阻和电容,我们可以说预布局阶段互连线的Rwire和Cwire就确定了,下一个问题就是互连线的结构。互连线RC结构相对于驱动单元是如何分布的?这很重要,因为从1个驱动引脚到负载引脚的互连延迟依赖于互连线的结构。通常来说,互连延迟依赖于路径上的互连电阻和互连电容。因此,线的假想拓扑结构不同,延迟就不同。
   在预布局阶段的估计,互连RC树可以用以下3种方式来表示(如图4-9所示)。注意,总互连长度在3种情况下都是一样的。(所以预估电阻和电容也是一致的)。

  • 1)最佳情况树(Best-Case Tree):在最佳情况树中,假设终点(负载)引脚在物理位置上和驱动是紧邻的。所以,到终点引脚是没有线电阻的。所有其他扇出引脚的线电容和引脚电容,依然作为驱动引脚的负载起作用。
  • 2)平衡树(Balanced tree):在这种情况下,假设每个终点引脚都分别处在互连线的一部分上。每条到终点的线路都有等分的线电阻和线电容。
  • 3)最差情况树(Worst-Case Tree):在这种情况下,假设所有的终点引脚都聚集在线的最远端。所以每个终点引脚都看到了总的线电阻和总的线电容。
    在这里插入图片描述

4.2.2指定线负载模型(Specifying Wireload Models)

在这里插入图片描述
   当线穿过层次边界(Hierarchical Boundary)时,可以基于不同的线负载模式(Wireload Mode),在每个层次边界使用不同的线负载模型。这些线负载模式有如下三种。

  • i.top
  • ii.enclosed
  • iii.segmented

   线负载模式可以用命令set_wire_load_mode来指定,如下所示:
在这里插入图片描述
   在top线负载模式下,所有在这个层次的线继承顶层的线负载模型,也就是说,所有在低层次指定的线负载模型都会被忽略。所以,顶层线负载模型有最高优先级。如图4-10中所示的例子,在B1块中指定的线负载模型wlm_cons比在B2、B3和B4块中指定的线负载模型优先级高。
在这里插入图片描述


   在enclosed线负载模式下,如果块完全包含了线,那该块的线负载模型将应用到整条线上。如图4-11中所示的例子,线NETQ完整包含在B2块中,所以B2块的线负载模型wlm、light将应用到整条线上。其他完整包含在B3块的线将应用wlm_aggr线负载模型,完整包含在B5块的线将应用wlm_typ线负载模型。
在这里插入图片描述


   在segmented线负载模式下,线的每个片段将应用包含这个片段的块的线负载模型。线的每部分都使用该级别的恰当的线负载模型。在图4-12所示的例子中,线NETQ在3个块中都有片段。该线在B3块中的片段使用wlm_aggr线负载模型,该线在B4块中的片段使用wlm_typ线负载模型,该线在B2块中的片段使用wlm_light线负载模型。
在这里插入图片描述


   通常线负载模型的选择是基于块的芯片面积。但是模型的选择可以由客户自行判断来更改。比如,可以为面积为0-400的块选择wlm_aggr线负载模型,为面积为400~1000的块选择wlm_typ线负载模型,为面积为1000或更高的块选择wlm_cons线负载模型。线负载模型通常定义在单元库,但是用户也可以自定义线负载模型。1个默认的线负载模型可以选择定义在单元库中,如下所示:
在这里插入图片描述


   1个线负载模型选择组(Wireload Selection Group),是基于面积来选择线负载模型的,定义在单元库中。例子如下:
在这里插入图片描述
1个单元库可以包含多个这样的选择组(Selection Group)。在STA中具体使用哪个选择组,可以用以下命令来指定:
在这里插入图片描述
本节描述了在物理实现之前,也就是在预布局阶段,预估寄生参数的建模。下节将介绍从布局中提取的寄生参数的表示方法。


4.3提取的寄生参数的表示方法( Representation of Extracted Parasitics)

从布局(Layout)中提取寄生参数,可以用以下3种格式来描述:

  • 1)详细标准寄生参数格式(Detailed Standard Parasitic Format,DSPF);
  • 2)精简标准寄生参数格式(Reduced Standard Parasitic Format,RSPF);
  • 3)标准寄生参数交换格式(Standard Parasitic Exchange Format,SPEF)。

   一些工具还提供了专用的二进制方法来表示寄生参数,比如SBPF(Synopsys Binary parasitic format,新思二进制寄生参数格式);这帮助减小文件体积,加快工具读取寄生参数的速度。下面简要介绍上面提到的3种格式。


4.3.1详细标准寄生参数格式(Detailed Standard Parasitic Format)

    在DSPF中,详细的寄生参数用SPICE格式(可以被电路仿真软件(比如SPICE)读取的格式。可通过参考文献[NAG75]或者任何关于模拟集成电路设计或者仿真方面的书,来获取更详细的信息)表示。SPICE Comment 声明用来表明单元的类型、单元引脚及其电容。电阻和电容值用标准的SPICE语法,单元的实例也包括在这种格式里。该格式的优点是,DSPF文件可以作为SPICE仿真器本身的输入。但是,该格式的缺点是DSPF语法包含太多细节,结果冗长,这导致1个典型块的DSPF文件会非常大,所以,该格式在实践中很少被使用,除非是计算1组较少的线。
   这里有个DSPF文件的例子,描述了从主输入IN缓冲器BUF的输入引脚A的连线以及另一条线从BUF的输出引脚OUT到主输出引脚OUT。
在这里插入图片描述
在这里插入图片描述


4.3.2精简标准寄生参数格式(Reduced Standard Parasitic Format)

   在RSPF中,寄生参数用精简格式表示。精简格式包括电压源和1个可控的电流源。RSPF也是SPICE文件,因为它可以被读入类SPICE的仿真器中。RSPF要求详细的寄生参数被精简后映射到精简格式。所以这就是RSPF的一个缺点,因为寄生参数提取过程的重点通常集中在提取的精度,而不是RSPF的紧凑格式带来的减少量。RSPF的另一个局限是该格式不能表示双向的信号流动。
   下面是一个RSPF文件的例子。初始的设计和等效的表示如图4-13所示。
在这里插入图片描述


在这里插入图片描述


该文件有以下特性:

  • 1)引脚到引脚的互连延迟建模为:每个扇出单元输入都有1个0.1pF的电容(在上面的例子中是C3和C4)以及1个电阻(R2和R3)。选取电阻值使RC延迟对应子引脚到引脚的互连延迟。驱动单元输出上的PI型片段负载建模了经过该单元的正确单元延迟。

  • 2)在门输入端的RC元件由理想电压源(E1和E2)驱动,该电压和驱动门的输出端电压相等。


4.3.3标准寄生参数交换格式( Standard Parasitic Exchange Format)

SPEF是一种表示详细寄生参数的紧凑格式。在下面的例子中,1条线具有2个扇出。
在这里插入图片描述
   寄生参数R和C的单位在SPEF文件的开头就指定了。更详细的关于SPEF的描述见附录C。由于该种表示方法的简洁性和完备性,SPEF是在设计中最常用到的格式。


4.4 耦合电容的表示方法( Representing Coupling Capacitances)

   上一节说明了将线电容表示为接地(Grounded)电容的情况。因为在纳米工艺技术中绝大部分的电容是侧壁电容(Sidewall Capacitance),正确地表示这些电容的方式是信号和信号之间的耦合电容。
   在DSPF中,表示耦合电容是在初始的DSPF标准上增加(Add-On),所以它不是唯一的。耦合电容在两组耦合线之间是重复的。这意味着DSPF不能直接读入SPICE,因为两组耦合线的耦合电容是重复的。一些工具在生成DSPF时通过包括两组耦合线一半的耦合电容来解决这一矛盾。
   RSPF是一种精简的表达方式,所以不适合表示耦合电容。
   SPEF标准用统一且清晰的方式来处理耦合电容,所以当需要考虑串扰时序时,SPEF就成为了合理的选择。另外,SEF在文件大小方面是一种紧凑的格式,无论有没有耦合电容都可用来表示寄生参数。
   如附录C中描述的,一种控制文件大小的机制就是在文件的开头创建名称目录。**很多寄生参数提取工具都在SEF文件的开头指定了线的名称目录(映射线名称和编号),以此来避免重复冗长的线名字。这一方法能显著减少文件体积。**在附录C中,可以看到名称目录的例子。


4.5层次化设计方法(Hierarchical Methodology)

   大型复杂设计在物理实现的过程中,为了寄生参数提取和时序验证,通常需要层次化设计。在这些情况下,1个块(Block)的寄生参数可以在块这个级别提取,并在更高层级使用。
   在时序验证时,从布局中提取寄生参数的块(Block)可以和布局没有完成的块一起使用。在这种情况下,布局完成的块会从布局中提取寄生参数,而预布局的块会用线负载模型预估寄生参数。
   在层次化流程中,顶层布局完成了,但是块(Block)依然用黑箱(Black Box)表示(预布局阶段),低级别的块可以使用基于线负载模型的寄生参数预估,与此同时顶层可以从布局中提取寄生参数。一且块的布局完成了,顶层和块的布局提取寄生参数就可以组合作一起。

布局中的块复用(Block Replicated in Layout)

   如果布局中1个块被多次复用,其中1个实例化实体的寄生参数提取可以用在所有实例化实体上。这要求该块的布局在各种实例化的方面都是完全一致的。比如,从块内的走线来看,它的布局环境是完全相同的。这意味着块级别的走线不会和任何块外的走线发生电容耦合。要达到这一要求,常见的方法是顶层不允许在该块上走线,该线在块的边界附近有适当的间距和屏蔽(Shielding)


4.6减少关键线的寄生参数( Reducing Parasitics for Critical Nets)

    本节简要介绍了一些减少关键线(Critical Nets)上寄生参数影响的常见技术。


1.减少互连电阻

    对于关键线,保持低转换率(或者转换时间)很重要,这需要减少互连电阻。通常,有两种方法来减少电阻:

  • 1)宽走线(Wide Trace):让走线比最小宽度(Minimum Width)更宽能减少互连电阻,且不会带来寄生电容的显著增加。所以,整体的RC互连延迟以及转换时间就都减小了。
  • 2)在高层(宽)金属走线:高层金属通常有更低的电阻率,可以用来走关键线。低互连电阻减少互连延迟以及终点引脚的转换时间。

2.增加走线间距

   增加走线之间的间距可以减少走线的耦合电容(以及总电容)。大的耦合电容会增加串扰,而避免串扰是长距离相邻走线要面临的重要问题。


3.关联走线的寄生参数

   在很多情况下,1组走线需要时序匹配,比如,高速DDR接口的1B通道内的数据信号。因为1B通道内的所有信号都有同样的寄生参数是非常重要的,所有的信号都要在同一层金属走线。**比如,当金属层M2和M3有同样的平均偏差和统计偏差,但偏差是独立的,所以这两层金属的寄生参数偏差是相互无关的。**所以,如果关键信号的时序一致很重要,那走线在每层金属上都要完全一致。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值