Creating an Intelligent Design Run - 2025.2 English - UG906

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

Document ID
UG906
Release Date
2025-12-10
Version
2025.2 English

The intelligent design run (IDR) is created from a standard implementation run.

  1. In the Design Runs window, right-click the implementation run.
  2. Select Close Timing using Intelligent Design Runs.
Figure 1. Close Timing Using Intelligent Design Runs Command

The equivalent Tcl command options 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>]

You can create only one IDR run from a given implementation run. To create another, delete the first or create a second implementation run and generate the IDR from that run.

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

Use the following steps to add a Tcl hook to an IDR:

  1. Create an implementation run.
  2. Add the Tcl hook.
  3. 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.