Creating an Intelligent Design Run - 2023.2 English

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

Document ID
Release Date
2023.2 English

The intelligent design run (IDR) is created from a standard implementation run. In the Design Runs window, right-click on the implementation run and select Close Timing using Intelligent Design Runs as shown in the following figure.

Figure 1. Close Timing Using Intelligent Design Runs Command

The equivalent Tcl commands to create an intelligent design run are as follows:
create_run -flow {Vivado IDR Flow 2021} -parent_run <synth runName> <idr runName>
set_property REFERENCE_RUN impl_1 [get_runs <idr runName>]

The REFERENCE_RUN property is used to copy Tcl hooks from an implementation run. Tcl hooks are applied at each implementation phase of the run. For example, if there is a pre-opt_design Tcl hook, it is executed every time before the opt_design command is called. This property is examined when the run is reset, so subsequent changes to the implementation run Tcl hooks are picked up. If you wish to add a Tcl hook to an IDR, first create an implementation run, add the Tcl hook, then create a new IDR.

Note: Pre- and post- init_design Tcl hooks are not currently supported.

Because directives are controlled by the IDR, there is no value in creating an IDR from a run that has an identical netlist, identical constraints, and identical Tcl hooks. There is consequently a restriction where only one IDR can be created from any given implementation run. If more IDRs are desired, alter the synthesis options to create a different netlist or modify the floorplan.

Note: It is not possible to create an IDR run directly from a synthesis run.