2017-04-25 14:41:48 +02:00
|
|
|
<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>
|
2024-01-09 22:37:00 +01:00
|
|
|
<TITLE>Magic-8.3 Command Reference</TITLE>
|
2017-04-25 14:41:48 +02:00
|
|
|
<BODY BACKGROUND=graphics/blpaper.gif>
|
2024-01-09 22:37:00 +01:00
|
|
|
<H1> <IMG SRC=graphics/magic_title8_3.png ALT="Magic VLSI Layout Tool Version 8.3">
|
2017-04-25 14:41:48 +02:00
|
|
|
<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)
|
2022-01-21 16:44:13 +01:00
|
|
|
<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.
|
2017-04-25 14:41:48 +02:00
|
|
|
<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>
|
2022-01-21 16:44:13 +01:00
|
|
|
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.
|
2017-04-25 14:41:48 +02:00
|
|
|
</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>
|
2022-01-21 16:44:13 +01:00
|
|
|
<P><I>Last updated:</I> March 7, 2020 at 1:06pm <P>
|
2017-04-25 14:41:48 +02:00
|
|
|
</BODY>
|
|
|
|
|
</HTML>
|