PTPX功耗分析之Average Power Analysis

电子说

1.3w人已加入

描述

 

PTPX,是基于PT,对全芯片进行power静态和动态功耗分析的工具。包括门级的平均功耗和峰值功耗。可以说PTPX就是PT工具的一个附加工具。

PT如果report_power需要额外的PTPX的licence,可以通过以下变量打开:

set_app_var power_enable_analysis true (默认是false)

PrimeTime PX支持两种功耗分析模式:averaged mode和time-based mode。

Average Power Analysis

用PTPX做平均功耗分析,利用后仿产生的VCD/SAIF文件,通过read_vcd/read_saif将真实的翻转率反标到上,然后通过report_switching_activity检查反标率,最后report_power报告功耗值。

平均功耗,是基于翻转率toggle rate来分析的。翻转率的标注,可以是默认翻转率、用户定义switching activity、SAIF文件或者VCD文件。功耗结果期望准确的话,首先要保证翻转率的标注要准确。这意味着需要后端布局布线、时钟树等已经完全稳定了。

前期做功耗分析,可能只是一个评估作用。

工具支持基于仿真的switching activity文件类型,包括:

VCD

FSDB

VPD

SAIF

波形转saif命令

 

vcd2saif:
 vcd2saif -i dump.vcd  -o vcd2saif.saif
fsdb2saif:
 fsdb2saif  dump.fsdb  -o fsdb2saif.saif

 

如果没有上述文件,那可以使用user-define switching activity commands,来提供一个现实的activity去精确power结果。

所需基本文件:

logic库文件,必须是.db格式;

网表文件,支持verilog、vhdl网表,db、ddc、Milkyway格式的网表;

sdc文件,计算平均功耗;

spef文件,寄生参数信息。

VCD/saif文件,记录翻转率(若没有,则需要人为设置翻转率)。

基本流程

Step1: 设置功耗分析模式

 

set power_enable_analysis TRUE
set power_analysis_mode averaged

 

Step2: 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

 

Step3: 读sdc,反标寄生参数

sdc指定了设计的驱动单元,用以计算输入的transitiontime。

寄生参数是影响动态功耗的因素之一,反标寄生参数文件能够提高功耗分析的准确性。

 

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

 

Step4: timing报告:

满足时序要求,功耗分析才有意义

 

check_timing
update_timing
report_timing

 

tep5: 读入switching_activity文件

读后仿产生的VCD/SAIF文件将真实的翻转率反标到Net上,在read_vcd或者read_saif时要注意通过-stripe_path选项指定合适的hierarchical层次,否则activity反标不上;

-list_not_annotated列出没有被反标的对象;

读入saif文件:

 

read_saif "../sim/mac.saif" -strip_path "tb/Dut" 
report_switching_activity -list_not_annotated   

 

读入vcd文件:

 

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

 

tep6: 执行功耗分析

在得到switching activity之后,使用update_power来将其反标,使用report_power来报告power值。

 

check_power
update_power
report_power 

 

读入saif文件的功耗报告

功耗

读入vcd文件的功耗报告

功耗

可以看出saif/vcd文件的功耗略有差异。

Averaged Power Analysis Mode Script脚本:

 

set power_enable_analysis TRUE
set power_analysis_mode averaged

#####################################################################
#       link design
#####################################################################
set search_path         "../src/hdl/gate ../src/lib/snps . "
set link_library " * core_typ.db"

read_verilog  mac.vg
current_design  mac
link

#####################################################################
#       read SDC
#####################################################################
read_sdc ../src/hdl/gate/mac.sdc
set_disable_timing [get_lib_pins ssc_core_typ/*/G]

#####################################################################
#       set transition time / annotate parasitics
#####################################################################
read_parasitics  ../src/annotate/mac.spef.gz

#####################################################################
#       check/update/report timing
#####################################################################
check_timing
update_timing
report_timing

#####################################################################
#       read switching activity file
#####################################################################
##read_vcd "../sim/vcd.dump.gz"-strip_path "tb/Dut"
read_saif "../sim/mac.saif" -strip_path "tb/Dut" 
report_switching_activity -list_not_annotated

#####################################################################
#       check/update/report power
#####################################################################
check_power
update_power
report_power 
quit

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分