The block-level flow supports some of the predefined strategies that are in the
tool as well. The strategies that are allowed are: DEFAULT
,
AREA_OPTIMIZED
, ALTERNATE_ROUTABILITY
, and
PERFORMANCE_OPTIMIZED
. The XDC constraint syntax is as follows:
set_property BLOCK_SYNTH.STRATEGY {<value>} [get_cells <inst_name>]
The following table lists the supported Vivado Block synthesis settings.
Option | Type | Values | Description |
---|---|---|---|
RETIMING | INTEGER | 0/1 |
|
ADDER_THRESHOLD | INTEGER | 4-128 | Changes the threshold for the size of an adder for synthesis to infer
in a CARRY chain.
|
COMPARATOR_THRESHOLD | INTEGER | 4-128 | Changes the threshold for the size of a comparator for synthesis to
infer in a CARRY chain.
|
SHREG_MIN_SIZE | INTEGER | 3-32 | Changes the threshold for the size of a register chain before synthesis
infers SRL primitives.
|
FSM_EXTRACTION | STRING |
OFF ONE_HOT SEQUENTIAL GRAY JOHNSON AUTO |
Sets the encodings of state machines that the synthesis tool infers. |
LUT_COMBINING | INTEGER | 0/1 |
|
CONTROL_SET_THRESHOLD | INTEGER | 0-128 | Controls the fanout needed on control signals before synthesis infers
registers with control signals.
|
MAX_LUT_INPUT | INTEGER | 4-6 |
|
MUXF_MAPPING | INTEGER | 0/1 |
|
KEEP_EQUIVALENT_REGISTER | INTEGER | 0/1 |
|
PRESERVE_BOUNDARY | INTEGER | Any number | This option can be used with incremental synthesis. It is used to mark hierarchies that are known to change. Using this option can make the hierarchy static and allow the incremental flow to work. The value given does not matter because having this option set is sufficient. |
LOGIC_COMPACTION | INTEGER | 1 | Arranges CARRY chains and LUTs in such a way that it makes the logic more compact using fewer SLICES. |
SRL_STYLE | STRING |
REGISTER SRL SRL_REG REG_SRL REG_SRL_REG |
Sets the default implementation for inferred SRLs. |