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 Remap |
-resynth_remap
|
|
16 | Resynth Area |
-resynth_area
|
|
17 | Resynth Sequential Area |
-resynth_seq_area
|
|
18 | 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_remap
|
REMAP |
-resynth_area
|
RESYNTH_AREA |
-resynth_seq_area
|
RESYNTH_AREA |
-retarget
|
RETARGET |
-shift_register_opt
|
SHIFT_REGISTER_OPT |
-sweep
|
SWEEP |