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.
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 Area |
-resynth_area
|
|
16 | Resynth Sequential Area |
- resynth_seq_area
|
|
17 | Block RAM Power Opt |
-bram_power_opt
|
X |
|
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:
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_area
|
RESYNTH_AREA |
-resynth_seq_area
|
RESYNTH_AREA |
-retarget
|
RETARGET |
-shift_register_opt
|
SHIFT_REGISTER_OPT |
-sweep
|
SWEEP |