Step 5: Running Incremental Compile - 2023.2 English

Vivado Design Suite Tutorial: Programming and Debugging (UG936)

Document ID
Release Date
2023.2 English

In the previous steps, you have updated the design with debug changes. You could run implementation on the new netlist, to place and route the design and work to meet the timing requirements. However, with only minor changes between this iteration and the last, the incremental compile flow lets you reuse the bulk of your prior debug, placement and routing efforts. This can reduce the time it takes to meet timing on design iterations. For more information, refer to Vivado Design Suite User Guide: Implementation (UG904).

  1. Start by defining the design checkpoint (DCP) file to use as the reference design for the incremental compile flow. This is the design from which the Vivado Design Suite draws placement and routing data.
  2. In the Design Runs window, right-click the impl_2 run and select Set Incremental Implementation from the popup menu. The Set Incremental Implemenation dialog box opens.
  3. Select Automatically use the checkpoint from the previous run.
  4. Click OK. This information is stored in the INCREMENTAL_CHECKPOINT property of the selected run. Setting this property tells the Vivado Design Suite to run the incremental compile flow during implementation.
  5. You can check this property on the current run using the following Tcl command:
    get_property INCREMENTAL_CHECKPOINT [current_run]

    This returns the full path to the top_routed.dcp checkpoint.

    Tip: To disable Incremental Compile for the current run, clear the INCREMENTAL_CHECKPOINT property. This can be done using the Set Incremental Compile dialog box, or by editing the property directly through the Properties window of the design run, or through the reset_property command.
  6. From the Flow Navigator, select Run Implementation.

    This runs implementation on the current run, using the top_routed.dcp file as the reference design for the incremental compile flow. When the run is finished, the Implementation Completed dialog box opens.

  7. Select Open Implemented Design and click OK. As shown in the following figure, the Design Runs window shows the elapsed time for implementation run impl_2 versus impl_1.

    Note: This is an extremely small design. The advantages of the incremental compile flow are greater and significant with larger, more complex designs.
  8. Select the Reports tab in the Results window area and under Place Design, double-click Incremental Reuse Report as shown in the following figure.

    The Incremental Reuse Report opens in the Vivado IDE text editor. This report shows the percentage of reused Cells, Ports, and Nets. A higher percentage indicates more effective reuse of placement and routing from the incremental checkpoint.

    In the report, fully reused nets indicate that the entire routing of the nets is reused from the reference design. Partially reused nets indicate that some of the routing of the nets reuses routing from the reference design. Some segments re-route due to changed cells, changed cell placements, or both. Non-reused nets indicate that the net in the current design is not matched in the reference design.