#

## iroute

Do interactive point-to-point routing from the pointer cursor to the cursor box

### Usage:

> iroute option

> > where option may be one of the following:
> > contacts [type] [parameter] [value...]
> >   Set route-contact parameters. parameter may be one of the following keywords:
> >   active
> >   width
> >   cost
> > help [option_name]
> >   Summarize iroute subcommands
> > layers [type] [parameter] [value...]
> >   Set route-layer parameters. parameter may be one of the following keywords:
> >   active
> >   width
> >   hCost
> >   vCost
> >   jogCost
> >   hintCost
> > route node_name...
> >   Connect point to named node(s)
> > route option...
> > Connect points as specified in the options. option my be one of the following:
> > -dbox
> >   Route to the area of the cursor box.
> > -dlabel node_name
> >   Route to the destination network named node_name. The name may be hierarchical, specifying a labeled node in a nested list of subcell instances.
> > -dlayers layer_list
> >   Force the route to end on of one the layers in the comma-separated list.
> > -drect llx lly urx ury
> >   Force the route to end within the designated rectangular area.
> > -dselection
> >   Force the route to end on the area of selected paint.
> > -scursor
> >   Start the route at the cursor position.
> > -slabel node_name
> >   Route from the start network named node_name. The name may be hierarchical, specifying a labeled node in a nested list of subcell instances.
> > -slayers layer_list
> >   Force the route to start on one of the layers in the comma-separated list.
> > -spoint px py
> >   Start the route at the indicated point.
> > -timeout value
> >   If the maze router is unable to find a valid route, it may wander off into an indefinitely long search. The search can be interrupted by typing a control-C into the calling terminal, but one can also specify a timed break using the timeout option, where value is in seconds. Typically, 4 or 5 seconds is a useful value.
> > By far, the most useful and most common invocation is "iroute route -slabel sname -dlabel dname" to route between two named pins.
> >   Write out all irouter parameters. These are written out as command calls so they can be read back with the Tcl source command.
> > search rate|width
> >   Set parameters controlling the internal search for routes
> > spacings type
> >   Set minimum spacing between route-type and arbitrary type
> > verbosity level
> >   Control the amount of messages printed
> > version
> >   Identify irouter version
> > wizard parameter
> >   Set miscellaneous parameters. parameter may be one of the following keywords:
> >   bloom
> >   boundsIncrement
> >   estimate
> >   expandDests
> >   penalty
> >   penetration
> >   window

### Summary:

> The iroute command invokes Magic's maze router algorithm. This is a point-to-point, over-the-cell algorithm based on costs specified in the technology file's "mzrouter" section, style "iroute". It is not a channel router, and will select the best path to connect the chosen start and destination nodes, using whatever layers are specified as active in the technology file, switching layers and adding contacts as necessary, and avoiding obstacles. The quality of the route is highly dependent upon both the existing layout and the cost specification.

> Special layer types "fence", "rotate", and "magnet" are built-in types available in all technologies. Painting the "fence" layer creates a boundary inside of which Magic will not route. Under a block of "rotate" layer paint, Magic will reverse the vertical and horizontal costs of all layers. If the technology file specifies unbalanced horizontal and vertical costs, for example to tend to force horizontal routes in metal2 and vertical routes in metal3, then areas painted with "rotate" will tend to get horizontal routes in metal3 and vertical routes in metal2.

### Implementation Notes:

> iroute is implemented as a built-in command in magic.

### See Also:

> route
> garoute

Return to command index

Last updated: March 7, 2020 at 1:06pm