Modified "gds flatglob" to have the value "*_CDNS_*" by default,
since this is a common artifact of foundry cells and almost always incompatible with magic. Modified the "port" command to allow "port make <index>" on a label where other labels of the same text already have the same index. Removed deprecated documentation and added some missing documentation, such as an explanation of the "ext2spice subcircuit auto" option.
This commit is contained in:
parent
5de118b762
commit
b1c7b52ed2
|
|
@ -613,20 +613,23 @@ CalmaTechInit(void)
|
|||
ASSERT(sizeof(FourByteInt)==4, "definition in calmaInt.h");
|
||||
ASSERT(sizeof(TwoByteInt)==2, "definition in calmaInt.h");
|
||||
|
||||
/* NOTE: Enable the code below when CalmaContactArrays */
|
||||
/* behaves like the non-arrayed function and can be enabled */
|
||||
/* by default. */
|
||||
#if 0
|
||||
/* NOTE: Add "$$*$$" to the default "flatglob" value */
|
||||
/* when CalmaContactArrays behaves like the non-arrayed */
|
||||
/* function and can be enabled by default. */
|
||||
|
||||
/* Initialize CalmaFlattenByName to have one entry for */
|
||||
/* "$$*$$" to match the name style used by the contact */
|
||||
/* array cell generation. This can be overridden by the */
|
||||
/* "gds flatglob none" command option. */
|
||||
/* "*_CDNS_*" to match the name style used by many foundry */
|
||||
/* cells and which corresponds to pcells that often split */
|
||||
/* layers between cells in ways that magic can't cope with; */
|
||||
/* and whose original parameterized functions cannot be */
|
||||
/* recovered by magic anyway. When necessary, this default */
|
||||
/* can be overridden by the "gds flatglob none" command */
|
||||
/* option. */
|
||||
|
||||
if (CalmaFlattenUsesByName == (char **)NULL)
|
||||
{
|
||||
CalmaFlattenUsesByName = (char **)mallocMagic(2 * sizeof(char *));
|
||||
*CalmaFlattenUsesByName = StrDup((char **)NULL, "$$*$$");
|
||||
*CalmaFlattenUsesByName = StrDup((char **)NULL, "*_CDNS_*");
|
||||
*(CalmaFlattenUsesByName + 1) = NULL;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2176,11 +2176,15 @@ parseindex:
|
|||
{
|
||||
if ((int)sl->lab_port == idx)
|
||||
{
|
||||
TxError("Port index %d is already used by port %s.\n"
|
||||
"Use command \"port index %d\" to force "
|
||||
"equivalence after defining the port.\n",
|
||||
idx, sl->lab_text, idx);
|
||||
return;
|
||||
/* This is only an error if port name doesn't match */
|
||||
if (strcmp(sl->lab_text, lab->lab_text))
|
||||
{
|
||||
TxError("Port index %d is already used by port %s.\n"
|
||||
"Use command \"port index %d\" to force "
|
||||
"equivalence after defining the port.\n",
|
||||
idx, sl->lab_text, idx);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -95,13 +95,18 @@ Convert extracted file(s) to a SPICE format file.
|
|||
<B>subcircuit</B> is set to <B>off</B>, the top-level
|
||||
circuit will be the top level of the netlist, and it
|
||||
will have no associated subcircuit definition.
|
||||
<DT> <B>subcircuit top</B> [<B>on</B>|<B>off</B>]
|
||||
<DT> <B>subcircuit top</B> [<B>on</B>|<B>off</B>|<B>auto</B>]
|
||||
<DD> This variant of the <B>subcircuit</B> option controls
|
||||
whether or not ext2spice generates a .subckt wrapper
|
||||
around the top-level circuit. If the top-level circuit
|
||||
does not have defined ports, then no .subckt wrapper
|
||||
will ever be generated, because ext2spice will not
|
||||
be able to know which nets are the ports.
|
||||
around the top-level circuit. If <B>on</B> is specified,
|
||||
a ".subckt" wrapper will always be output, regardless of
|
||||
whether or not ports are defined in the layout. If
|
||||
<B>off</B>, no ".subckt" wrapper will be output, and
|
||||
ports will be ignored (They will be regular nets in the
|
||||
output netlist). If set to <B>auto</B>, magic will
|
||||
check whether or not ports are defined in the layout,
|
||||
and generate a ".subckt" wrapper only if ports have
|
||||
been defined.
|
||||
<DT> <B>subcircuit descend</B> [<B>on</B>|<B>off</B>]
|
||||
<DD> When set to <B>off</B>, the <B>subcircuit descend</B>
|
||||
option will not descend into any subcells below the
|
||||
|
|
|
|||
|
|
@ -1,161 +0,0 @@
|
|||
<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.gif ALT="Magic VLSI Layout Tool Version 8.3">
|
||||
<IMG SRC=graphics/magic_OGL_sm.gif ALIGN="top" ALT="*"> </H1>
|
||||
|
||||
<H2>ext2sim, exttosim</H2>
|
||||
<HR>
|
||||
Convert extracted file(s) to a ".sim" format file.
|
||||
<HR>
|
||||
|
||||
<H3>Usage:</H3>
|
||||
<BLOCKQUOTE>
|
||||
<B>ext2sim</B> [<I>option</I>] <BR><BR>
|
||||
<BLOCKQUOTE>
|
||||
where <I>option</I> is one of the following:
|
||||
<DL>
|
||||
<DT> [<B>run</B>] [<I>runtime_options</I>]
|
||||
<DD> Run exttosim on current cell, with command-line options
|
||||
(see Summary, below).
|
||||
<DT> <B>alias on</B>|<B>off</B>
|
||||
<DD> Enable/disable alias (.al) file
|
||||
<DT> <B>labels on</B>|<B>off</B>
|
||||
<DD> Enable/disable labels (.nodes) file
|
||||
<DT> <B>default</B>
|
||||
<DD> Reset to default values
|
||||
<DT> <B>format MIT</B>|<B>SU</B>|<B>LBL</B>
|
||||
<DD> Set output format
|
||||
<DT> <B>rthresh</B> [<I>value</I>]
|
||||
<DD> Set resistance threshold value. Lumped resistances
|
||||
below this value will not be written to the output. The
|
||||
value is in ohms, or may be the keyword <B>infinite</B>
|
||||
to prohibit writing any lumped resistances to the output.
|
||||
<DT> <B>cthresh</B> [<I>value</I>]
|
||||
<DD> Set capacitance threshold value. The value is in femtofarads,
|
||||
or may be the keyword <B>infinite</B> to prohibit writing
|
||||
any parasitic capacitances to the output.
|
||||
<DT> <B>merge</B> [<I>merge_option</I>]
|
||||
<DD> Merge parallel devices/transistors. The valid merge options are:
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT><B>conservative</B>
|
||||
<DD> Merge transistors and capacitors having the same device
|
||||
type and node connections and having the same width and
|
||||
length. Widths are summed in the final output for
|
||||
transistors. Capacitor values are summed in the final
|
||||
output.
|
||||
<DT><B>aggressive</B>
|
||||
<DD> Merge transistors having the same node
|
||||
connections and having the same length. Widths
|
||||
are summed in the final output. Merge any capacitors
|
||||
having the same device type and node connections.
|
||||
Capacitance is summed in the final output.
|
||||
<DT><B>none</B>
|
||||
<DD> Do not merge any devices.
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
<DT> <B>extresist on</B>|<B>off</B>
|
||||
<DD> Incorporate output from the command <B>extresist</B> into
|
||||
the final <TT>.sim</TT> file.
|
||||
<DT> <B>help</B>
|
||||
<DD> Print help information
|
||||
</DL>
|
||||
|
||||
</BLOCKQUOTE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H3>Summary:</H3>
|
||||
<BLOCKQUOTE>
|
||||
Without options, or with the option <B>run</B>,
|
||||
the <B>ext2sim</B> command converts the hierarchical extracted
|
||||
netlist information produced by the <B>extract</B> command in
|
||||
a series of <TT>.ext</TT> files into a flattened representation
|
||||
in the <TT>.sim</TT> format, used for switch-level simulation. <P>
|
||||
|
||||
<I>runtime_options</I> may be passed on the command line, and
|
||||
represent the original command-line options passed to the
|
||||
standalone version of ext2sim. A number of the original
|
||||
command-line options have been deprecated in the Tcl-based
|
||||
version, and some are duplicated by other <B>ext2sim</B> options.
|
||||
Valid <I>runtime_options</I> are:
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT> <B>-B</B>
|
||||
<DD> Don't output transistor or node attributes in the .sim file.
|
||||
This option will also disable the output of information such
|
||||
as the area and perimeter of source and drain diffusion and
|
||||
the FET substrate.
|
||||
<DT> <B>-F</B>
|
||||
<DD> Don't output nodes that aren't connected to devices (floating
|
||||
nodes).
|
||||
<DT> <B>-t</B><I>char</I>
|
||||
<DD> Trim characters from node names when writing the output file.
|
||||
<I>char</I> should be either "<B>#</B>" or "<B>!</B>". The
|
||||
option may be used twice if both characters require trimming.
|
||||
<DT> <B>-y</B> <I>num</I>
|
||||
<DD> Select the precision for outputting capacitors. The default is
|
||||
1 which means that the capacitors will be printed to a precision
|
||||
of 0.1 fF.
|
||||
<DT> <B>-J</B> <B>hier</B>|<B>flat</B>
|
||||
<DD> Select the source/drain area and perimeter extraction algorithm.
|
||||
If <B>hier</B> is selected then the areas and perimeters are
|
||||
extracted only within each subcell. For each device in a
|
||||
subcell the area and perimeter of its source and drain within
|
||||
this subcell are output. If two or more devices share a
|
||||
source/drain node then the total area and perimeter will be
|
||||
output in only one of them and the other will have 0. If
|
||||
<B>flat</B> is selected the same rules apply, only the scope
|
||||
of search for area and perimeter is the whole netlist. In
|
||||
general, <B>flat</B> (which is the default) will give accurate
|
||||
results (it will take into account shared sources/drains).
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
With options, the command sets various parameters affecting the
|
||||
output format and content. <P>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H3>Implementation Notes:</H3>
|
||||
<BLOCKQUOTE>
|
||||
<B>ext2sim</B> is implemented as a separate loadable Tcl package,
|
||||
but one which depends on the presence of the standard "tclmagic"
|
||||
package. <B>magic</B> is set up with a placeholder command for
|
||||
<B>ext2sim</B>, and will automatically load the Tcl package when
|
||||
this command is invoked. <P>
|
||||
|
||||
<B>exttosim</B> is an alias for <B>ext2sim</B>, to satisfy the
|
||||
grammatically anal retentive.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H3>See Also:</H3>
|
||||
<BLOCKQUOTE>
|
||||
<A HREF=extract.html><B>extract</B></A> <BR>
|
||||
<A HREF=extresist.html><B>extresist</B></A> <BR>
|
||||
<A HREF=ext2spice.html><B>ext2spice</B></A> <BR>
|
||||
<A HREF=irsim.html><B>irsim</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> October 12, 2005 at 9:40pm <P>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
|
@ -1,176 +0,0 @@
|
|||
<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.gif ALT="Magic VLSI Layout Tool Version 8.3">
|
||||
<IMG SRC=graphics/magic_OGL_sm.gif ALIGN="top" ALT="*"> </H1>
|
||||
|
||||
<H2>ext2spice, exttospice</H2>
|
||||
<HR>
|
||||
Convert extracted file(s) to a SPICE format file.
|
||||
<HR>
|
||||
|
||||
<H3>Usage:</H3>
|
||||
<BLOCKQUOTE>
|
||||
<B>ext2spice</B> [<I>option</I>] <BR><BR>
|
||||
<BLOCKQUOTE>
|
||||
where <I>option</I> is one of the following:
|
||||
<DL>
|
||||
<DT> [<B>run</B>] [<I>runtime_options</I>]
|
||||
<DD> Run <B>ext2spice</B> on current cell, with command-line options
|
||||
(see Summary, below).
|
||||
<DT> <B>default</B>
|
||||
<DD> Reset to default values
|
||||
<DT> <B>format hspice</B>|<B>spice2</B>|<B>spice3</B>
|
||||
<DD> Set output format. <B>spice3</B> is the default,
|
||||
for compatibility with <B>tclspice</B>. This is a
|
||||
change from previous versions of magic, where the
|
||||
default was <B>hspice</B>.
|
||||
<DT> <B>rthresh</B> [<I>value</I>]
|
||||
<DD> Set resistance threshold value. Lumped resistances
|
||||
below this value will not be written to the output. The
|
||||
value is in ohms, or may be the keyword <B>infinite</B>
|
||||
to prohibit writing any lumped resistances to the output.
|
||||
<DT> <B>cthresh</B> [<I>value</I>]
|
||||
<DD> Set capacitance threshold value. The value is in femtofarads,
|
||||
or may be the keyword <B>infinite</B> to prohibit writing
|
||||
any parasitic capacitances to the output.
|
||||
<DT> <B>merge</B> [<I>merge_option</I>]
|
||||
<DD> Merge parallel devices/transistors. The valid merge options are:
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT><B>conservative</B>
|
||||
<DD> Merge transistors and capacitors having the same device
|
||||
type and node connections and having the same width and
|
||||
length. Widths are summed in the final output for
|
||||
transistors. Capacitor values are summed in the final
|
||||
output.
|
||||
<DT><B>aggressive</B>
|
||||
<DD> Merge transistors having the same node
|
||||
connections and having the same length. Widths
|
||||
are summed in the final output. Merge any capacitors
|
||||
having the same device type and node connections.
|
||||
Capacitance is summed in the final output.
|
||||
<DT><B>none</B>
|
||||
<DD> Do not merge any devices.
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
<DT> <B>extresist on</B>|<B>off</B>
|
||||
<DD> Incorporate output from the command <B>extresist</B> into
|
||||
the final SPICE file.
|
||||
<DT> <B>resistor tee</B> [<B>on</B>|<B>off</B>]
|
||||
<DD> Model resistor capacitance as a T-network. Each resistor
|
||||
device is split into two, with all substrate and overlap
|
||||
capacitance placed on the node between the two half-length
|
||||
devices. Without this option, resistor devices lose all
|
||||
parasitic capacitance information, and <B>ext2spice</B>
|
||||
may produce warnings about unknown nodes. However, use of
|
||||
this option may conflict with LVS (layout-vs.-schematic),
|
||||
when only one resistor is expected per drawn device.
|
||||
<DT> <B>subcircuits</B> [<B>on</B>|<B>off</B>]
|
||||
<DD> When set to <B>on</B> (the default), standard cells become
|
||||
subcircuit calls ("X") in the SPICE output. The contents
|
||||
of the standard cells are not output, and it is assumed
|
||||
that a pre-characterized SPICE deck exists modeling the
|
||||
behavior of each standard cell definition. Standard cells
|
||||
are defined by the use of the <B>port</B> method for
|
||||
labeling input and output ports. When set to <B>off</B>,
|
||||
ports are ignored, and the entire circuit hierarchy is
|
||||
flattened down to the device level.
|
||||
<DT> <B>help</B>
|
||||
<DD> Print help information.
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H3>Summary:</H3>
|
||||
<BLOCKQUOTE>
|
||||
Without options, or with the option <B>run</B>,
|
||||
the <B>ext2spice</B> command converts the hierarchical extracted
|
||||
netlist information produced by the <B>extract</B> command in
|
||||
a series of <TT>.ext</TT> files into a flattened representation
|
||||
in SPICE format, used for detailed analog simulation. <P>
|
||||
|
||||
<I>runtime_options</I> may be passed on the command line, and
|
||||
represent the original command-line options passed to the
|
||||
standalone version of ext2spice. A number of the original
|
||||
command-line options have been deprecated in the Tcl-based
|
||||
version, and some are duplicated by other <B>ext2spice</B> options.
|
||||
Valid <I>runtime_options</I> are:
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
<DT> <B>-B</B>
|
||||
<DD> Don't output transistor or node attributes in the SPICE file.
|
||||
This option will also disable the output of information such
|
||||
as the area and perimeter of source and drain diffusion and
|
||||
the FET substrate.
|
||||
<DT> <B>-F</B>
|
||||
<DD> Don't output nodes that aren't connected to devices (floating
|
||||
nodes).
|
||||
<DT> <B>-t</B><I>char</I>
|
||||
<DD> Trim characters from node names when writing the output file.
|
||||
<I>char</I> should be either "<B>#</B>" or "<B>!</B>". The
|
||||
option may be used twice if both characters require trimming.
|
||||
<DT> <B>-y</B> <I>num</I>
|
||||
<DD> Select the precision for outputting capacitors. The default is
|
||||
1 which means that the capacitors will be printed to a precision
|
||||
of 0.1 fF.
|
||||
<DT> <B>-J</B> <B>hier</B>|<B>flat</B>
|
||||
<DD> Select the source/drain area and perimeter extraction algorithm.
|
||||
If <B>hier</B> is selected then the areas and perimeters are
|
||||
extracted only within each subcell. For each device in a
|
||||
subcell the area and perimeter of its source and drain within
|
||||
this subcell are output. If two or more devices share a
|
||||
source/drain node then the total area and perimeter will be
|
||||
output in only one of them and the other will have 0. If
|
||||
<B>flat</B> is selected the same rules apply, only the scope
|
||||
of search for area and perimeter is the whole netlist. In
|
||||
general, <B>flat</B> (which is the default) will give accurate
|
||||
results (it will take into account shared sources/drains).
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
With options, the command sets various parameters affecting the
|
||||
output format and content. <P>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H3>Implementation Notes:</H3>
|
||||
<BLOCKQUOTE>
|
||||
<B>ext2spice</B> is implemented as a separate loadable Tcl package,
|
||||
but one which depends on the presence of the standard "tclmagic"
|
||||
package. <B>magic</B> is set up with a placeholder command for
|
||||
<B>ext2spice</B>, and will automatically load the Tcl package when
|
||||
this command is invoked. <P>
|
||||
|
||||
<B>exttospice</B> is an alias for <B>ext2spice</B>, to satisfy the
|
||||
grammatically anal retentive.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<H3>See Also:</H3>
|
||||
<BLOCKQUOTE>
|
||||
<A HREF=extract.html><B>extract</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>
|
||||
<P><I>Last updated:</I> October 12, 2005 at 9:40pm <P>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
|
@ -37,10 +37,10 @@ LEF-format input and output
|
|||
<DT> <B>read</B> [<I>filename</I>] <B>-annotate</B>
|
||||
<DD> Read a LEF file. Use any macros defined in the LEF file
|
||||
to annotate existing layouts, and ignore all other macros.
|
||||
<DT> <B>write</B> [<I>cell</I>] [<B>-tech</B>]
|
||||
<DT> <B>write</B> [<I>filename</I>] [<B>-tech</B>]
|
||||
[<B>-hide</B> [<I>distance</I>]] [<B>-toplayer</B>]
|
||||
[<B>-pinonly</B> [<I>distance</I>]] [<B>-nomaster</B>]
|
||||
<DD> Write LEF for the current or indicated cell.<BR>
|
||||
<DD> Write LEF for the current cell to the file <I>filename</I>.<BR>
|
||||
Option <B>-tech</B> writes the technology information (layer
|
||||
mapping and rules) to the same file as the cell macro. <BR>
|
||||
Option <B>-hide</B> generates an abstract view that has all
|
||||
|
|
|
|||
Loading…
Reference in New Issue