#

## cif

Read CIF input or generate CIF output.

### Usage:

> cif [option]

> > where option is one of the following:
> > help
> >   Print usage information
> > arealabels [yes|no]
> >   Enable/diable use of the CIF area label extension. The default is "yes". Normally there is no reason not to do this.
> > coverage layer
> >   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).
> > idcell [yes|no]
> >   Enable/diable use of the CIF cell ID extension. The default is "yes". Normally there is no reason not to do this.
> > lambda in|out
> >   Report the number of microns per lambda for the current style. If "in" is specified, the value is reported for the current CIF/GDS input style. If "out" is specified, the value is reported for the current CIF/GDS output style.
> > limit [value]
> >   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 value 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.
> > rescale [yes|no]
> >   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 limit option may also be used to limit grid subdivision to a minimum value (see above).
> > warning [option]
> >   Set warning information level. "option" may be one of the following:
> >   default
> >     The default setting is equivalent to all the other options (align, limit, redirect, and none) being disabled.
> >   align
> >     Generate warnings during a "cif see" 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.
> >   limit
> >     Limit warnings to the first 100 warnings or errors only.
> >   redirect [file]
> >     Redirect all warnings to an output file named file. If file is not given, then redirection is disabled.
> >   none
> >     Do not produce any warning messages on CIF input.
> > polygon subcells [yes|no]
> >   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 magic 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.
> > see layers
> >   View the CIF/GDS output layers in the comma-separated list layers 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 magic. CIF output is computed and feedback is shown only inside the cursor box area.
> >   Figure 1. Command cif see CSP shows the P+ implant layer surrounding the P diffusion regions within the cursor box area.
> > statistics
> >   Print statistics from the CIF generator, including tile operations, rectangles output, and interactions between cells. Not especially useful to the typical end-user.
> > prefix [path]
> >   Prepend the path name path to cell names in the CIF output. If no path is specified, reports the existing path name.
> > [list|listall] istyle [style]
> >   Set the current input style to style. If no style is specified, returns the current input style. To get a list of all available input styles in the current technology, use the listall istyle option. The list istyle option returns the current style name as a Tcl result.
> > [list|listall] ostyle [style]
> >   Set the current output style to style. If no style is specified, returns the current output style. To get a list of all available output styles in the current technology, use the listall ostyle option. The list ostyle option returns the current style name as a Tcl result.
> > flat file
> >   Output CIF format to "file" for the window's root cell, flattening the hierarchy prior to output.
> > read file
> >   Read CIF format from file file into the edit cell. If file does not have a file extension, then magic searches for a file named file or file.cif.
> > write file
> >   Output CIF format to "file" for the window's root cell.

### Summary:

> The cif 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 cif command options also affect GDS input and output.

> 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".

### Implementation Notes:

> cif is implemented as a built-in function in magic. Options list and listall cause output to be returned as a Tcl result, rather than printed to stdout (the console).

### See Also:

> gds (calma)

Return to command index

Last updated: October 4, 2004 at 8:03am