create_run - 2023.2 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2023.2 English

Define a synthesis or implementation run for the current project


create_run [‑constrset <arg>] [‑parent_run <arg>] [‑part <arg>] ‑flow <arg>
    [‑strategy <arg>] [‑report_strategy <arg>] [‑pr_config <arg>]
    [‑dfx_mode <arg>] [‑rm_instance <arg>] [‑quiet] [‑verbose] <name>


Run object


Name Description
[-constrset] Constraint fileset to use
[-parent_run] Synthesis run to link to new implementation run
[-part] Target part
-flow Flow name
[-strategy] Strategy to apply to the run
[-report_strategy] Report strategy to apply to the run
[-pr_config] partition configuration to apply to the run
[-dfx_mode] dynamic function exchange mode Default: STANDARD
[-rm_instance] reconfigurable module instance information. Format <partition cell>:<reconfigurable module>
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
<name> Name for new run




Defines a synthesis or implementation run. The attributes of the run can be configured with the use of the set_property command.


-constrset <arg> - (Optional) The constraint set to use for the synthesis or implementation run.

-parent_run <arg> - The run that defines the netlist for the current run. For netlist-based projects the -parent_run argument is not required. For an RTL sources project, the parent_run must be specified for implementation runs, but is not required for synthesis runs. For the Partial Reconfiguration flow the -parent_run can describe the synthesis run, an implementation run, or the PR configuration as specified by the -pr_config option.

-part <partName> - (Optional) The part to be used for the run. If the -part option is not specified, the default part defined for the project will be assigned as the part to use.

-flow <arg> - (Required) The tool flow and release version for the synthesis tool, for example {Vivado Synthesis 2017} or the implementation tool {Vivado Implementation 2017}.

-strategy <arg> - (Optional) The strategy to employ for the synthesis or implementation run. There are many different strategies to choose from within the tool, including custom strategies you can define. Refer to the appropriate user guide for a discussion of the available synthesis and implementation strategies. If the strategy argument is not specified, "Synthesis Defaults" or "Implementation Defaults" will be used as appropriate.

-report_strategy <arg> - (Optional) Specifies a Report Strategy that defines a collection of report objects to run at different stages of the design flow. Report objects are created with the create_report_config command. Report strategies are defined in the Settings dialog box of the Vivado™ IDE.

-pr_config <arg> - (Optional) Specifies a partition configuration to apply to the new run. Partition configurations are defined by the create_pr_configuration command. Refer to the Vivado Design Suite User Guide: Dynamic Function eXchange (UG909) for more information.

-quiet - (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.

<name> - (Required) The name of the synthesis or implementation run to be created.


The following example creates a run named synth_1 referencing the Vivado synthesis tool flow:

create_run -flow {Vivado Synthesis 2013} synth_1
Note: The defaults of sources_1, constrs_1, and the default part for the project will be used in the synthesis run. In addition, since this is a synthesis run, the -parent_run argument is not required.

The following example creates an implementation run based on the Vivado Implementation 2013 tool flow, and attaches it to the synth_1 synthesis run previously created:

create_run impl_2 -parent_run synth_1 -flow {Vivado Implementation 2013}
Note: The -parent_run argument is required in this example because it is an implementation of synthesized RTL sources.