The Run section of the ECO Navigator, shown in the following figure, provides access to all the commands required to implement the current changes.
- 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_designon the modified design to optimize the netlist. This command opens the Optimize Logical Design dialog box, allowing you to specify options for theopt_designcommand. Any options that are entered in the dialog box are appended to theopt_designcommand as they are typed. For example, to runopt_design -sweep, type-sweepunder Options.Figure 2. Optimize Logical Design Dialog Box
- Place Design
- For 7 series and
UltraScale families, runs incremental
place_designon the modified netlist as long as 75% or more of the placement can be reused. The Incremental Placement Summary at the end ofplace_designprovides statistics on incremental reuse. Selecting this command opens the Place Design dialog box and allows you to specify options for theplace_designcommand. Any options that are entered in the dialog box are appended to theplace_designcommand as they are typed.Refer to Incremental Implementation for additional information on Incremental Place and Route.
For Versal,
place_design -ecocommand invokes the ECO placer. By default, it supports timing driven mode. To invoke the non-timing driven mode, an extra switch-no_timing_drivenis 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 -ecoFor non timing driven mode use:
place_design -eco -no_timing_drivenFigure 3. Place Design Dialog BoxTo 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 ReportThe 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:
- Optimize Physical Design
- In some cases it is desirable to run
phys_opt_designon 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 thephys_opt_designcommand. Any options that are entered in the dialog box are appended to thephys_opt_designcommand as they are typed. For example, to runphys_opt_design -fanout_opt, type-fanout_optunder Options.
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.
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.
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
-ecofor timing driven flow - route_design
-eco -no_timing_drivenfor non-timing driven flow
To better understand the impact of the router, see the ECO Routing Report available from the vivado.log file.
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)