create_rqs_runs - 2023.2 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
Release Date
2023.2 English

Create ML Strategy implementation runs


create_rqs_runs [‑reference_run <arg>] [‑quiet] [‑verbose]


Name Description
[-reference_run] Reference implementation run name
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution




This command is used to create up to 3 implementation runs using ML Strategies that are selected based on an analysis of critical features in a reference design run.

This command can only be used in Project mode implementation runs and for the Ultrascale, Ultrascale+, and Versal families. Refer to the Examples section for usage on both the project and non-project use-cases for using ML Strategies.

It is a second step in a two-step process, where

  • step one create the ML Strategy RQS files.
  • step two create the implementation runs and reference the RQS files.

This command copies any required properties such as Tcl hooks from the -reference_run, reference the RQS file containing the strategy, and set up the directives to use RQS. It requires ML Strategy RQS files to be present at the location.



-reference_run <arg> - (Required) A reference implementation run object which has RQS strategy files generated in the <run_name>/MLStrategy folder.

-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.


The following command creates ML Strategy RQS files after a run is completed from within a project.

generate_ml_strategies [get_runs impl_1] -suggestions_filter {APPLIED || Category==Strategy}

The following example generate the ML strategies during the implementation run, by either turning on the AUTO_RQS feature or adding a Tcl hook script to the post route phase. AUTO_RQS will collect other category QoR Suggestions. For more control over the other suggestions collected, use the Tcl hook option and modify the filter command.

  1. To enable AUTO_RQS
    set_property AUTO_RQS 1 [get_runs impl_1]
  2. Alternatively, add the following commands into the Tcl file and modify the filter as required.
    report_qor_suggestions write_qor_suggestions -strategy_dir ./MLStrategy -of_objects [get_qor_suggestions -filter {APPLIED || Category == Strategy}]
  3. Add the Tcl file to the post route Tcl hook.
    import_files -fileset utils_1 post_route.tcl set_property STEPS.ROUTE_DESIGN.TCL.POST [ get_files post_route.tcl -of [get_fileset utils_1] ] [get_runs impl_1]

The following command create new runs and configure them to use the strategy, whenever ML Strategies are generated.

create_rqs_runs -reference_run [get_runs impl_1]
Note: It is recommended to run three ML Strategies per design to maximize timing improvement and smooth out variations.

For non-project users, the following commands generate ML strategy suggestions and writes them to an RQS file in ./MLStrategy directory.

 write_qor_suggestions -strategy_dir ./MLStrategy -of_objects [get_qor_suggestions -filter {APPLIED || Category == Strategy}]

The following example shows the equivalent non-project based commands to reference the RQS strategies.

<insert after link design or open checkpoint>
read_qor_suggestions ./MLStrategy/<top>_routedSuggestionFile[1||2||3].rqs
opt_design -directive RQS
place_design -directive RQS
phys_opt_design -directive RQS
route_design -directive RQS