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>
|
|
|
|
|
<TITLE>Magic-7.3 Command Reference</TITLE>
|
|
|
|
|
<BODY BACKGROUND=graphics/blpaper.gif>
|
2022-01-21 16:44:13 +01:00
|
|
|
<H1> <IMG SRC=graphics/magic_title8_2.png ALT="Magic VLSI Layout Tool Version 8.2">
|
2017-04-25 14:41:48 +02:00
|
|
|
<IMG SRC=graphics/magic_OGL_sm.gif ALIGN="top" ALT="*"> </H1>
|
|
|
|
|
|
|
|
|
|
<H2>ext, extract</H2>
|
|
|
|
|
<HR>
|
|
|
|
|
Circuit netlist extractor
|
|
|
|
|
<HR>
|
|
|
|
|
|
|
|
|
|
<H3>Usage:</H3>
|
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
|
<B>extract</B> <I>option</I> <BR><BR>
|
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
|
where <I>option</I> may be one of the following:
|
|
|
|
|
<DL>
|
|
|
|
|
<DT> <B>all</B>
|
|
|
|
|
<DD> Extract the root cell and all its children. This bypasses
|
|
|
|
|
the incremental extraction and ensures that a new <TT>.ext</TT>
|
|
|
|
|
file is written for every cell definition.
|
|
|
|
|
<DT> <B>cell</B> <I>name</I>
|
2022-01-21 16:44:13 +01:00
|
|
|
<DD> Extract the currently selected cell into file <I>name</I>
|
2017-04-25 14:41:48 +02:00
|
|
|
<DT> <B>do</B>|<B>no</B> [<I>option</I>]
|
|
|
|
|
<DD> Enable or disable an extractor option, where <I>option</I>
|
|
|
|
|
may be one of the following:
|
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
|
<DL>
|
|
|
|
|
<DT> <B>capacitance</B>
|
2022-01-21 16:44:13 +01:00
|
|
|
<DD> Extract local parasitic capacitance values to substrate
|
2017-04-25 14:41:48 +02:00
|
|
|
<DT> <B>resistance</B>
|
2022-01-21 16:44:13 +01:00
|
|
|
<DD> Extract lumped resistance values. Note that this
|
|
|
|
|
is <I>not</I> the same as full parasitic resistance.
|
|
|
|
|
The values extracted are "lumped" resistance and
|
|
|
|
|
indicate the value for which the delay through the
|
|
|
|
|
net can be computed with R times C, where R is the
|
|
|
|
|
lumped resistance and C is the parasitic capacitance.
|
|
|
|
|
This is a very coarse approximation, as it assumes
|
|
|
|
|
equal delay from the driver to any receiver. For
|
|
|
|
|
full R-C extraction, see the <B>extresist</B>
|
|
|
|
|
command. Lumped resistances have no meaning in
|
|
|
|
|
SPICE netlists and will only be used when running
|
|
|
|
|
<B>ext2sim</B> to generate a .sim netlist.
|
2017-04-25 14:41:48 +02:00
|
|
|
<DT> <B>coupling</B>
|
2022-01-21 16:44:13 +01:00
|
|
|
<DD> Extract the parasitic coupling capacitance between
|
|
|
|
|
nodes.
|
2017-04-25 14:41:48 +02:00
|
|
|
<DT> <B>length</B>
|
2022-01-21 16:44:13 +01:00
|
|
|
<DD> Extract the length of the shortest path from a driver
|
|
|
|
|
to a receiver, for computing more accurate parasitic
|
|
|
|
|
resistances.
|
2017-04-25 14:41:48 +02:00
|
|
|
<DT> <B>adjust</B>
|
2022-01-21 16:44:13 +01:00
|
|
|
<DD> Adjust all capacitances for overlap between a parent
|
|
|
|
|
cell and child instance, or between instances in an
|
|
|
|
|
array. Parasitic capacitance is removed to account
|
|
|
|
|
for the amount of overlap. Note that this method
|
|
|
|
|
can produce negative capacitors in the parent. When
|
|
|
|
|
the netlist is flattened for simulation, the total
|
|
|
|
|
of all capacitances in parent and child, or between
|
|
|
|
|
array instances, is guaranteed to be strictly positive.
|
2017-04-25 14:41:48 +02:00
|
|
|
<DT> <B>all</B>
|
2022-01-21 16:44:13 +01:00
|
|
|
<DD> Apply all standard options (does not include options
|
|
|
|
|
"local", "labelcheck", or "aliases").
|
|
|
|
|
<DT> <B>local</B>
|
|
|
|
|
<DD> Write all .ext files to the current working directory.
|
|
|
|
|
If not specified, each .ext file will be placed in the
|
|
|
|
|
same directory as the .mag file from which it is
|
|
|
|
|
derived, unless the .mag file is in a directory which
|
|
|
|
|
is not writable. In that case, the .ext file will also
|
2023-06-14 19:55:59 +02:00
|
|
|
be written to the current working directory. <P>
|
|
|
|
|
<I>Note:</I> As of magic version 8.3.404, "<B>extract
|
|
|
|
|
do local</B>" effectively implements "<B>extract path .</B>"
|
|
|
|
|
and "<B>extract no local</B>" implements "<B> extract
|
|
|
|
|
path none</B>".
|
2022-01-21 16:44:13 +01:00
|
|
|
<DT> <B>labelcheck</B>
|
|
|
|
|
<DD> Check for labels which have zero area and connect
|
|
|
|
|
to a subcell on the edge; this case is rare but is
|
|
|
|
|
computationally expensive to check for, so the feature
|
|
|
|
|
is disabled by default.
|
|
|
|
|
<DT> <B>aliases</B>
|
|
|
|
|
<DD> By default (starting with version 8.3.217), magic only
|
|
|
|
|
extracts a single name for a net, unless the net connects
|
|
|
|
|
to a port, in which case the port name is extracted as
|
|
|
|
|
well. With the <B>aliases</B> option enabled, all names
|
|
|
|
|
for a net are extracted; this can be useful for debugging
|
|
|
|
|
but will usually just slow down processing by commands
|
|
|
|
|
like "ext2spice" that use the .ext file contents, so it
|
|
|
|
|
is disabled by default.
|
2017-04-25 14:41:48 +02:00
|
|
|
</DL>
|
|
|
|
|
</BLOCKQUOTE>
|
2022-01-21 16:44:13 +01:00
|
|
|
These options (except for "local") determine how much
|
|
|
|
|
information is written to the output file. By default,
|
|
|
|
|
all options are selected. Normally, the options in
|
|
|
|
|
<B>ext2spice</B> or <B>ext2sim</B> are used to select
|
|
|
|
|
which information from the .ext file is used in the
|
|
|
|
|
resulting netlist. There is no need to restrict the
|
|
|
|
|
information being extracted. All options add relatively
|
|
|
|
|
little overhead to the extraction time. The output file
|
|
|
|
|
size can be reduced by not generating some extraction
|
|
|
|
|
information.
|
2017-04-25 14:41:48 +02:00
|
|
|
|
|
|
|
|
<DT> <B>length</B> [<I>option</I>]
|
|
|
|
|
<DD> Control pathlength extraction information, where <I>option</I>
|
|
|
|
|
may be one of the following:
|
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
|
<DL>
|
|
|
|
|
<DT> <B>driver</B> <I>termname</I>
|
|
|
|
|
<DD>
|
|
|
|
|
<DT> <B>receiver</B> <I>termname</I>
|
|
|
|
|
<DD>
|
|
|
|
|
<DT> <B>clear</B>
|
|
|
|
|
<DD>
|
|
|
|
|
</DL>
|
|
|
|
|
</BLOCKQUOTE>
|
2023-09-13 16:03:20 +02:00
|
|
|
<DT> <B>halo</B> [<I>distance</I>]
|
|
|
|
|
<DD> Return or set the maximum distance between shapes for which
|
|
|
|
|
sidewall coupling is considered. <I>distance</I> is in
|
|
|
|
|
the units of snap distance (lambda, by default), but like
|
|
|
|
|
all distances may be specified with a suffix like "um" for
|
|
|
|
|
physical distance. The default value is set by the technology
|
|
|
|
|
file. Smaller values will decrease the parasitic capacitance
|
|
|
|
|
extraction time at the expense of accuracy. When <I>distance</I>
|
|
|
|
|
is not specified, the value returned is always in internal
|
|
|
|
|
units.
|
2017-04-25 14:41:48 +02:00
|
|
|
<DT> <B>help</B>
|
|
|
|
|
<DD> Print help information
|
2023-06-14 19:55:59 +02:00
|
|
|
<DT> <B>path</B> [<I>pathname</I>|<B>none</B>]
|
|
|
|
|
<DD> Extract locally into the directory <I>pathname</I>. If
|
|
|
|
|
<I>pathname</I> does not exist, then magic will attempt to
|
|
|
|
|
create it. If it cannot be created, then the behavior will
|
|
|
|
|
be to save extract files in the current working directory.
|
|
|
|
|
If no path is set, or if <B>none</B> is specified as the
|
|
|
|
|
path, then the behavior will be to extract files in the
|
|
|
|
|
same directory as where the magic database (<B>.mag</B>)
|
|
|
|
|
file is located, unless that directory is unwritable by
|
|
|
|
|
the user, in which case the file is extracted to the
|
|
|
|
|
current working diretory. Note that "<B>extract do local</B>"
|
|
|
|
|
is the same as "<B>extract path .</B>" and "<B>extract no local</B>"
|
2023-07-30 02:36:46 +02:00
|
|
|
is the same as "<B>extract path none</B>". Also note that
|
|
|
|
|
netlist generation is independent of extraction, and needs to
|
|
|
|
|
specify the same path as used by <B>extract path</B>, e.g.,
|
|
|
|
|
"<B>ext2spice -p</B> <I>pathname</I>".
|
2017-04-25 14:41:48 +02:00
|
|
|
<DT> <B>parents</B>
|
|
|
|
|
<DD> Extract the selected cell and all its parents
|
|
|
|
|
<DT> <B>showparents</B>
|
|
|
|
|
<DD> List the cell and all parents of selected cell. Note that
|
|
|
|
|
this is not really an extract option and is superceded by
|
|
|
|
|
the <B>cellname</B> command.
|
2023-09-13 16:03:20 +02:00
|
|
|
<DT> <B>stepsize</B> [<I>distance</I>]
|
|
|
|
|
<DD> Return or set the step size used when breaking a layout into
|
|
|
|
|
smaller parts for more efficient extraction. <I>distance</I>
|
|
|
|
|
is in the units of snap distance (lambda, by default), but like
|
|
|
|
|
all distances may be specified with a suffix like "um" for
|
|
|
|
|
physical distance. The default value is set by the technology
|
|
|
|
|
file. Both large and small values make extraction inefficient,
|
|
|
|
|
and finding the optimal step size is largely trial-and-error.
|
|
|
|
|
The step size in a tech file has most likely already been
|
|
|
|
|
optimized for extraction speed. When <I>distance</I> is not
|
|
|
|
|
specified, the value returned is always in internal units.
|
2017-04-25 14:41:48 +02:00
|
|
|
<DT> [<B>list</B>|<B>listall</B>] <B>style</B> [<I>stylename</I>]
|
|
|
|
|
<DD> Set the current extraction style to <I>stylename</I>.
|
|
|
|
|
Without arguments, print the current extraction style.
|
|
|
|
|
With keyword <B>list</B>, return the current extraction
|
|
|
|
|
style as a Tcl result. With keyword <B>listall</B>, return
|
|
|
|
|
all valid extraction styles for the technology as a Tcl
|
|
|
|
|
list.
|
|
|
|
|
<DT> <B>unique</B> [<I>#</I>]
|
2022-01-21 16:44:13 +01:00
|
|
|
<DD> Generate unique names when different nodes have the same name.
|
|
|
|
|
When option "<I>#</I>" is present, only make unique names for
|
|
|
|
|
labels tagged by ending with the "<B>#</B>" character. <BR>
|
|
|
|
|
<I>Warning:</I> This operation immediately modifies the
|
|
|
|
|
existing layout in preparation for extraction. Label
|
|
|
|
|
modifications are permanent, and cannot be undone. All
|
|
|
|
|
cells in the hierarchy may potentially be modified. <BR>
|
|
|
|
|
<DT> <B>unique</B> [<I>option</I>]
|
|
|
|
|
<DD> (From Magic 8.1.24) With no option, generate unique names
|
|
|
|
|
when different nodes have the same name. <I>option</I> may
|
|
|
|
|
be one of the following:
|
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
|
<DL>
|
|
|
|
|
<DT> <B>all</B>
|
|
|
|
|
<DD> Equivalent to no option; all labels with the same
|
|
|
|
|
name on different nets are given unique names.
|
|
|
|
|
<DT> <B>#</B>
|
|
|
|
|
<DD> Labels that are tagged by ending with the character
|
|
|
|
|
"<B>#</B>" are made unique for each instance on an
|
|
|
|
|
electrically unique node.
|
|
|
|
|
<DT> <B>noports</B>
|
|
|
|
|
<DD> Labels that are not ports are made unique when on
|
|
|
|
|
different nets. Ports, however, are ignored. This
|
|
|
|
|
option is useful for standard cells which may be
|
|
|
|
|
hiding internal connectivity.
|
|
|
|
|
<DT> <B>notopports</B>
|
|
|
|
|
<DD> This option behaves like <B>extract unique noports</B>
|
|
|
|
|
on the topmost cell in the hierarchy, and otherwise
|
|
|
|
|
behaves like <B>extract unique all</B> on all cells
|
|
|
|
|
below the top (available from magic 8.3.205).
|
|
|
|
|
</DL>
|
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
|
<I>Warning:</I> This operation immediately modifies the
|
|
|
|
|
existing layout in preparation for extraction. Label
|
|
|
|
|
modifications are permanent, and cannot be undone. All
|
|
|
|
|
cells in the hierarchy may potentially be modified. <BR>
|
2017-04-25 14:41:48 +02:00
|
|
|
<DT> <B>warn</B> [[<B>no</B>] <I>option</I>]
|
|
|
|
|
<DD> Enable/disable reporting of non-fatal errors, where <I>option</I>
|
|
|
|
|
may be one of the following:
|
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
|
<DL>
|
|
|
|
|
<DT> <B>fets</B>
|
|
|
|
|
<DD>
|
|
|
|
|
<DT> <B>labels</B>
|
|
|
|
|
<DD>
|
|
|
|
|
<DT> <B>dup</B>
|
|
|
|
|
<DD>
|
|
|
|
|
<DT> <B>all</B>
|
|
|
|
|
<DD>
|
|
|
|
|
</DL>
|
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
|
</DL>
|
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
|
|
|
|
|
|
<H3>Summary:</H3>
|
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
|
With no options given, the <B>extract</B> command incrementally
|
|
|
|
|
extracts the root cell and all its children into separate
|
|
|
|
|
<TT>.ext</TT> files. With options, the effect is as described
|
|
|
|
|
in the Usage section above.
|
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
|
|
|
|
|
|
<H3>Implementation Notes:</H3>
|
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
|
<B>extract</B> is implemented as a built-in <B>magic</B> command. <P>
|
|
|
|
|
<B>ext</B> is an alias for command <B>extract</B> (allowed
|
|
|
|
|
abbreviation where the usage would otherwise be ambiguous).
|
|
|
|
|
</BLOCKQUOTE>
|
|
|
|
|
|
|
|
|
|
<H3>See Also:</H3>
|
|
|
|
|
<BLOCKQUOTE>
|
|
|
|
|
<A HREF=extresist.html><B>extresist</B></A> <BR>
|
|
|
|
|
<A HREF=ext2spice.html><B>ext2spice</B></A> <BR>
|
|
|
|
|
<A HREF=ext2sim.html><B>ext2sim</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> October 8, 2021 at 4:56pm <P>
|
2017-04-25 14:41:48 +02:00
|
|
|
</BODY>
|
|
|
|
|
</HTML>
|