根據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: