Power optimization works to minimize the impact on timing while maximizing power savings. However, in certain cases, if timing degrades after power optimization, you can employ a few techniques to offset this impact.
Where possible, identify and apply power optimizations only on
non-timing critical clock domains or modules using the set_power_opt
XDC command. If the most critical clock domain happens
to cover a large portion of the design or consumes the most power, review critical
paths to see if any cells in the critical path were optimized by power optimization.
Note that objects optimized by power optimization have an IS_CLOCK_GATED property on
them. Exclude these cells from power optimization. To locate clock gated cells, you
can use the following Tcl command:
get_cells -hier -filter {IS_CLOCK_GATED==1}
You can use the Find dialog box to locate these cells as shown in the following figure.
A simpler alternative is to limit power optimization to block RAMs.
This minimizes the timing impact but its effectiveness is dependent on the number of
block RAMs present in the design and how effectively they have been gated. To limit
power optimization to block RAMs, run a set_power_opt
-cell_types {bram}
command before running the opt_design
or power_opt_design
commands.