延迟计算
Posted KuoGavin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了延迟计算相关的知识,希望对你有一定的参考价值。
文章目录
本章主要介绍对于基于单元(cell-based)的设计布局前后时间验证中的延迟计算(delay calculation)。前面章节聚焦于互连线和单元库的建模,单元和互连线的建模技术用于获取设计的时序。
5.1 概述(Overview)
5.1.1 延迟计算基础(Delay Calculation Basics)
一个典型的设计由多种组合逻辑和时序逻辑单元组成。这里使用下图的逻辑框架来描述时延计算的概念。
单元在库中的描述指定了其输入引脚的其引脚电容值。因此,设计中的每个网络都有容性负载,该负载是该网络每个扇出的引脚负载电容加上互连线的寄生电容之和。为了简化,该部分中不考虑互连线的电容负载,在之后部分再考虑。不考虑互联寄生,上图中内部网络 N E T 0 NET0 NET0的网络负载是由单元 U A N D 1 UAND1 UAND1和 U N O R 2 UNOR2 UNOR2输入引脚电容组成。输出引脚 O 1 O1 O1的负载是单元 U N O R 2 UNOR2 UNOR2加上所有输出逻辑块的电容负载。输入引脚 I 1 I1 I1和 I 2 I2 I2的引脚电容分别对应于 U A N D 1 UAND1 UAND1和 U I N V 0 UINV0 UINV0单元。基于上述抽象,上图中的逻辑设计可用下图进行等价表示。
如第三章所述,单元库包含了多种时序弧的NLDM时序模型(3.2.2 非线性时序模型(non-linear timing model))。非线性模型用输入过渡时间和输出电容的二维表格来表示。逻辑单元的输出过渡时间同样用网络的输入过渡时间和总输出负载/电容组成的二维表格来描述。因此,如果输入过渡时间(或压摆率)由逻辑块的输入指定,通过 U I N V 0 UINV0 UINV0和 U A N D 1 UAND1 UAND1单元的时序弧的输出过渡时间和延迟可以从单元库描述中得到。以此类推,可以得到通过 U A N D 1 UAND1 UAND1单元(从 N E T 0 NET0 NET0到 O 1 O1 O1)和通过 U N O R 2 UNOR2 UNOR2单元的其他时序弧的过渡时间和延迟。对于多输入单元(如 U A N D 1 UAND1 UAND1),不同的输入引脚可以提供不同的输出过渡时间值。对扇出网络过渡时间的选择取决于压摆合并(slew merge)选项,这将在5.4节中进行介绍。使用上述方法,可以基于输入引脚上的过渡时间和输出引脚上的电容来获得通过任何逻辑单元的延迟。
5.1.2 带互连线的延迟计算(Delay Calculation with Interconnect)
预布局/布局前时序
正如第四章中所述,互联寄生再预布局时序验证中使用线负载模型来进行预估。在多数情况下,线负载模型的电阻设置为 0 0 0。在这样的场景中,线负载的寄生只有电容性的,且对于设计中所有的时序弧前面部分所描述的时延计算方法同样适用。
如果线负载模型考虑了互连电阻的影响,则将 N L D M NLDM NLDM模型和总网络电容一起使用,以计算通过单元的延迟。由于互连线是电阻性的,因此从驱动单元(driver cell)的输出到扇出单元的输入引脚会有额外的延迟。互连线的延迟计算过程将在5.3节中介绍。
布局后时序
金属走线的寄生参数将被映射为驱动单元和目标单元之间的 R C RC RC网络。以图5-1中实例为例,网络的互连电阻如下图所示。内部网络(图5-1中的 N E T 0 NET0 NET0)映射到多个子节点,如下图。因此,反相器单元 U I N V 0 UINV0 UINV0的输出负载由 R C RC RC结构构成。由于 N L D M NLDM NLDM表格仅针对输入过渡时间和输出负载电容而言,因此输出引脚上的电阻性负载意味着 N L D M NLDM NLDM表格并不能直接应用。接下来介绍如何将 N L D M NLDM NLDM表格模型和互联电阻结合使用。
5.2 使用有效电容的单元延迟(Cell Delay using Effective Capacitance)
如上所述,当单元的输出负载包含互连线电阻时 N L D M NLDM NLDM模型是不能够直接使用的。因此,"有效”电容法被用来应对电阻效应。
有效电容法试图找到一个可以用作等效负载的电容,以使原始设计与具有等效电容负载的设计在单元输出的时序方面表现一致。这个等效电容被称为有效电容(effective capacitance)。
下图(a)为在扇出处有 R C RC RC互连的单元,该 R C RC RC互连可由等效的 π \\pi π模型(4.1 互连RLC(RLC for Interconnect))表示,如下图(b)所示。有效电容的概念是为了获得等效的输出电容 C e f f C_eff Ceff,如下图(c)所示,此时通过单元的延迟与具有 R C RC RC互连负载的原始设计相同。通常,具有 R C RC RC互连负载的单元输出波形与具有单个电容性负载的单元输出波形非常不同。
下图展示了具有总电容,有效电容的单元的典型输出波形和和实际 R C RC RC互连的波形。选择准确的有效电容 C e f f C_eff Ceff应该可以使得上图(c)中单元输出处的延迟(在过渡波形的中点测得)与上图(a)中的延迟相同,如下图所示。
根据 π \\pi π等价表示,等价电容可以表示为:
C e f f = C 1 + k ∗ C 2 , 0 ≤ k ≤ 1 C_eff = C_1 + k * C_2, \\; 0 \\le k \\le 1 Ceff=C1+k∗C2,0≤k≤1
C 1 C_1 C1表示近端电容, C 2 C_2 C2表示远端电容,如图5-4(b)中所示。 k k k的值介于 0 0 0和 1 1 1之间。在互连电阻可忽略的场景下,有效电容几乎等于总电容。这可用图5-4(b)中将 R w i r e R_wire Rwire设置为 0 0 0来直接解释。类似的,如果互连电阻相对较大,等效电容几乎等于近端电容 C 1 C_1 C1(图5-4(b))。这可用将 R R R增加至限制的情况,将 R R R变为无穷大(本质是断路电路)。
有效电容 C e f f C_eff Ceff是以下各项的函数:
- 驱动单元(the driving cell);
- 负载的特性(the characteristics of the load),尤其是驱动单元负载的输入阻抗(input impedance);
对于给定的互连线,一个具有驱动输出较弱的单元相对于具有驱动输出较强的单元将会有更大的等效电阻。因此,有效电容将在最小值 C 1 C_1 C1(对于高互连电阻或强驱动单元)和最大值总电容 C t o t a l = C 1 + C 2 C_total=C_1+C_2 Ctotal=C1+C2(互联电阻可忽略或弱驱动单元)之间。注意,目标引脚的转换要晚于驱动单元的输出。近端电容充电速度比远端电容快的现象也被称为互连线的电阻屏蔽效应(resistive shielding effect),因为驱动单元只能看到一部分远端电容。
与通过库中的 N L D M NLDM NLDM模型直接查找来计算延迟不同,延迟计算工具通过迭代过程获得有效电容。就算法而言,第一步是获取单元输出端看到的实际 R C RC RC负载的驱动点阻抗,可以使用二阶AWE或Arnoldi算法等方法计算实际 R C RC RC负载的驱动点阻抗。计算有效电容的下一步是使两种情况下直到过渡波形中点为止传输的电荷量相等:使用实际 R C RC RC负载时(基于驱动点阻抗)在单元输出处传输的电荷与使用有效电容作为负载时的电荷传输量相匹配,请注意,电荷传输匹配仅到过渡波形的中点为止。该过程从有效电容的估算值开始,然后迭代更新估算值。在大多数实际情况下,有效电容值会在少量次数的迭代中收敛。
因此,有效电容近似值是计算通过单元的延迟的优秀模型。但是,使用有效电容法获得的输出压摆(slew)与单元输出处的实际波形并不一致。有效电容近似值不能代表单元输出处的波形,尤其是波形的后半部分。请注意,在典型情况下,需要关注的波形并不是在单元输出处,而是在互连线的终点处,也即扇出单元的输入引脚处。
有多种方法可以计算互连线终点处的延迟和波形。在许多实现(implementation)方法中,有效电容的计算过程还会计算驱动单元的等效戴维宁(Thevenin)电压源。戴维宁电压源由具有串联电阻 R d R_d Rd的电压源组成,如下图所示。串联电阻 R d R_d Rd对应于单元输出级的下拉电阻(或上拉电阻)。
本节介绍了使用有效电容替代 R C RC RC互连来计算通过驱动单元的延迟。有效电容的计算还提供了等效的戴维宁电压源模型,然后将其用于获取通过 R C RC RC互连的时序。接下来将具体介绍获取通过RC互连时序信息的过程。
5.3 互连延迟(Interconnect Delay)
如第四章中所述,网络的互连寄生通常使用一个 R C RC RC电路来表示。 R C RC RC互连可以是布局前也可以是布局后。对于布局后互连寄生可以包括邻接网络的耦合,基本延迟计算将所有的电容(包括耦合电容)视为接地电容。一个具有驱动单元和扇出单元的网络其寄生参数示例如下图所示。
使用有效电容法,可以分别获得通过驱动单元和通过互连线的延迟。使用有效电容法可获得通过驱动单元的延迟,并在单元的输出端提供等效的戴维宁电压源,然后使用戴维宁电压源分别计算通过互连线的延迟。互连线部分具有一个输入和与目标引脚一样多的输出。在互连线输入端使用等效戴维宁电压源,计算到每个目标引脚的延迟,如图5-6所示。
在布局前进行分析时, R C RC RC互连结构由 R C RC RC树类型决定,而RC互连结构又决定了互连线延迟。4.2节(4.2.1 互连树(Interconnect Trees))中已详细介绍了三种类型的 R C RC RC互连树表示形式,所选的RC树类型通常在库中定义。通常,最坏情况(worst-case)的慢速库会选择最坏情况的 R C RC RC树,因为该类型的树提供了最大的互连线延迟。类似地,最佳情况(best-case)的 R C RC RC树结构中不包括从源引脚到目标引脚的任何电阻,通常在最佳情况的快速工艺角时被选择。因此,最佳情况 R C RC RC树的互连延迟等于零。典型(typical)情况 R C RC RC树和最坏情况 R C RC RC树的互连延迟的处理方式与布局后 R C RC RC互连一样。
Elomore延迟模型
Elmore延迟模型(如图5-8所示)适用于RC树。什么是RC树? RC树应满足以下三个条件:
- 有单一的输入(源)节点;
- 没有任何电阻回路;
- 所有电容都在节点和地之间;
Elmore延迟可以看作是找到每段的延迟,即 R R R与下游电容的乘积,然后取各延迟之和。
对于大量的中间节点其时延表示为:
T
d
1
=
C
1
∗
R
1
;
T
d
2
=
C
1
∗
R
1
+
C
2
∗
(
R
1
+
R
2
)
;
.
.
.
T
d
n
=
∑
i
=
1
,
.
.
.
,
N
C
i
(
∑
j
=
1
,
.
.
.
,
i
R
j
)
;
#
E
l
m
o
r
e
d
e
l
a
y
e
q
u
a
t
i
o
n
\\beginalign* & T_d1=C_1*R1;\\\\ & T_d2=C_1*R1+C_2*(R_1+R_2); \\\\ & ... \\\\ & T_dn=\\sum_i=1,...,NC_i(\\sum_j=1,...,iR_j); \\;\\; \\#Elmore \\; delay \\; equation \\endalign*
Td1=C以上是关于延迟计算的主要内容,如果未能解决你的问题,请参考以下文章