当多个回转到达公共点时(例如在多输入单元的情况下)会发生什么? 这个公共点称为回转合并点。 应选择哪个回转以在回转合并点处继续向下传播? 考虑图 5-10 所示的 2 输入单元:
图5-10
由于A脚信号的变化,Z脚的转换较早到达,但上升缓慢(转换较小); 由于B脚信号的变化,Z脚的回转较晚到达,但上升很快(摆幅较大)。 在回转合并点(例如引脚 Z),应选择哪个回转来进一步传播? 根据所执行的时序分析的类型(最大或最小时序路径分析),这些转换值中的任何一个都可能是正确的。
执行最大时序路径分析时有两种可能性:
● 最差转换传播(Worst slew):该模式选择在合并点传播最差转换,即图5-10(a)中的转换。 这种选择对于通过引脚 A->Z 的时序路径来说是准确的,但对于通过引脚 B->Z 的任何时序路径来说都是悲观的。
● 最差到达时间传播(Worst):该模式选择在合并点传播最差到达时间,对应于图5-10(b)中的转换。 在这种情况下选择的转换对于通过引脚 B->Z 的时序路径是准确的,但对于通过引脚 A->Z 的时序路径是乐观的。
同样,进行最小时序路径分析时有两种可能:
● 最佳转换传播(Best slew):该模式选择最佳转换在合并点传播,即图5-10(b)中的转换。 此选择对于通过引脚 B->Z 的时序路径是准确的,但对于通过引脚 A>Z 的任何时序路径具有较小的转换值。 对于经过A->Z的路径,路径延迟小于实际值,因此最小时序路径分析是悲观的。
● 最佳到达时间传播(Best):该模式选择传播汇合点的最佳到达时间,对应于图5 10(a)中的摇摆。 在这种情况下,选择的转换对于通过引脚 A->Z 的时序路径来说是准确的,但大于通过引脚 B->Z 的时序路径的实际值。 对于通过B->Z的路径,路径延迟大于实际值,因此最小时序路径分析是乐观的。
设计人员可以在静态时序分析环境之外执行延迟计算以生成 SDF 文件。 在这种情况下,延迟计算工具通常使用最坏情况的转换传播。 生成的 SDF 文件足以进行最大时序路径分析,但对于最小时序路径分析可能过于乐观。
大多数静态时序分析工具使用最坏情况和最佳情况转换传播作为默认设置,因为它保守地限制了分析。 然而rc延时时间计算,在分析特定路径时可以使用精确的转换传播,并且需要在时序分析工具中启用一个选项。 因此,重要的是要了解静态时序分析工具中默认使用哪种转换传播模式,并了解在什么情况下它可能过于悲观。
5.5 不同的转换阈值
通常,库会指定单元表征期间使用的转换(转换时间)阈值 ()。 问题是,当具有一组转换阈值的单元驱动具有不同转换阈值设置的其他单元时,会发生什么情况? 考虑图 5-11 所示的情况,其中转换阈值为 20%-80% 的单元驱动两个扇出单元,一个单元的转换阈值为 10%-90%,另一个单元的转换阈值为 30 %-70% 转换阈值,转换降额因子为 0.5。
图5-11
U1 单元的转换设置在单元库中定义如下:
: 20:00
:80.00
瑞亚:1.00
秋季:50.00
_秋季:50.00
上涨:50.00
_上升:50.00
:20.00
:80.00
单元 U2 的转换设置在另一个单元库中定义如下:
:10.00
:90.00
瑞亚:1.00
:10.00
:90.00
单元 U3 的转换设置在另一个单元库中定义如下:
:30.00
:70.00
数值:0.5
:30.00
:70.00
上面仅显示了与 U2 和 U3 slew 相关的设置,输入和输出阈值的延迟相关设置均为 50%,上面未显示。 延迟计算工具根据连接到该网络的设备的转换阈值来计算转换时间。 图 5-11 显示了 U1/Z 处的转换如何与该引脚上的开关波形相对应。 U1/Z 处的等效戴维南源可用于获取扇出单元输入处的开关波形。 延迟计算工具根据 U2/A 和 U3/A 处的波形及其转换阈值计算 U2/A 和 U3/A 处的转换。 请注意,U2/A使用的slew是基于10%-90%设置,而U3/A使用的slew是基于30%-70%设置,然后根据slew降额(slew)使用库中指定的系数 0.5。 此示例说明如何根据开关波形和扇出单元的转换阈值设置来计算扇出单元输入处的转换。
在可能不考虑互连电阻的预布局(预)设计阶段,可以如下计算具有不同阈值的网络处的压摆。 例如,10%-90%转换阈值和20%-80%转换阈值之间的关系为:
● / (0.8 - 0.2) = / (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所示:
图5-12
请注意,延迟是根据 50% 阈值点计算的。 对于接口单元的不同引脚,这些点可以处于不同的电压。
5.7 路径延迟计算
一旦知道每个时序弧的完整延迟,设计中每个单元的时序就可以表示为时序图。 通过组合逻辑单元的时序可以表示为从输入到输出的时序弧。 类似地,互连线可以由从源引脚到每个目标引脚的对应弧来表示,表示为单独的定时弧。 一旦整个设计通过相应的时序弧进行校准(),计算路径延迟只需将路径上所有网络和元件的时序弧相加即可。
5.7.1 组合逻辑路径延迟
考虑三个逆变器串联,如图 5-13 所示。 在考虑从网络 N0 到网络 N3 的路径时,我们同时考虑了上升沿和下降沿路径,现在假设网络 N0 处有一个上升沿。
图5-13
可以指定第一个逆变器输入的转换时间(或转换时间),否则假定为零(对应于理想情况)。 输入 UINVa/A 处的转换时间可以通过使用上一节中指定的互连延迟模型来确定。 同样,该互连延迟模型也可用于确定网络 N0 的延迟 Tn0。
根据UINVa输出端的RC负载,可以得到输出端的有效电容UINVa/Z。 输入端 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的下降沿也可以进行类似的分析。 因此,在这个简单的示例中,有两个具有以下延迟的时序路径:
● Tfall = + + + + + +
● Trise = + + + + + +
通常,由于驱动器单元输出处的戴维宁电压源模型不同,通过互连线的上升和下降延迟可能会有所不同。
5.7.2 触发输入到触发路径的路径
考虑从输入 SDT 到触发器 UFF1 的时序路径,如图 5-14 所示:
图5-14
我们需要考虑上升沿和下降沿路径。 对于输入 SDT 的上升沿,数据路径延迟为:
● + + + + + +
同样,对于输入 SDT 的下降沿,数据路径延迟为:
● + + + + + +
输入 MCLK 上升沿的 () 时钟路径延迟为:
● + +
触发到触发路径
图 5-15 给出了两个触发器之间的数据路径和相应时钟路径的示例:
图5-15
UFF0/Q 上升沿的数据路径延迟为:
● + + + + +
输入 PCLK 上升沿的 () 时钟路径延迟为:
● + +
输入 PCLK 上升沿的 () 时钟路径延迟为:
● + + + +
需要注意单元格()的单边性,因为经过单元格时边缘方向可能会发生变化(上升沿变成下降沿,下降沿变成上升沿)。
5.7.3 多路径
任意两点之间,可以有很多条路径。 最长路径是花费最多时间的路径,也称为最差路径、较晚路径或最大路径。 最短路径是指花费时间最少的路径,也称为最佳路径、较早路径或最小路径。
时序弧的逻辑和延迟见图5-16。 两个触发器之间的最长路径是通过单元UBUF1、UNOR2rc延时时间计算,两个触发器之间的最短路径是通过单元UBUF1、UNOR2和UNOR2。
图5-165.8 保证金计算
松弛是信号所需到达时间 (Time) 与其实际到达时间 (Time) 之间的差值。 在图5-17中,要求数据在7ns保持稳定,以满足建立时间(setup)的要求。 不过数据稳定在1ns。 因此,余量为6ns(=7ns-1ns)。
图5-17
假设数据需要到达的时间是从捕获触发的建立时间得到的,计算过程如下:
● 所需到达时间 = - = 10 - 3 = 7ns
● 实际到达时间=1ns
● 裕量裕度 = - = 7 - 1 = 6ns
同样,如果两个信号之间的时滞要求为 100ps,并且测得的时滞为 60ps,则时滞余量为 40ps (= 100ps-60ps)。
第5章:延迟计算(完)