Using Other route_design Options - 2023.1 English

Vivado Design Suite User Guide: Implementation (UG904)

Document ID
UG904
Release Date
2023-05-16
Version
2023.1 English

Following are more details on the route_design options and option values where applicable.

-nets
This limits operation to only the list of nets specified. The option requires an argument that is a Tcl list of net objects. Note that the argument must be a net object, the value returned by get_nets, as opposed to the string value of the net names.
-pins
This limits operation only to the specified pins. The option requires an argument, which is a Tcl list of pin objects. Note that the argument must be a pin object, the value returned by get_pins, as opposed to the string value of the pin names.
-delay
By default, the router routes individual nets and pins with the fastest run time, using available resources without regard to timing criticality. The -delay option directs the router to find the route with the smallest possible delay.
-min_delay and -max_delay
These options can be used only with the pin option and to specify a desired target delay in picoseconds. The -max_delay option specifies the maximum desired slow-max corner delay for the routing of the specified pin. Similarly the -min_delay option specifies the minimum fast-min corner delay. The two options can be specified simultaneously to create a desired delay range.
-auto_delay
Use with -nets or -pins option to route in timing constraint-driven mode. Timing budgets are automatically derived from the timing constraints so this option is not compatible with -min_delay, -max_delay, or -delay.
-preserve
This option routes the entire design while preserving existing routing. Without -preserve, the existing routing is subject to being unrouted and re-routed to improve critical-path timing. This option is most commonly used when "pre-routing" critical nets, that is, routing certain nets first to ensure that they have best access to routing resources. After achieving those routes, the -preserve option ensures they are not disrupted while routing the remainder of the design. Note that -preserve is completely independent of the FIXED_ROUTE and IS_ROUTE_FIXED net properties. The route preservation lasts only for the duration of the route_design operation in which is it used. The -preserve option can be used with -directive, with one exception, the -directive Explore option, which modifies placement, which in turn modifies routing.
-unroute
The -unroute option removes routing for the entire design or for nets and pins, when combined with the nets or pin options. The option does not remove routing for nets with FIXED_ROUTE properties. Removing routing on nets with FIXED_ROUTE properties requires the properties to be removed first.
-timing_summary
The router outputs a final timing summary to the log, based on its internal estimated timing which might differ slightly from the actual routed timing due to pessimism in the delay estimates. The -timing_summary option forces the router to call the Vivado static timing analyzer to report the timing summary based on the actual routed delays. This incurs additional run time for the static timing analysis. The -timing_summary is ignored when the -directive Explore option is used.

When the -directive Explore option is used, routing always calls the Vivado static timing analyzer for the most accurate timing updates, whether or not the -timing_summary option is used.

-tns_cleanup
For optimal run time, the router focuses on improving the Worst Negative Slack (WNS) path as opposed to reducing the Total Negative Slack (TNS). The -tns_cleanup option invokes an optional phase at the end of routing, during which the router attempts to fix all failing paths to reduce the TNS. Consequently, this option might reduce TNS at the expense of run time but might not affect WNS. Use the -tns_cleanup option during routing when you intend to follow router runs with post-route physical optimization. Use of this option during routing ensures that physical optimization focuses on the WNS path and that effort is not wasted on non-critical paths that can be fixed by the router. Running route_design -tns_cleanup on an already routed design only invokes the TNS cleanup phase of the router and does not affect WNS (TNS cleanup is re-entrant). This option is compatible with -directive.
-physical_nets
The -physical_nets option operates only on logic 0 and logic 1 routes. The option covers all logic constant values in the design and is compatible with the -unroute option. Because constant 0 and 1 tie-offs in the physical device have no exact correlation to logical nets, these nets cannot be routed and unrouted reliably using the -nets and -pins options.
-ultrathreads
This option shortens router runtime at the expense of repeatability. With -ultrathreads, the router runs faster but there is a very small variation in routing between identical runs.
-release_memory
After router initialization, router data is kept in memory to ensure optimal performance. This option forces the router to delete its data from memory and release the memory back to the operating system. This option should not be required for mainstream use and is provided in case router memory must be manually managed, for example, with extremely large designs.
-finalize
When routing interactively you can specify route_design -finalize to complete any partially routed connections.

For UltraScale+ designs, this step is required if placement and routing of registers was changed as part of an ECO task.

-no_timing_driven
This option disables timing-driven routing and is used primarily for testing the routing feasibility of a design.
-eco
This option is used with incremental mode to get a shorter runtime after some ECO modifications to the design while keeping the routability and timing closure.