来自微信公众号 “数字芯片实验室”
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
未经作者同意,请勿转载!
推荐阅读
想了解更多内容,欢迎关注芯片数字实验室专栏