--vivado Options - --vivado Options - 2026.1 English - UG1702

Vitis Reference Guide (UG1702)

Document ID
UG1702
Release Date
2026-06-23
Version
2026.1 English

You can use the –-vivado.XXX options to configure Vivado tools for synthesis and implementation of your device binary (.xclbin). For instance, you can specify the number of jobs to spawn, LSF commands to use for implementation runs, or the specific implementation strategies to use. You can also configure optimization, placement, timing, or specify which reports to output.

Important: You need to be familiar with the Vivado Design Suite to make the best use of these options. See the Vivado Design Suite User Guide: Implementation (UG904) for more information.

--vivado.impl.jobs

--vivado.impl.jobs <arg>

Specifies the number of parallel jobs the Vivado Design Suite uses to implement the device binary. Increasing the number of jobs allows the Vivado implementation step to spawn more parallel processes and complete faster jobs.

For example:

v++ --link --vivado.impl.jobs 4

--vivado.impl.lsf

--vivado.impl.lsf <arg>

Specifies the bsub command line as a string to pass to an LSF cluster. The IBM Platform Load Sharing Facility (LSF) for Vivado implementation uses this option.

For example:

v++ --link --vivado.impl.lsf '{bsub -R \"select[type=X86_64]\" -N -q medium}'

--vivado.impl.strategies

--vivado.impl.strategies <arg>

Specifies a comma-separated list of strategy names for Vivado implementation runs. Use ALL to run all available implementation strategies. You can run a variety of implementation strategies at the same time during the build process and quickly resolve timing or routing issues.

Important: Running ALL implementation strategies can launch 30 or more runs in the Vivado tool. This can be a tremendous drain on resources, and is not advised. You can prevent this by defining a set of strategies to run, and using a command queue to distribute the process load in some managed way, such as through the --vivado.impl.jobs or the --vivado.impl.lsf commands.

--vivado.param

--vivado.param <arg>

Specifies parameters for the Vivado Design Suite for the synthesis and implementation of the FPGA binary (xclbin).

Tip: You can use the report_param Tcl command in Vivado to identify the available parameters.

--vivado.prop

--vivado.prop <arg>

Specifies properties for the Vivado Design Suite for synthesis and implementation of the FPGA binary (xclbin).

Table 1. Prop Options
Property Name Valid Values Description
vivado.prop <object_type>.<object_name>.<prop_name> Type: Various This allows you to specify any property used in the Vivado hardware compilation flow.

<object_type> is run|fileset|file|project.

The <object_name> and <prop_name> values are described in Vivado Design Suite Properties Reference Guide (UG912).

Examples:
vivado.prop run.impl_1.
{STEPS.PLACE_DESIGN.ARGS.MORE 
OPTIONS}={-no_bufg_opt}
vivado.prop fileset.
current.top=foo

If <object_type> is set to file, current is not supported.

If <object type> is set to run, the special value of __KERNEL__ can be used to specify run optimization settings for ALL kernels, instead of the need to specify them one by one.

For example, from the command line:

v++ --link --vivado.prop run.impl_1.STEPS.PHYS_OPT_DESIGN.IS_ENABLED=true
--vivado.prop run.impl_1.STEPS.PHYS_OPT_DESIGN.ARGS.DIRECTIVE=Explore
--vivado.prop run.impl_1.STEPS.PLACE_DESIGN.TCL.PRE=/…/xxx.tcl
The example above enables the optional PHYS_OPT_DESIGN step as part of the Vivado implementation process, sets the Explore directive for that step, and specifies a Tcl script to run before the PLACE_DESIGN step.
Tip: Each step in the Vivado synthesis and implementation process can have a Tcl prescript to run before the step, and a Tcl postscript to run after the step. This lets you customize the build process by inserting pre-processing or post-processing Tcl commands around the different steps. These scripts can be specified as shown in the example above.

You can also specify these options in a configuration file under the [vivado] section using the following format.

[vivado]
prop=run.impl_1.STEPS.PHYS_OPT_DESIGN.IS_ENABLED=true
prop=run.impl_1.STEPS.PHYS_OPT_DESIGN.ARGS.DIRECTIVE=Explore
prop=run.impl_1.STEPS.PLACE_DESIGN.TCL.PRE=/…/xxx.tcl
Important: Some Vivado properties have spaces in their name, such as MORE OPTIONS and Tcl syntax requires these properties to be enclosed in braces, {}. However, the placement of the braces in the --vivado options is important. You must surround the complete property name with braces, rather than a portion of it. For instance, the correct placement is as follows.
--vivado.prop run.impl_1.{STEPS.PLACE_DESIGN.ARGS.MORE OPTIONS}={-no_bufg_opt}
The following code can cause an error during the build process:
--vivado.prop "run.impl_1.{STEPS.PLACE_DESIGN.ARGS.MORE OPTIONS}={-no_bufg_opt}"

--vivado.synth.jobs

--vivado.synth.jobs <arg>

Specifies the number of parallel jobs the Vivado Design Suite uses to synthesize the device binary. Increasing the number of jobs allows the Vivado synthesis to spawn more parallel processes and complete faster jobs.

For example:

v++ --link --vivado.synth.jobs 4

--vivado.synth.lsf

--vivado.synth.lsf <arg>

Specifies the bsub command line as a string to pass to an LSF cluster. The IBM Platform Load Sharing Facility (LSF) for Vivado synthesis requires this option.

For example:

v++ --link --vivado.synth.lsf '{bsub -R \"select[type=X86_64]\" -N -q medium}'