power_opt_design - 2024.1 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2024.1 English

Optimize dynamic power using intelligent clock gating


power_opt_design [‑quiet] [‑verbose]


Name Description
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution




Optimizes the dynamic power consumption of the design by changing clock gating to take advantage of clock enable on a flop. Clock gating optimizations are automatically performed on the entire design to improve power consumption while making no changes to the existing logic or the clocks that would alter the behavior of the design.

You can configure the power optimization to include or exclude specific cells using the set_power_opt command.

Note: Block RAM power optimizations are performed by default with the opt_design command. You can disable block RAM optimization by changing the defaults of opt_design, or by excluding specific cells from optimization using the set_power_opt command.

You can also use the read_saif command prior to optimization, and power_opt_design will consider the activity data while optimizing the design.

You can run power optimization after synthesis, or after placement. When run before placement, this command optimizes the design to save power. When run after placement, this command optimizes the design to save power while preserving timing. Running after placement limits the optimizations available to the power_opt_design command. To achieve the best results, the command should be run prior to placement.


-quiet - (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.


The following example performs power optimization of the open design:


This example optimizes the design, excluding the Block RAM power optimization by specifying the optimizations to run, and then runs power optimization on the design:

opt_design -retarget -propconst -sweep