使用经验分析的跨电压 PV 收敛
使用经验分析的跨电压 PV 收敛
会议: SNUG Singapore 2008 作者: Khor Wan Chong, Tan Aan Chien, Tee Kok Tiong, Intel Microelectronics (M) Sdn Bhd, Malaysia 页数: 15
摘要
当使用多个电压调节器为一个组件供电时,需要进行跨电压 PV 角分析。存在一种可能的情况:一个调节器的电压摆幅偏高而另一个偏低,从而产生未被最大和最小 PVT 角覆盖的新的时序违例。需要特殊的 PV 角来覆盖这种情况。随着调节器数量的增加,PV 角的数量呈指数增长。我们的工作利用经验分析来预测由于跨电压条件导致的时序余量退化或改善。通过经验建模,PV 角的数量从传统的 2^n-1 个减少到 n-1 个,其中 n 为电压调节器数量。
目录
1.0 引言 ...................................................................................................................................... 3 2.0 经验分析的基础 .................................................................................................................. 4 3.0 标准延迟格式(SDF)缩放 .............................................................................................. 5 4.0 经验分析中 SDF 缩放的两个属性 .................................................................................... 6 4.1 线性性 .............................................................................................................................. 6 4.2 复合效应 .......................................................................................................................... 7 5.0 通过经验分析预测端点余量 .............................................................................................. 8 5.1 结果 ................................................................................................................................ 10 6.0 结论与建议 ........................................................................................................................ 13 7.0 致谢 .................................................................................................................................... 15 8.0 参考文献 ............................................................................................................................ 15
1.0 引言
最近的设计趋势要求晶体管数量不断增加而功耗保持平稳。这一趋势需要激进的设计策略来降低功耗。降低功耗的有效方法之一是通过电源门控 Power Gating和多电压域 Multi-Voltage Domain设计。该方法通过关闭不使用的逻辑显著降低功耗,然而代价是增加了设计复杂度。其中一个给 PV(性能验证)带来挑战且文献中不常提及的复杂度是跨电压场景。
在这种场景下,芯片可能由不同的电压调节器供电,每个调节器的输出电压容差为最终输出电压水平的 +/- X%。因此,存在一个调节器的电压摆幅偏高而另一个偏低的可能性,从而产生未被正常的最大或最小工艺、电压和温度(PVT)角覆盖的时序违例。覆盖这种情况所需的特殊跨电压 PV 角数量随着为组件供电的电压调节器数量的增加呈指数增长。
在我们过去的项目中,我们使用不同的电压调节器实现了多个电源阱(power well)。传统的 PV 角不足以覆盖一个电源调节器电压摆动 +X% 高于规格电压而另一个电源调节器电压摆动 -X% 低于规格电压的情况。先前发表于 SNUG 2006 的"Rapid Static Timing Analysis for Cross-Voltage PV and DFT skew check"讨论了如何减少网表大小以降低 PV 运行时间。该方法在电源调节器数量较少时运行良好。然而,随着项目复杂度的增加以容纳更多电压调节器,PV 角的数量随电压调节器的线性增加而呈指数增长。使用先前的方法,跨电压时序分析所需的 PV 角数量仍在合理范围内。但随着电压调节器数量的增加,所需跨电压 PV 角的数量最终将超出可行性。
例如,对具有 4 个不同电源阱(CORE1、CORE2、CORE3 和 CORE4)的 ASIC1 进行跨电压时序分析,共需要 2^4-1 = 15 个 PV 角(排除被功能角覆盖的 1 个角)。这 15 个角包含了 4 个不同电源阱所有电压缩放的组合。
使用相同的 ASIC1 示例,本文提出了一种经验方法,将所需的 PV 角数量减少到仅 3 个。该方法将显著减少多个电源阱最坏情况跨电压时序分析所需的时间和资源,同时产生相同的结果。此外,所需的 PV 角数量随电压调节器增加而线性增长,而非指数增长。这消除了跨电压 PV 作为更精细的多阱多电压设计的限制因素。
2.0 经验分析的基础
简而言之,我们的方法学依赖于观察单个电源调节器电压在同一时刻升高或降低时的时序余量趋势。在 PV 中,电压的升高或降低通过延迟缩放因子(称为 K 因子)建模为单元延迟的变化。为了完整的 PV 覆盖,电源调节器电压在所有可能的组合中变化。我们在 PV 角中使用简单的符号来表示独立电压调节器的状态。例如,基于上面的表 1,所有电源阱处于 -X% 标称电压水平的符号为 LLLL。如果我们增加 CORE4 电压调节器的电压,符号为 LLLH。
表 1 —— 传统 PV 与经验分析的所需 PV 角对比: (传统方法需要 16 个角各 6 小时,经验分析只需 5 个角)
该方法学有两个关键的基本假设:
1. 线性性(Linearity):由于单个电源阱电压调节器上电压升高或降低导致的延迟缩放,余量改善或退化与缩放因子呈线性变化。
2. 复合效应(Compounding Effect):两个或以上电压调节器电压变化导致的余量改善或退化,等于各单个电压调节器余量改善或退化之和。
3.0 标准延迟格式(SDF)缩放
标准延迟格式(SDF 标准延迟格式)包含设计的所有单元和网络延迟信息。这些延迟信息由 PV 流程中的"延迟计算步骤"生成。SDF 中的单元延迟信息基于定义的 PVT 条件计算。标准单元库都基于特定的 PVT 条件进行特征化。
表 2 —— 使用不同 PVT 条件特征化的标准单元库的 PV 角:
| PV 角 | Process | Voltage | Temperature |
| Max | Slow | Low | High |
| Min | Fast | High | Low |
如表 2 所示,Max PV 角使用慢速 PVT 条件特征化的标准单元库,反之亦然。SDF 中的延迟信息强烈依赖于 PVT 条件。当 PVT 三要素之一发生变化时,例如工作电压轻微升高,可以对 SDF 进行缩放以反映电压升高导致的更快的延迟,而无需重新特征化标准单元库。这种 SDF 缩放方法也被称为 K因子 K-Factor(K-factoring),通常用于建模 IR Drop 电压降 以及芯片中的跨电压。缩放后的 SDF 随后被读入进行时序计算和分析,如下图 1 所示:
4.0 经验分析中 SDF 缩放的两个属性
传统的 PV 流程会缩放所有电源阱的排列组合以确定时序的退化或改善。当电压调节器数量增加时,这种方法不可行。由于跨电压 PV 时序分析是利用 SDF 缩放方法来完成的,SDF 缩放有两个属性可以用来经验性地建模跨电压角,并显著减少所需的时间和资源。这两个属性是:
4.1 线性性
第一个假设:时序路径的端点余量与缩放因子呈线性比例关系。
例如,如果一条时序路径的单元延迟以 5%、10%、15%、20% 等的缩放因子序列进行缩放,则该时序路径在每个上述缩放因子下的端点余量将具有线性关系。表 3 显示了路径的 Well A 单元延迟以 0% 至 20% 的缩放因子缩放后的端点余量。在图 2 中,端点余量由变量 a、b、c、d 和 e 表示。换句话说,由于 SDF 缩放的线性性,a、b、c、d 和 e 的值应形成一条直线。
下图清楚地表明端点余量确实彼此具有线性关系。
表 4 展示了基于 ASIC1 A1 Stepping 的统计数据,以证明 SDF 缩放的线性性属性。如图所示,某些端点不受缩放影响,标记为"No Change"。然而,有小于 0.9% 的端点不遵守线性性属性。这些少量例外值的原因将在总结部分讨论。
表 4 —— ASIC1 线性性属性的统计数据:
| Corner | Total Endpoints | Linear | No Change | Fallouts | Fallouts % |
| Max Setup CORE1 Well Scaled | 836,135 | 609,118 | 219,640 | 7,377 | 0.8823 |
| Max Setup CORE2 Well Scaled | 836,135 | 92,777 | 741,553 | 1,805 | 0.2159 |
| Min Hold CORE1 Well Scaled | 834,094 | 612,733 | 220,962 | 399 | 0.0478 |
| Min Hold CORE2 Well Scaled | 834,094 | 93,151 | 740,598 | 345 | 0.0414 |
4.2 复合效应
第二个假设:含多个被缩放电源阱的时序路径的端点余量,是各单个电源阱分别缩放后的复合结果。
表 5 —— SDF 缩放后的余量变化:
| 0% | 5% | 10% | 15% | 20% | |
| Well A | A1 | A2 | A3 | A4 | A5 |
| Well B | B1 | B2 | B3 | B4 | B5 |
| Well A and Well B | C1 | C2 | C3 | C4 | C5 |
基本上,SDF 缩放的复合效应可以由以下等式表示: Cx = Ax + Bx,其中 x 是缩放因子的索引。
表 6 —— ASIC1 复合效应属性的统计数据:
| Corner | Total Endpoints | Compounded Endpoints | Fallouts | Fallouts % |
| Max Setup | 836,135 | 835,421 | 714 | 0.0854 |
| Min Hold | 834,094 | 833,996 | 98 | 0.0117 |
5.0 通过经验分析预测端点余量
以上述两个已证明的关键假设为基础,我们可以利用 SDF 缩放的线性性和复合效应属性来经验性地预测端点余量的退化或改善,而无需为完整的 PV 分析运行所有可能的跨电源阱电压缩放组合。以 ASIC1 为例,所需的 PV 角数量为 4 个,而非运行 2^4 = 16 个 PV 角:
1. 无缩放(由功能 PV 角覆盖) 2. Well A 缩放 3. Well B 缩放 4. Well C 缩放
仅凭这 4 个角,我们就能经验性地预测其他跨电压 PV 角的端点余量,例如 Well A 和 Well B 缩放、Well A 和 Well C 缩放、所有阱缩放等。端点余量可以使用 SDF 缩放的线性性和复合效应属性来计算。
如图 3 所示,每个电源阱的缩放产生一个线性关系。用数学公式 y = mx + c 表示为:
Scaled Slack = m * (scaling factor) + Unscaled Slack
其中 m 是"与电源阱和时序路径相关的梯度"。
表 7 —— 经验分析的等式:
| Power Well Scaled | Equation |
| Unscaled | Endpoint slack = Unscaled Slack |
| Well A | Scaled Slack_A = m_A * (scaling factor) + Unscaled Slack |
| Well B | Scaled Slack_B = m_B * (scaling factor) + Unscaled Slack |
| Well C | Scaled Slack_C = m_C * (scaling factor) + Unscaled Slack |
表 8 —— 经验分析推导的等式:
利用 SDF 缩放的复合效应属性,其他跨电压角的梯度可以从单独缩放电源阱的梯度复合而来:
| Well A | Well B | Well C | Equation |
| Unscaled | Unscaled | Unscaled | Slack = Unscaled Slack |
| Unscaled | Unscaled | Scaled | Slack_C = m_C * sf + Unscaled Slack |
| Unscaled | Scaled | Unscaled | Slack_B = m_B * sf + Unscaled Slack |
| Unscaled | Scaled | Scaled | Slack_BC = (m_B+m_C) * sf + Unscaled Slack |
| Scaled | Unscaled | Unscaled | Slack_A = m_A * sf + Unscaled Slack |
| Scaled | Unscaled | Scaled | Slack_AC = (m_A+m_C) * sf + Unscaled Slack |
| Scaled | Scaled | Unscaled | Slack_AB = (m_A+m_B) * sf + Unscaled Slack |
| Scaled | Scaled | Scaled | Slack_ABC = (m_A+m_B+m_C) * sf + Unscaled Slack |
5.1 结果
本文使用 ASIC1 数据库进行经验实验。我们集中分析 ASIC1 中的 CORE1 电源阱和 CORE2 电源阱进行跨电压经验分析。时序路径分别以缩放因子 -5%、-10%、-15% 和 -20% 进行缩放。
表 9 —— CORE1 电源阱缩放 PV 角的余量变化和推导等式(部分数据): 表格展示了 Endpoint 1 到 Endpoint 9 在不同缩放因子(0% 到 -20%)下的余量值,以及相应的线性方程。例如: - Endpoint 1: y=932.05x+1729.7 (LINEAR) - Endpoint 3: y=37314.7 (NO CHANGE) - Endpoint 4: y=5492.45x+1627.78 (LINEAR)
表 10 —— CORE2 电源阱缩放 PV 角的余量变化和推导等式: 类似展示 Endpoint A 到 I 的数据。例如: - Endpoint A: y=-1642.45x+4798.17 (LINEAR) - Endpoint B: y=1168.70x+78207.91 (LINEAR) - Endpoint C: y=-113.60x+36262.75 (LINEAR)
由于基于 ASIC1 的实验生成的数据量巨大,本文无法全部呈现。数据量总结在表 4 和表 6 中。为展示数据和结果,我们选择了一条包含由 CORE1 阱供电的单元和由 CORE2 阱供电的单元的跨电压时序路径。
表 11 —— ASIC1 的 CORE1 和 CORE2 电源阱分别缩放:
| Power Well | 0% | 5% | 10% | 15% | 20% | Equation |
| CORE1 | 1846.41 | 2064.61 | 2282.81 | 2501.01 | 2719.21 | y=4364.000x+1846.41 |
| CORE2 | 1846.41 | 1861.02 | 1875.63 | 1890.25 | 1904.86 | y=292.250x+1846.41 |
利用复合效应属性,CORE1 和 CORE2 同时缩放的端点余量等式为: y = (4364.0000 + 292.250)x + 1846.41 y = 4656.25x + 1846.41
表 12 —— CORE1 和 CORE2 同时缩放的 ASIC1 实际数据:
| Power Well | 0% | 5% | 10% | 15% | 20% | Equation |
| CORE1CORE2 | 1846.41 | 2079.22 | 2312.03 | 2544.84 | 2777.66 | y=4656.250x+1846.41 |
从 CORE1 和 CORE2 同时缩放的实际 PV 角推导出的等式与经验分析推导出的等式完全一致。
将 CORE1 缩放、CORE2 缩放和 CORE1CORE2 缩放的所有线性等式绘制在一起的图表如图 5 所示。
表 13 —— ASIC1 的时间节省估算:
| 电源阱数量 | 传统 PV 角数 | 经验 PV 角数 | 每角运行时间 | 传统总时间 | 经验总时间 | 节省时间 |
| 1 | 1 | 1 | 6h | 6h | 6h | 0h |
| 2 | 4 | 3 | 6h | 24h | 18h | 6h |
| 3 | 8 | 4 | 6h | 48h | 24h | 24h |
| 4 | 16 | 5 | 6h | 96h | 30h | 66h |
| 5 | 32 | 6 | 6h | 192h | 36h | 156h |
6.0 结论与建议
通过跨电压经验分析的实验,我们成功地获得了显著的 TPT(Throughput Time)改善,同时未损失相对于更繁琐的传统 PV 跨电压流程的结果精度。当新设计实现越来越多由不同电压调节器供电的电源阱时,这尤其有用,因为可以看出节省的总运行时间随需要分析的电源阱数量呈指数增长。
然而,如表 4 和表 6 所示,在"经验分析中 SDF 缩放的两个属性"部分中,统计上仍有约 0.9% 的端点余量在我们的经验分析实验中似乎没有被精确建模。原因是,在 PrimeTime 中,时序余量是按端点(endpoint)报告的。这意味着对于单个端点,可能有多个起始点(startpoint)与之关联。当由于电源阱 SDF 缩放导致特定端点的起始点从一个变为另一个时,线性关系不再成立,从而导致 0.9% 的例外值。我们将这种现象称为"拐点效应(Knee Effect)"。
图 6 展示了一个端点余量由于在将时序路径上各电源阱的单元延迟从 0% 到 20% 顺序缩放时起始点不一致而产生的拐点效应示例。如图所示,紫色虚线和蓝色虚线被用作线性参考。从 ASIC1 中,我们取一个样本端点来说明这一现象:当 CORE2 电源阱单元延迟被缩放超过 X%(由左侧红色垂直虚点线标出)时,拐点效应开始出现。当 CORE1 电源阱单元延迟被缩放超过 10%(由右侧红色垂直虚点线标出)时,拐点效应也开始出现。由于与这两个电源阱相关的拐点效应,线性和复合效应属性在 SDF 缩放超过 X% 后将不再成立。换句话说,使用经验分析方法,如果 SDF 缩放超过原始单元延迟的 X%,约 0.9% 的跨电压端点余量无法被准确预测。
至关重要的是我们要指出,实验中使用的 5 个数据点仅旨在对这个跨电压经验分析方法进行压力测试,以捕获 0.9% 的异常。实际上,3 个数据点就足以进行跨电压经验分析。基于我们在 ASIC1 上进行的实验,当缩放因子保持在原始单元延迟的 X% 以下时,几乎没有遇到例外值。通常,X% 应当是正确且合适的缩放因子,因为大多数现代电源具有最终输出电压水平的 +/- X% 输出容差。因此,在实际项目中使用经验分析方法时,缩放因子应保持在适当的范围内,例如 ASIC1 情况下的 X%。
基于当前开发阶段,我们计划将此经验分析流程集成到 ASIC2 的 PV 环境中,减少跨电压分析所需的 PV 角数量,从而为团队节省更多时间专注于各种时序收敛活动并生产具有卓越质量的芯片。
7.0 致谢
作者感谢 Sarbjit Singh 和 Han Wooi Lim 在流程开发阶段提供的支持和鼓励。
8.0 参考文献
1. Rapid Static Timing Analysis for Cross-Voltage PV and DFT skew check, 2006, Kok Tiong Tee and Aan Chien Tan 2. Synopsys PrimeTime User Guide: Fundamentals, Version V-2004.06, June 2004, Synopsys, Inc 3. ASIC1 Cross-voltage PV implementation, 2007, Penang Structural Design Team
图片索引
共 10 张图片,存放于 _images/ 目录。
- 图 1:使用 SDF 缩放的跨电压 PV 流程(第 5 页) - 图 2:SDF 缩放的线性性(第 6 页) - 图 3:SDF 缩放的复合效应(第 8 页) - 图 4:所选时序路径的图形表示(第 11 页) - 图 5:ASIC1 端点余量的经验分析(第 12 页) - 图 6:起始点不一致导致的拐点效应(第 14 页)