ucb-bar / chipyard

An Agile RISC-V SoC Design Framework with in-order cores, out-of-order cores, accelerators, and more
https://chipyard.readthedocs.io/en/stable/
BSD 3-Clause "New" or "Revised" License
1.58k stars 621 forks source link

Block level per cycle power using Voltus #1262

Open wit-impulse opened 1 year ago

wit-impulse commented 1 year ago

Background Work

Feature Description

Is it possible to obtain power numbers for every cycle for a particular block. I did not find any resource to get it using the Voltus tool. Thanks.

Motivating Example

Block : System cycle 1: 10 mW cycle 2: 9.8 mW : : cycle n: 10.1mW

harrisonliew commented 1 year ago

Voltus is not really designed to give you cycle-by-cycle power, nor is any commercial power analysis tool, really. Judging from the Voltus user guide, it seems like you somewhat abuse it by setting a really short period and resolution in the set_dynamic_power_simulation command and then querying the fine-grained power data using the options like -frame, -insts, and -time_steps to the query_power_data command. In order to do this, you need to keep your input waveform very short or else the tool will run out of compute resources.

For the future - please make this issue in hammer-cadence-plugins rather than Chipyard.