根据VCD文件的type,PTPX支持instantaneous peak power analysis和cycle_accurate peak
power analysis。
Time-Based Power Analysis支持的VCD type
由于Gate_level和zero_delay的VCD不支持event propagation,所以可以在read_vcd之后,通
过命令report_switching_activity来报告switching activity的annotation。
在time_base mode下,不支持多个VCD file的分析。
PTPX在testbench的level建立activity file,在读入vcd时,通过strip_path的命令来map到design module。
read_vcd –strip_path TB/U1
PTPX进行condition power analysis,加入-time和-when的option。
如果vcd的产生由带systemverilog的语法的TB来产生,那么read_vcd –format systemverilog命令来读入vcd。
进行基于rtl的time_based的分析,命令read_vcd –rtl来设置,可以进行name_mapping和event的propagate。
进行基于gate_level的peak分析,必须加入sdf文件。
由于netlist的VCD文件都会比较大,所以PTPX工具内部支持fsdb/gzipped VCD的解压,
并且可以直接在PTPX工具内invoke simulator。
-pipe_exec “vcs –R –f arguments –l log”
Vector analysis:
用来分析high activity window。Time_based mode中high activity可能落在不同的interval,
所以可以通过-peak_window来设置,最小和最大的window来分析high activity。
write_activity_waveforms –vcd myvcd.vcd –output myvcd.out –interval 0.2 –peak_window 5
生成的myvcd.out一般都是fsdb格式的,直接通过nWave打开。
默认情况下,PTPX不会restore state_dependent和path_dependent的toggle rate,
为了在生成SAIF等文件中,能被包含进去,需要设置write_saif –sdpd_tracking。
set_case_analysis命令,将某个port设置为一个constant value,优先级低于VCD的annotation,
所以一般来设置vcd file中没有的signal,如test_enable信号。
在time_based的analysis中,
Glitch power的分析,作为一个transition分析,有自己的ratio计算方式。
Z State,只有0-Z-1,1-Z-0被认为transition,有power consume,其他的变化都不做分析。
X State,0-X作为半个transition,0-x-0也作为一个transition。默认情况下,initial的X不做分析。
由于peak analysis比较耗时,PTPX采用distribute的方式来进行multi-scenario analysis。
一个scenario是一个VCD activity file的time window,可以并行在multiple processor上来运行。
然后将结果merge到一起。
环境设置flow: