magic/doc/html/cif.html

261 lines
12 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>cif</H2>
<HR>
Read CIF input or generate CIF output.
<HR>
<H3>Usage:</H3>
<BLOCKQUOTE>
<B>cif</B> [<I>option</I>] <BR><BR>
<BLOCKQUOTE>
where <I>option</I> is one of the following:
<DL>
<DT> <B>help</B>
<DD> Print usage information
<DT> <B>arealabels</B> [<B>yes</B>|<B>no</B>]
<DD> Enable/disable use of the CIF area label extension. The
default is "yes". Normally there is no reason not to
do this.
<DT> [<B>list</B>] <B>coverage</B> <I>layer</I> [<B>box</B>]
<DD> Report the coverage of the indicated CIF layer within the
bounds of the current edit cell. This is useful for
fabrication processes that require a minimum amount of
coverage for specific layers (usually the metal routing
layers). With option <B>list</B> in front, return only
the coverage value, as a decimal. Otherwise, the value
is returned as a percentage, with additional diagnostic
information about the area analyzed. <P>
With option "<B>box</B>", report the density inside the
cursor box area only.
<DT> <B>idcell</B> [<B>yes</B>|<B>no</B>]
<DD> Enable/disable use of the CIF cell ID extension. The
default is "yes". Normally there is no reason not to
do this.
<DT> <B>scale</B> <B>in</B>|<B>out</B>
<DD> Report the number of microns per internal unit for
the current style. If "<B>in</B>" is specified,
the value is reported for the current CIF/GDS input
style. If "<B>out</B>" is specified, the value is
reported for the current CIF/GDS output style. <P>
<I>Warning:</I> For a long time (prior to magic 8.0.180),
this function was
"<B>cif lambda in</B>|<B>out</B>" and claimed to
return the number of microns per lambda. For
backwards compatibility, this syntax is retained,
but its use is discouraged.
<DT> <B>limit</B> [<I>value</I>]
<DD> Limit the amount of internal grid subdivision to the
indicated value (which is dimensionless, the ratio
of the maximum subdivision to the current lambda
value). If no <I>value</I> is given, the current
limit is reported. By default, the value is set to
100, as grid subdivision smaller than this amount
can result in integer overflow on subsequent CIF or
GDS output.
<DT> <B>rescale</B> [<B>yes</B>|<B>no</B>]
<DD> Allow or disallow internal grid subdivision while reading
CIF input. Default is "yes". Normally, one wants to allow
rescaling to ensure that the CIF is displayed exactly as it
is in the input file. Occasionally, however, the CIF input
is on a very fine scale, such as nanometers, and it is
preferable to snap the input to lambda boundaries rather
than to subsplit the internal grid to such a fine value.
The <B>limit</B> option may also be used to limit grid
subdivision to a minimum value (see above).
<DT> <B>drccheck</B> [<B>yes</B>|<B>no</B>]
<DD> (Introduced in Magic version 8.0.176) Set to "yes" by
default, causing all cells in the input file to be
marked as not checked by DRC as they are input. Set this
to "no" to force magic to treat the CIF cells as "known
DRC clean".
<DT> <B>warning</B> [<I>option</I>]
<DD> Set warning information level. "<I>option</I>" may be one
of the following:
<DL>
<DT><B>default</B>
<DD> The default setting is equivalent to all the other
options (<B>align</B>, <B>limit</B>, <B>redirect</B>,
and <B>none</B>) being disabled.
<DT><B>align</B>
<DD> Generate warnings during a "<B>cif see</B>" command
if the alignment of geometry is on fractional lambda.
Normally, magic allows contacts to be drawn at
half-lambda positions. If this violates DRC requirements
for the minimum output grid, this warning setting can be
used to detect such violations.
<DT><B>limit</B>
<DD> Limit warnings to the first 100 warnings or errors only.
<DT><B>redirect</B> [<I>file</I>]
<DD> Redirect all warnings to an output file named <I>file</I>.
If <I>file</I> is not given, then redirection is disabled.
<DT><B>none</B>
<DD> Do not produce any warning messages on CIF input.
</DL>
<DT> <B>polygon subcells</B> [<B>yes</B>|<B>no</B>]
<DD> Put non-Manhattan polygons into subcells. Default is "no".
Normally this option is not needed. However, input layout
that defines a number of angled wires, particularly those
that are closely spaced, can cause <B>magic</B> to generate
literally millions of internal tiles. This tends to be
true in particular for corner cells in padframes for deep
submicron feature sizes, where the angled corners are
required to meet the DRC specification. When set to "yes",
each polygon encountered in the CIF input is placed in its
own uniquely-named subcell. This prevents interations with
other polygons on the same plane and so reduces tile splitting.
<DT> <B>paint</B> <I>cif_layers</I> <I>magic_layer</I> [<I>cellname</I>]
<DD> Generate the CIF layer(s) specified by <I>cif_layers</I>,
then import them into the Magic database as layer
<I>magic_layer</I>. If <I>cellname</I> is specified, then
the paint is generated in that cell (which will be created,
if it does not already exist). Otherwise, paint is generated
directly in the edit cell. This is a very useful function,
as it allows the automatic generation of layout from boolean
operations. Principal uses are to auto-generate fill
patterns, auto-generate obstruction geometry in a standard
cell, to automatically place substrate and well contacts
into a standard-cell array, and so forth.
<DT> <B>see</B> <I>layers</I>
<DD> View the CIF/GDS output layers in the comma-separated list
<I>layers</I> as feedback entries on the layout. This is
useful for determining what the actual foundry layer types
are doing as a result of the boolean operations in the
CIF/GDS output style. Most useful for debugging technology
file CIF/GDS output style sections, or tracing DRC error
reports from sources other than <B>magic</B>. CIF output
is computed and feedback is shown only inside the cursor
box area.
<CENTER>
<IMG SRC=graphics/cif_see.gif> <BR>
<I>Figure 1. Command <B>cif see CSP</B> shows the P+
implant layer surrounding the P diffusion regions within
the cursor box area.</I>
</CENTER>
<DT> <B>statistics</B>
<DD> Print statistics from the CIF generator, including tile
operations, rectangles output, and interactions between
cells. Not especially useful to the typical end-user.
<DT> <B>prefix</B> [<I>path</I>]
<DD> Prepend the path name <I>path</I> to cell names in the
CIF output. If no <I>path</I> is specified, reports the
existing path name.
<DT> [<B>list|listall</B>] <B>istyle</B> [<I>style</I>]
<DD> Set the current input style to <I>style</I>. If no
<I>style</I> is specified, returns the current input
style. To get a list of all available input styles
in the current technology, use the <B>listall
istyle</B> option. The <B>list istyle</B> option
returns the current style name as a Tcl result.
<DT> [<B>list|listall</B>] <B>ostyle</B> [<I>style</I>]
<DD> Set the current output style to <I>style</I>. If no
<I>style</I> is specified, returns the current output
style. To get a list of all available output styles
in the current technology, use the <B>listall
ostyle</B> option. The <B>list ostyle</B> option
returns the current style name as a Tcl result.
<DT> <B>flat</B> <I>file</I>
<DD> Output CIF format to "<I>file</I>" for the window's root
cell, flattening the hierarchy prior to output.
<DT> <B>read</B> <I>file</I>
<DD> Read CIF format from file <I>file</I> into the edit cell.
If <I>file</I> does not have a file extension, then <B>magic</B>
searches for a file named <I>file</I> or <I>file</I>.cif.
<DT> <B>write</B> <I>file</I>
<DD> Output CIF format to "<I>file</I>" for the window's root cell.
</DL>
</BLOCKQUOTE>
<BLOCKQUOTE>
<BR>
"Wizard" options: Where <I>option</I> is one of the following:
<BR>
<DL>
<DT> <B>*hier</B> <I>layer</I>
<DD> This option is like "<B>cif see</B>" but shows the layers
that are generated as the result of hierarchical interactions
between subcells (not including interactions between components
of a subcell array; see below).
<DT> <B>*array</B> <I>layer</I>
<DD> This option is like "<B>cif see</B>" but shows the layers
that are generated as the result of hierarchical interactions
between components of subcell arrays.
<DT> <B>*hier write</B> [ <B>enable</B> | <B>disable</B> ]
<DD> This sets a global option that enables (default) or disables
the generation of output CIF or GDS layers due to interaction
between subcells (not including inter-array interactions;
see below). For large standard cell layouts where the
standard cells are known to abut properly without causing
spacing or overlap errors, disabling hierarchical generation
can greatly reduce the amount of time needed to generate
output. Defining the property <B>CIFhier</B> inside a cell
will override the use of <B>*hier write disable</B> and
force hierarchical output for that cell and its descendents.
<DT> <B>*array write</B> [ <B>enable</B> | <B>disable</B> ]
<DD> This sets a global option that enables (default) or disables
the generation of output CIF or GDS layers due to interaction
between components of subcell arrays. If cells are known to
abut properly without generating spacing errors between them,
disabling hierarchical generation can greatly reduce the
amount of time needed to generate output.
Defining the property <B>CIFhier</B> inside a cell
will override the use of <B>*array write disable</B> and
force hierarchical output for that cell and its descendents.
</DL>
</BLOCKQUOTE>
</BLOCKQUOTE>
<H3>Summary:</H3>
<BLOCKQUOTE>
The <B>cif</B> command reads CIF input or produces CIF input/output
("Caltech Intermediate Format", as described in Mead & Conway),
or sets various parameters affecting the CIF (and GDS) input and
output. Certain <B>cif</B> command options also affect GDS input
and output. <P>
If no option is given, a CIF file is produced for the root cell,
with the default name of the root cell definition and the
filename extension ".cif". <P>
</BLOCKQUOTE>
<H3>Implementation Notes:</H3>
<BLOCKQUOTE>
<B>cif</B> is implemented as a built-in function in <B>magic</B>.
Options <B>list</B> and <B>listall</B> cause output to be
returned as a Tcl result, rather than printed to stdout (the
console).
</BLOCKQUOTE>
<H3>See Also:</H3>
<BLOCKQUOTE>
<A HREF=gds.html><B>gds</B> (<B>calma</B>)</A> <BR>
<A HREF=property.html><B>property</B></A> (property "CIFhier")<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> February 8, 2021 at 11:12am <P>
</BODY>
</HTML>