PrimeTime PX工具是PrimeTime工具内的一个feature。
PTPX的功耗分析,可以报告出chip,block,cell的各个level的功耗。
使用PTPX可以分析的功耗的方式:
1)Average power analysis,支持activity的propagation方式,主要用在项目早期做评估。
可以是defaults,user_defined,derived from HDL simulation的switching文件。
2)Time-based power analysis,通过event-drived算法来统计功耗。
主要用在项目signoff时候,加入IR-drop的分析。
电路中的功耗:
1)Leakage power,电路处在inactive或者static时的功耗。
Intrinsic Leakage power,主要是source-to-drain subthreshold leakage。
diffusion layers和substrate之间的current leak。
这种leakage是state和voltage dependent。
Gate Leakage Power,leakage的主要来源,有source to gate和gate to drain的power。
主要由gate oxide thickness和voltage来决定。
2)Dynamic Power,电路处在active模式下的功耗。即使在output不改变的情况下,输入也可能由于transition带来功耗。
Internal Power,包括内部电路冲放电的功耗和short circuit的功耗。对于fast transition times,short-circuit比较低。
对于slow transition times,short-circuit比较高。
Switching Power,cell的output的电容冲放电。
set_power_derate:用来设置某个design,cell,library cell,hierarchical,leaf cell的power的百分比。
report_power_derate
PTPX可以将某个design的power data放在一个power model中,通过extract_model -power来得到这个model,
可以通过在设计中例化的方式,来加快chip_level的power analysis的进度。(生成格式为.lib文件)
针对gate_level的design,PTPX会生成一个带clock pin的power model,可以用在分析一个复杂macro cell的功耗。
Power Analysis input:
logic library,包含timing和power信息,支持NLPM和CCS类型的library。
Gate_level netlist,支持verilog,VHDL,systemverilog格式。
Design constraints,计算primary input的transition time和define clock。
Activity,VCD/SAIF,default,user_defined。
net parasitic,SPEF文件,包含net RC参数。
1)set power_enable_analysis 为true。
2)读入verilog,VHDL,db,ddc等格式的netlist,logic library为db格式。
3)读入SPEF文件,包含WLD定义,以及sdf文件,包含glitch。
4)set_operating_conditions设置PVT。
5)针对某些fanout比较高的net(clock reset),设置power_limit_extrapolation_range。
6)当timing data还没有update的时候,PTPX会自动首先进行timing analysis,也可以通过update_timing来显式调用。
7)check_power检查潜在的功耗计算问题,默认有out_of_table_range和missing_table检查。
8)设置power analysis的模式,set_app_var power_analysis_mode average | time_based。
9)指定switching activity data,主要有set_switching_activity,set_case_analysis。
read_vcd -time(加入time window)/-when(Boolean condition)。
如果vcd等波形从RTL中得到,还需要一个mapping文件来进行波形与netlist之间匹配。
10)update power开始进行power analysis的分析。
11)report power打出power report。
time_base的报告比average报告多出以下几项。
12)最后通过save_session和restore_session来保存以及提取session。