find_routing_path - 2020.2 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
UG835
Release Date
2020-11-18
Version
2020.2 English

Find a routing path between two nodes.

Syntax

find_routing_path [‑allow_overlap] [‑max_nodes <arg>] [‑min_nodes <arg>]
    [‑from <args>] [‑to <args>] [‑quiet] [‑verbose]

Usage

Name Description
[-allow_overlap] Solution may include nodes used in existing routes.
[-max_nodes] Specifies the maximum number of nodes (including from and to nodes) allowed in solution. Default: 100
[-min_nodes] Specifies the minimum number of nodes (including from and to nodes) allowed in solution. Default: 2
[-from] -from <start node> Start of routing path.
[-to] -to <end node> End of routing path.
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution

Categories

Object

Description

Finds a routing solution between two nodes on an unrouted, or partially routed net, in an implemented design.

This command can be used to define a routing path to assign to the FIXED_ROUTE property of a net, which can be saved to the XDC file for later reuse. Refer to Vivado Design Suite Tutorial: Implementation (UG986) for an example of manual routing and the use of the FIXED_ROUTE property.

You must define nodes for the start and end points of the routing path, and can specify the maximum and minimum number of nodes to use for the route path, including the start and end points. The nodes must be specified as objects returned by the get_nodes command. For unrouted net objects, since nodes have not been assigned to the net, the nodes can be found by association of the net to the bel_pin or site_pin:
  • Net > Bel_Pin > Bel > Tile > Node
  • Net > Site_Pin > Tile > Node

For partially routed nets, the nodes can be found associated directly to the net. Refer to the Vivado Design Suite Properties Reference Guide (UG912) for more information on the relationship between these objects.

The find_routing_path command returns a list of nodes representing the route path found from the start point to the end point, or returns "no path found" if the command runs but has no result, or returns an error if the command fails to run.

The returned list of nodes can be assigned to the FIXED_ROUTE property using the set_property command as shown in the example.
Tip: The report_property command does not return the string of the FIXED_ROUTE property. Use the get_property command instead.

Arguments

-allow_overlap - (Optional) Enable a loose style of routing which can create conflicts that must be later resolved. These overlapping routes will need to be cleaned up to eliminate routing conflicts. Route conflicts can be identified using the report_route_status command.

-max_nodes <arg> - (Optional) Indicates the maximum number of nodes the route can contain, including the -from node and the -to node. The default is 100.

-min_nodes <arg> - (Optional) Indicates the minimum number of nodes the route can contain, including the -from node and the -to node. The default is 2, and the value specified must be >= 2.
Tip: This option can be used to generate a meandering route that will provide some added timing delay.

-from <arg> - (Optional) The starting node of the route path. Nodes must be specified as objects returned by the get_nodes command.

-to <arg> - (Optional) The ending node of the route path. Nodes must be specified as objects returned by the get_nodes command.

-quiet - (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose - (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.

Examples

The following example finds a routing path for the specified net, using one end as the -from point and the other end as the -to point, and assigns that path to the specified Tcl variable. Then it uses that Tcl variable to assign the path to the FIXED_ROUTE property of the net:
set fndPath [find_routing_path -from [lindex [get_nodes -of \  
   [get_site_pins -of [get_nets wbOutputData_OBUF[14]]]] 0] -to \  
   [lindex [get_nodes -of  [get_site_pins -of \  
   [get_nets wbOutputData_OBUF[14]]]] 1]]  
set_property FIXED_ROUTE $fndPath [get_nets wbOutputData_OBUF[14]]