Skip to content

[Power] Refine power estimation flow and add power evaluation flow #718

Open
qianxu1998 wants to merge 24 commits intoEPFL-LAP:mainfrom
qianxu1998:power_analysis
Open

[Power] Refine power estimation flow and add power evaluation flow #718
qianxu1998 wants to merge 24 commits intoEPFL-LAP:mainfrom
qianxu1998:power_analysis

Conversation

@qianxu1998
Copy link
Collaborator

@qianxu1998 qianxu1998 commented Jan 27, 2026

Summary

  • Move and expand the estimate-power flow into tools/dynamatic/power, add Verilog support, stage selection (pre/post), and optional post-synthesis netlist generation for higher-accuracy SAIF generation.
  • Add a new evaluate-power flow (frontend command + Python + TCL template) that builds and optionally runs a Vivado XSim-based power evaluation script; supports synth/impl stages and optional hierarchy flattening. For now this is Verilog-only, and produces both functional and timing power reports per stage.
  • Plumb the configured clock period into the simulation/testbench path so timing simulation and SAIF generation use the correct clock period.

Script details

  • tools/dynamatic/power/estimate_power.py
    • Args: --output_dir, --kernel_name, --hdl (vhdl|verilog), --synth (pre|post), --cp, --vivado_cmd
    • Behavior: generates period.xdc, Modelsim .do, optional pre-synth via Vivado, then report_power.tcl using SAIF from simulation.
  • tools/dynamatic/power/power_eval.py
    • Args: --output_dir, --kernel_name, --hdl (verilog|verilog-beta|vhdl), --stage (synth|impl), --flatten_hierarchy, --cp, --vivado_cmd, --no-run
    • Behavior: emits power_extraction.tcl to run XSim, dump SAIF/VCD, and generate power reports; runs Vivado unless --no-run is set.

Usage (Dynamatic Frontend)

# estimate-power
estimate-power --hdl verilog --synth pre

# evaluate-power (Verilog backend only)
evaluate-power --hdl verilog --stage impl --flatten-hierarchy 1

@qianxu1998 qianxu1998 requested a review from murphe67 January 27, 2026 23:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant