story · 2020年08月11日

基于PTPX的平均功耗分析流程(step by step)

来自微信公众号 “数字芯片实验室”

PrimeTime PX支持两种功耗分析模式: averaged mode和time-based mode。在EDA工具的安装目录底下包含了这两种模式的Lab教程和相关设计文件。

本文将一步步地展示如何使用PTPX和这些Lab文件执行功耗分析

Step1: 首先找到PrimeTime的安装目录,和相应的Lab文件

which primetime
/opt/Synopsys/PrimeTime2015/bin/primetime
pwd
/opt/Synopsys/PrimeTime2015/doc/pt/tutpx
ls
averaged PrimeTime_PX_Tutorials.pdf sim  src  syn time_based

可以发现Lab提供了所有设计数据,以及相应的仿真和综合脚本。用户有兴趣可以自行完成设计仿真和综合工作,本文仅展示PTPX功耗分析相关。

Step2: 设置功耗分析模式

set power_enable_analysis TRUE
set power_analysis_mode averaged

Step3: read&link设计

set search_path "../src/hdl/gate ../src/lib/snps . "
set link_library " * core_typ.db"
read_verilog mac.vg
current_design mac
link

完成netlist(mac.vg)和工艺库(core\_typ.db)之间的link工作。netlist中描述了大量的std cell的例化,工艺库中建模了各个std cell的internal power和leakage power

Step4: 读sdc,反标寄生参数

read_sdc ../src/hdl/gate/mac.sdc
set_disable_timing [get_lib_pins ssc_core_typ/*/G]
read_parasitics ../src/annotate/mac.spef.gz

sdc指定了设计的驱动单元,用以计算输入的transitiontime。寄生参数是影响动态功耗的因素之一,反标寄生参数文件能够提高功耗分析的准确性。

Step5: check timing, update timing和report timing

check_timing
update_timing
report_timing

在之前的文章提到过,在改变设计约束时,需要check timing,设计需求的准确描述很重要。时序违例,功耗分析也没有意义。

Step6: 读入开关活动文件

read_vcd -strip_path tb/macinst ../sim/vcd.dump.gz
report_switching_activity -list_not_annotated

设计相关环境和输入描述地越多,功耗分析越准确。开关活动文件可以以vcd或者saif的格式。如果不指定开关活动文件,ptpx就会采用默认的开关活动行为,降低功耗分析的准确性。

Step7: 执行功耗分析

check_power
update_power
report_power -hierarchy
quit

下面是读入不同开关活动文件进行的功耗分析:

读入saif文件

read_saif "../sim/mac.saif"-strip_path "tb/macinst"

功耗报告

Int      Switch  Leak      Total
Power    Power   Power     Power    %
-----------------------------------------------
2.10e-03 1.55e-03 2.59e-07  3.65e-03  100.0

读入vcd文件

read_vcd "../sim/vcd.dump.gz"-strip_path "tb/macinst"

功耗分析

 Net Switching Power  = 1.549e-03   (41.00%)
 Cell Internal Power  = 2.229e-03   (58.99%)
 Cell Leakage Power   = 2.594e-07   ( 0.01%)
                         ---------
Total Power            = 3.778e-03  (100.00%)

不读入开关活动文件

功耗分析

Int      Switch     Leak        Total
Power    Power      Power       Power    %
--------------------------------------------------------------------------------
1.42e-03  6.57e-04  2.59e-07   2.08e-03  100.0

我们可以发现,以saif文件功耗为基准,各个类型的功耗差异分别为:

                      saif文件       vcd文件    不读入开关活动文件
 internal power    2.10e-03       2.229e-03(6.1%)    1.42e-03(32.4%)
 switch power      1.55e-03       1.549e-03(0.06%)   6.57e-04(57.6%)
 dynamic power     3.65e-03       3.778e-03(3.5%)    2.08e-03(43.0%)
 leakage power     2.59e-07       2.594e-07(0.15%)    2.59e-07(0%)

所以,如果你不读入任何开关活动文件进行功耗分析,你可能需要接受非常大的动态功耗误差!

本文转载自公众号:芯片数字实验室
原文链接:https://mp.weixin.qq.com/s/n48VQZ3Q3CuhkwLlPA7yZw
未经作者同意,请勿转载!

推荐阅读

想了解更多内容,欢迎关注芯片数字实验室专栏
推荐阅读
关注数
12275
内容数
199
前瞻性的眼光,和持之以恒的学习~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息