magic/doc/html/iroute.html

185 lines
6.2 KiB
HTML

<HTML>
<HEAD>
<STYLE type="text/css">
H1 {color: black }
H2 {color: maroon }
H3 {color: #007090 }
A.head:link {color: #0060a0 }
A.head:visited {color: #3040c0 }
A.head:active {color: white }
A.head:hover {color: yellow }
A.red:link {color: red }
A.red:visited {color: maroon }
A.red:active {color: yellow }
</STYLE>
</HEAD>
<TITLE>Magic-8.3 Command Reference</TITLE>
<BODY BACKGROUND=graphics/blpaper.gif>
<H1> <IMG SRC=graphics/magic_title8_3.png ALT="Magic VLSI Layout Tool Version 8.3">
<IMG SRC=graphics/magic_OGL_sm.gif ALIGN="top" ALT="*"> </H1>
<H2>iroute</H2>
<HR>
Do interactive point-to-point routing from the pointer cursor to the
cursor box
<HR>
<H3>Usage:</H3>
<BLOCKQUOTE>
<B>iroute</B> <I>option</I> <BR><BR>
<BLOCKQUOTE>
where <I>option</I> may be one of the following:
<DL>
<DT><B>contacts</B> [<I>type</I>] [<I>parameter</I>] [<I>value</I>...]
<DD> Set route-contact parameters. <I>parameter</I> may be one of
the following keywords:
<DL>
<DT> <B>active</B>
<DD>
<DT> <B>width</B>
<DD>
<DT> <B>cost</B>
<DD>
</DL>
<DT> <B>help</B> [<I>option_name</I>]
<DD> Summarize iroute subcommands
<DT> <B>layers</B> [<I>type</I>] [<I>parameter</I>] [<I>value</I>...]
<DD> Set route-layer parameters. <I>parameter</I> may be one of
the following keywords:
<DL>
<DT> <B>active</B>
<DD>
<DT> <B>width</B>
<DD>
<DT> <B>hCost</B>
<DD>
<DT> <B>vCost</B>
<DD>
<DT> <B>jogCost</B>
<DD>
<DT> <B>hintCost</B>
<DD>
</DL>
<DT> <B>route</B> <I>node_name</I>...
<DD> Connect point to named node(s)
<DT> <B>route</B> <I>option</I>...
<DT> Connect points as specified in the options. <I>option</I> my
be one of the following:
<DL>
<DT> <B>-dbox</B>
<DD> Route to the area of the cursor box.
<DT> <B>-dlabel</B> <I>node_name</I>
<DD> Route to the destination network named <I>node_name</I>.
The name may be hierarchical, specifying a labeled node
in a nested list of subcell instances.
<DT> <B>-dlayers</B> <I>layer_list</I>
<DD> Force the route to end on of one the layers in the
comma-separated list.
<DT> <B>-drect</B> <I>llx lly urx ury</I>
<DD> Force the route to end within the designated rectangular
area.
<DT> <B>-dselection</B>
<DD> Force the route to end on the area of selected paint.
<DT> <B>-scursor</B>
<DD> Start the route at the cursor position.
<DT> <B>-slabel</B> <I>node_name</I>
<DD> Route from the start network named <I>node_name</I>.
The name may be hierarchical, specifying a labeled node
in a nested list of subcell instances.
<DT> <B>-slayers</B> <I>layer_list</I>
<DD> Force the route to start on one of the layers in the
comma-separated list.
<DT> <B>-spoint</B> <I>px py</I>
<DD> Start the route at the indicated point.
<DT> <B>-timeout</B> <I>value</I>
<DD> 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 <I>value</I> is in
seconds. Typically, 4 or 5 seconds is a useful
value.
</DL>
By far, the most useful and most common invocation is
"<B>iroute route -slabel</B> <I>sname</I> <B>-dlabel</B>
<I>dname</I>" to route between two named pins.
<DD> Write out all irouter parameters. These are written out
as command calls so they can be read back with the Tcl
<B>source</B> command.
<DT> <B>search</B> <B>rate</B>|<B>width</B>
<DD> Set parameters controlling the internal search for routes
<DT> <B>spacings</B> <I>type</I>
<DD> Set minimum spacing between route-type and arbitrary type
<DT> <B>verbosity</B> <I>level</I>
<DD> Control the amount of messages printed
<DT> <B>version</B>
<DD> Identify irouter version
<DT> <B>wizard</B> <I>parameter</I>
<DD> Set miscellaneous parameters. <I>parameter</I> may be one of
the following keywords:
<DL>
<DT> <B>bloom</B>
<DD>
<DT> <B>boundsIncrement</B>
<DD>
<DT> <B>estimate</B>
<DD>
<DT> <B>expandDests</B>
<DD>
<DT> <B>penalty</B>
<DD>
<DT> <B>penetration</B>
<DD>
<DT> <B>window</B>
<DD>
</DL>
</DL>
</BLOCKQUOTE>
</BLOCKQUOTE>
<H3>Summary:</H3>
<BLOCKQUOTE>
The <B>iroute</B> 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 "<B>mzrouter</B>" section,
style "<B>iroute</B>". 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. <P>
Special layer types "<B>fence</B>", "<B>rotate</B>", and "<B>magnet</B>"
are built-in types available in all technologies. Painting the
"<B>fence</B>" layer creates a boundary inside of which Magic will
not route. Under a block of "<B>rotate</B>" 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.
</BLOCKQUOTE>
<H3>Implementation Notes:</H3>
<BLOCKQUOTE>
<B>iroute</B> is implemented as a built-in command in <B>magic</B>.
</BLOCKQUOTE>
<H3>See Also:</H3>
<BLOCKQUOTE>
<A HREF=route.html><B>route</B></A> <BR>
<A HREF=garoute.html><B>garoute</B></A> <BR>
</BLOCKQUOTE>
<P><IMG SRC=graphics/line1.gif><P>
<TABLE BORDER=0>
<TR>
<TD> <A HREF=commands.html>Return to command index</A>
</TR>
</TABLE>
<P><I>Last updated:</I> March 7, 2020 at 1:06pm <P>
</BODY>
</HTML>