Available Logic Optimizations - 2023.1 English

Vivado Design Suite User Guide: Implementation (UG904)

Document ID
UG904
Release Date
2023-05-16
Version
2023.1 English

The Vivado tools can perform the logic optimizations on the in-memory design.

Important: Logic optimization can be limited to specific optimizations by choosing the corresponding command options. Only those specified optimizations are run, while all others are disabled, even those normally performed by default.

The following table describes the order in which the optimizations are performed when more than one option is selected. This ordering ensures that the most efficient optimization is performed.

Table 1. Optimization Ordering for Multiple Options
Phase Name Option Default
1 Retargeting -retarget X
2 Constant Propagation -propconst X
3 Sweep -sweep X
4 1 Mux Optimization -muxf_remap  
5 1 Carry Optimization -carry_remap  
6 Control Set Merging -control_set_merge  
7 Equivalent Driver Merging -merge_equivalent_drivers  
8 BUFG Optimization -bufg_opt X
9 Shift Register Optimization -shift_register_opt X
10 MBUFG Optimization -mbufg_opt  
11 DSP Register Opt -dsp_register_opt  
12 Control Set Reduction (property controlled) X
13 Module-Based Fanout Opt -hier_fanout_limit <arg>  
14 Remap -remap  
15 Resynth Remap -resynth_remap  
16 Resynth Area -resynth_area  
17 Resynth Sequential Area -resynth_seq_area  
18 Block RAM Power Opt -bram_power_opt X
  1. Phase 4 and 5 are not supported for Versal. Phase 10 is only supported for Versal.

When an optimization is performed on a primitive cell, the OPT_MODIFIED property of the cell is updated to reflect the optimizations performed on the cell. When multiple optimizations are performed on the same cell, the OPT_MODIFIED value contains a list of optimizations in the order they occurred. The following table lists the OPT_MODIFIED property value for the various opt_design options:

Table 2. Optimization Options and Values
opt_design Option OPT_MODIFIED Value
-bufg_opt BUFG_OPT
-carry_remap CARRY_REMAP
-control_set_merge CONTROL_SET_MERGE
-hier_fanout_limit HIER_FANOUT_LIMIT
-merge_equivalent_drivers MERGE_EQUIVALENT_DRIVERS
-muxf_remap MUXF_REMAP
-propconst PROPCONST
-remap REMAP
-resynth_remap REMAP
-resynth_area RESYNTH_AREA
-resynth_seq_area RESYNTH_AREA
-retarget RETARGET
-shift_register_opt SHIFT_REGISTER_OPT
-sweep SWEEP