Run Section - Run Section - 2025.2 English - UG904

Vivado Design Suite User Guide: Implementation (UG904)

Document ID
UG904
Release Date
2025-11-20
Version
2025.2 English

The Run section of the ECO Navigator, shown in the following figure, provides access to all the commands required to implement the current changes.

Figure 1. ECO Navigator Run Commands

Check ECO
Runs the ECO checks rule deck on the current design.
Tip: The Vivado tools allow you to make netlist changes unconditionally using the ECO commands. However, logical changes can lead to invalid physical implementation. Run the Check ECO function to flag any invalid netlist changes or new physical restrictions that need to be addressed before physical implementation can commence.
Optimize Logical Design
In some cases, it is desirable to run opt_design on the modified design to optimize the netlist. This command opens the Optimize Logical Design dialog box, allowing you to specify options for the opt_design command. Any options that are entered in the dialog box are appended to the opt_design command as they are typed. For example, to run opt_design -sweep, type -sweep under Options.
Figure 2. Optimize Logical Design Dialog Box

Place Design
For 7 series and UltraScale families, runs incremental place_design on the modified netlist as long as 75% or more of the placement can be reused. The Incremental Placement Summary at the end of place_design provides statistics on incremental reuse. Selecting this command opens the Place Design dialog box and allows you to specify options for the place_design command. Any options that are entered in the dialog box are appended to the place_design command as they are typed.

Refer to Incremental Implementation for additional information on Incremental Place and Route.

For Versal, place_design -eco command invokes the ECO placer. By default, it supports timing driven mode. To invoke the non-timing driven mode, an extra switch -no_timing_driven is used. The ECO placer attempts to locate newly added cells close to their connections and in some cases may need to move placed cells aside to accommodate them. The addition of new cells is limited to 1% of the design utilization and to the addition of Flops and LUTs. For DFX designs, ECO edits are allowed in child implementation within the reconfigurable module. Static modifications are not supported.

The following snapshot shows how to trigger ECO Placer in the GUI mode. To run in non- timing driven mode, uncheck the timing-driven mode box. The Tcl command to invoke ECO placer is as follows:

place_design -eco

For non timing driven mode use:

place_design -eco -no_timing_driven

Figure 3. Place Design Dialog Box

To better understand the impact of the placer, see the ECO Placement Report available from the vivado.log file.ECO Placement Report

Figure 4. ECO Placement Report

The entries in the preceding table are as follows:

Logical Cells
Total number of cells in the design. Logical cells = Placed + Unplaced
Placed
Number of instances placed at the completion of the ECO Placer (including the preserved instances)
Unplaced
Number of instances unplaced at the completion of the ECO Placer
ECO Placed
Number of unplaced cells that got placed by the ECO Placer
ECO Replaced
Number of originally placed cells that are replaced by the ECO Placer
ECO Preserved
Number of cells that are not touched by the ECO Placer

The ECO placer generates a separate text file, eco_placer_modified_cellInfo.txt to capture the original cell movement referenced in the ECO Replaced entry of the ECO Placement Report. The snapshot of the text file is as follows:

Generated by Your Tool
Optimize Physical Design
In some cases it is desirable to run phys_opt_design on the modified design to perform physical optimization on the netlist. This command opens the Optimize Physical Design dialog box and allows you to specify options for the phys_opt_design command. Any options that are entered in the dialog box are appended to the phys_opt_design command as they are typed. For example, to run phys_opt_design -fanout_opt, type -fanout_opt under Options.
Figure 5. Optimize Physical Design Dialog Box

Refer to Incremental Implementation for additional information on Incremental Place and Route.

Depending on your selection, you have four options to route the ECO changes:

Incremental Route
This is the default option.
Route selected pin
This option limits the route operation to the selected pin.
Route selected non-Power nets
This option routes only the selected signal nets.
Route selected Power nets
This option routes only the selected VCC/GND nets.

For Versal, route_design -eco command invokes the ECO router flow. It supports both timing driven and non timing driven modes. Use the finalize_eco command to ensure valid placement before calling the ECO router flow. Invalid site configurations resulting from ECO changes are fixed by finalize_eco. It also incrementally updates the clock network if the movement of cells is within the clock expansion window. It generates a separate text file, finalize_eco_modified_cellInfo.txt to capture the cells moved by finalize_eco to fix illegal site configurations.

Generated by Your Tool

If the ECO operation adds new cells, finalize_eco is not required and you can run place_design -eco to place the cells before routing. Otherwise, run finalize_eco before route_design -eco.

In the GUI, when you click finalize_eco, a dialog appears to verify whether place_design -eco has already run. Click OK to continue the finalize_eco flow.

Figure 6. Finalize Eco Dialog Box

The following figure shows how to trigger the ECO Router in the GUI. To run in non–timing-driven mode, clear the Timing-driven mode checkbox. Invoke the ECO Router with the following Tcl command:

  • route_design -eco for timing driven flow
  • route_design -eco -no_timing_driven for non-timing driven flow
Figure 7. Route Design Dialog Box

To better understand the impact of the router, see the ECO Routing Report available from the vivado.log file.

Figure 8. ECO Routing Report

The entries in the preceding table are described as follows:

Total Routed
Total number of nets routed in the design, including both original and ECO-modified nets
Total Unrouted
Number of nets unrouted in the design.
ECO Routed
Number of nets routed by ECO router that were added or modified through ECO operations.
ECO Unrouted
Number of nets that failed to route by the ECO router that were added or modified through ECO operations.
Partially Rerouted
Number of nets that were not involved in ECO operations, which were partially impacted when finding a legal solution.
Fully Rerouted
Number of nets that were not involved in ECO operations, which were fully impacted when finding a legal solution.
Untouched
Number of reused nets from the previous routing solution.

After running the ECO flow, store the changes to a new checkpoint, write new programming and debug probe files, and open the Hardware Manager to program your device.

ECO Flow Analysis

Use the following reports to analyze the ECO flow. Run report_place_status after ECO edits to check for unplaced cells and illegal site configurations, then run finalize_eco to fix any violations. Use report_route_status to assess routing after ECO edits and to see the number of unrouted or affected nets. If report_place_status reports no unplaced cells and no illegal site configurations, run the ECO Router to route the affected nets. For more details on these reports, see Vivado Design Suite Tcl Command Reference Guide (UG835)