Strategy Suggestions - 2021.2 English

Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906)

Document ID
Release Date
2021.2 English

Strategy suggestions are a special type of suggestion. They set implementation directives that are optimal for the design. They are reported in the IDE but can only be generated via Tcl and are applicable only to the implementation runs. The prediction is based off the netlist features and so the synthesis settings should be the same in the strategy runs as they were in the reference run. The flow is shown in the following figure:

Figure 1. Strategy Suggestion Flow

As shown in the previous figure, there are four key points to this flow.

Firstly report_qor_suggestions should be run on a fully routed design that is generated using either Default or Explore directives. For complete details about the requirements, see ML Strategy Availability.

Secondly, write_qor_suggestions -strategy_dir <dir> generates Tcl and RQS files in the directory specified. By default, three strategies are generated. For each strategy generated, a single RQS file contains all the suggestion objects as well as the strategy suggestions object. The RQS file specified using write_qor_suggestions -file <fn>.rqs can be discarded as the information is replicated in each strategy RQS file.

Note: To generate more strategies, increase the number using:

report_qor_suggestions -max_strategies <n>.

Thirdly the generated RQS file must be read in to the new implementation run.

Finally, the directive RQS must be set and the script must contain a call to opt_design, place_design, phys_opt_design and route_design. The RQS directive instructs the tools to reference the suggestion.

In project mode, source the project based Tcl script. This will automatically create a new run based on the existing run, setup the RQS file to be read and adjust the directives.

In non-project mode, an example Tcl script is provided. This shows how the RQS file must be read and the directives for the implementation commands set to RQS. These scripts are intended to be an example on a design loaded into memory in the pre-opt_design stage. They do not contain any reporting or writing of checkpoints.