功率估计和功率降低方法指南(3~5)
3 功耗估算与探索方法学
3.1 目标概述
(Power Estimation and Exploration Methodology: Goal Overview)
SpyGlass Power 方法学为整个设计流程中的功耗估算与优化提供了强大的功能。这包括基于仿真数据或无需测试向量(vector-less)的统计近似方法进行准确的功耗估算,以及使用高级分析技术(如时序形式分析)来降低芯片整体的功耗。
此外,SpyGlass 还具备丰富的功耗探索能力(Power Exploration),支持在多个场景下对低功耗设计进行评估和优化。以下是关于功耗估算与探索的简要说明:
- 功耗估算(Power Estimation, PE):计算设计的总功耗。
- 功耗探索(Power Exploration, PX):以指标为导向的分析,重点关注多场景下的时钟门控效率和内存访问行为。
- 寄存器功耗优化(Power Register Reduction, PR):降低组合逻辑、寄存器及时钟部分的功耗。
- 内存功耗优化(Power Memory Reduction, PMR):降低设计中内存部分的功耗。
SpyGlass GuideWare 方法学中包含一系列用于功耗估算与优化的目标(goals)。要在项目文件中使用这些目标,请在配置中指定如下语句:
current_methodology $SPYGLASS_HOME/GuideWare/<GuideWare版本>/<block | soc>/<设计阶段>
要运行某一特定目标,请在项目文件中添加如下命令:
current_goal power/<目标名称>
请参考以下主题以了解更多内容:
- 针对模块/IP 的目标(Goals for Block/IP)
- 针对 SoC RTL 与网表的目标(Goals for SoC RTL and Netlist)
- SpyGlass 功耗估算与探索方法学的高层次概览(High Level Overview of SpyGlass Power Estimation and Exploration Methodology)
表格中使用以下图例说明各目标的适用性:
- M 表示该设计阶段的必选目标(Mandatory)
- R 表示该设计阶段的推荐目标(Recommended)
- NA 表示该目标在当前设计阶段不适用(Not Applicable)
3.2 模块/IP 层级的功耗分析目标
(Goals for Block/IP)
下表列出了在不同设计阶段可用于模块或 IP 层级的 SpyGlass Power 分析目标。每个目标都有其特定的功能,并根据设计阶段标记为必选(M)、推荐(R)、可选(O)或不适用(NA)。
目标名称 | 功能描述 | initial_rtl | rtl_handoff | netlist_handoff |
---|---|---|---|---|
power_audit | 执行审计操作,检查设计、仿真数据和工艺库之间的一致性,并列出功耗估算中使用的关键参数。 | R | R | R |
power_activity_check | 对仿真测试平台中的信号活动进行分析,并生成随时间变化的活动图。该功能有助于确定哪些仿真以及仿真的哪些时间段对功耗估算和优化最有价值。 | M | M | M |
power_gen_pesd | 生成用于功耗估算的“关键功耗信号”列表。 | O | O | O |
power_calibration | 基于参考设计生成校准数据。它会生成 SGDC 文件,显示当前设计中各单元的百分比分配情况;还会从参考设计中提取时钟缓冲器信息并生成 SGDC 文件;此外,它还能基于输入设计和对应的 SPEF 文件创建高级电容模型。 | M | M | M |
power_est_average | 计算每个模块的平均功耗估计值。 | M | M | M |
power_est_profiling | 针对感兴趣的时间区间,计算设计中时钟、寄存器和内存的功耗、活动因子及效率信息。通过该分析可以识别低效的时钟门控逻辑、冗余的内存访问条件等功耗缺陷。 | M | M | M |
power_reduction_adv | 寻找设计中的功耗优化机会,并报告由此带来的功耗节省。对于没有使能信号的寄存器,该目标可以找到新的使能控制逻辑;对于已有使能信号的寄存器,它可以寻找更高效的使能信号,使得时钟关闭的时间更长。 | O | O | NA |
power_mem_reduction | 在设计流程早期,利用先进技术对寄存器和存储器的功耗节省情况进行分析与报告。 | O | O |