IC Compiler II中降低功耗的几种方法
IC Compiler II中降低功耗的几种方法
作者: Grant Wang, Johnson Shi, NVIDIA, 上海, 中国 (grantw@nvidia.com, jshi@nvidia.com)
摘要
功耗是先进技术节点中的一大挑战,随着特征尺寸的缩小,功耗密度越来越高。本文介绍了三种基于IC CompilerI实现的功耗降低方法。第一种是增强型低功耗布局(Enhanced Low Power Placement),旨在减少高开关活动性网络的线长而不影响时序。第二种是CCD优化中的功耗恢复(Power Recovery in CCD),旨在CCD 并发时钟数据优化期间降低时钟树功耗。第三种是逻辑重构(Logic Restructuring),旨在降低泄漏功耗 Leakage Power。
关键词: 功耗降低, ICC2
目录
1. 引言 2. 增强型低功耗布局 3. CCD优化中的功耗恢复 4. 逻辑重构 5. 结论 6. 致谢 7. 参考文献
1 引言
功耗是物理设计实现过程中非常重要的指标,我们进行了大量研究来降低功耗。本文介绍了几种降低功耗的方法。
2 增强型低功耗布局
现有的低功耗布局流程主要专注于优化动态功耗 Dynamic Power,通过移动单元来减少高开关活动性网络的长度。获取网络开关活动性信息有两种方式,第一种是通过SAIF 开关活动交换格式文件,第二种是使用ICC2原生命令set_switching_activity设置全局开关活动性值。为实现更大的功耗降低,需要精确建模的SAIF文件。
然而,低功耗布局流程会使时序退化,因为在计算网络开关活动性权重时未考虑时序QoR,关键路径上的单元被移动,从而导致时序违规。
ICC2 2017.09版本提供了增强型低功耗布局(ELPP)流程来解决上述缺点。对于时序关键的网络,它将同时考虑时序和功耗,从而确保时序状态可接受。
增强型低功耗布局流程在布局阶段调用,用户接口为:
set_app_options -list "place.coarse.enhanced_low_power_effort medium"
我们选取了6个模块在开启增强型低功耗布局流程的情况下运行route_opt,所有模块都带有SAIF文件。我们分析了每个模块的SAIF文件以获得总体翻转率(TR)和网络计数状态,将翻转率分为11个区间并计算每个区间的总网络数。
表1:各模块的翻转率(TR)和网络计数状态
从表中可以得到以下信息:(1) 大多数网络的翻转率低于0.1,特别是Block A和Block C;(2) Block B/D/E/F有较高比例的高翻转率网络。
为获得增强型低功耗布局流程的功耗收益并确保公平比较,我们也启动了一个关闭ELPP的基线运行。两个运行完成后,总结了主要的QoR数据。
表2:基线与增强型低功耗布局的QoR比较
从表中得出结论:(1) 大多数模块的总功耗改善了0.7%-1.5%,除Block C恶化了0.14%;(2) 时序状态保持相似,Block D的WNS从-0.020ns降至-0.039ns,TNS从-0.71ns降至-1.27ns,但在可控和可修复范围内;(3) DRC违规数保持相似,Block A从1193增至1240,可以接受。
3 CCD优化中的功耗恢复
ICC2 2017.09版本支持CCD优化中的功耗恢复(PCCD),旨在利用CCD技术通过单元尺寸调整/移除来降低时钟树功耗。
由于CCD流程是时序感知的,功耗恢复不会损害时序QoR。PCCD流程可以同时优化动态功耗和漏电功耗,取决于设置场景状态时是否启用功耗分析。在我们的设计中同时启用了动态功耗和漏电功耗分析:
set_scenario_status $scenario -dynamic_power true -leakage_power true
PCCD流程在CTS之后和布线步骤之后调用,用户接口为:
set_app_options -as_user_default -list "clock_opt.flow.enable_clock_power_recovery power"
set_app_options -as_user_default -list "route_opt.flow.enable_clock_power_recovery power"
表3:基线与CCD功耗恢复的QoR比较
可以看到:(1) 所有模块功耗平均改善2%;(2) 时序和DRC保持可比;(3) 运行时间增加约5%-10%,主要在CTS优化和布线优化阶段。
4 逻辑重构
ICC2 2017.09版本支持调用综合引擎进行逻辑重构(LR)以优化时序、功耗和面积。
其机制类似于Design Compiler中的增量映射优化。对于关键时序路径,工具将尝试重构逻辑以改善延迟。对于非关键时序路径,工具将尝试使用更高VT的单元替换低VT单元以改善漏电功耗。同时,在逻辑重构期间工具将尝试减少实例数量以改善面积。
逻辑重构流程在布局阶段和CTS阶段之后调用,用户接口为:
set_app_options -list "opt.common.advanced_logic_restructuring_mode area_timing_power"
表4:基线与逻辑重构的QoR比较
可以看到时序保持可比,面积平均改善0.6%,4个模块的功耗改善0.3%-1.4%。由于我们将参数设为"area_timing_power",工具同时优化面积、时序和功耗。对于功耗关键的设计,如果设置为"power"应能获得更多功耗收益。
5 结论
本文介绍了ICC2中三种功耗降低方法:增强型低功耗布局流程、CCD功耗恢复流程和逻辑重构流程。我们选取了6个测试案例测试这些方法,并确保公平的QoR比较。QoR比较表明这些方法对功耗降低是有效的。
6 致谢
感谢Johnson Shi为本文提供思路和支持,感谢Synopsys AE Feiya提供技术支持。
7 参考文献
[1] IC Compiler II Implementation User Guide
[2] IC Compiler II Application Options and Attributes
[3] IC Compiler II Tool Commands
图片索引
本文共12张图片,存放于 _images/ 目录。包括图1-7所示的流程图、QoR对比表和示意图。