.TH CIF2PS LOCAL "23 June 1989"
.UC 4
.SH NAME
Cif2ps \- CIF to postscript translator
.SH SYNOPSIS
.na
.B cif2ps
.RB [ \-r ]
.RB [ \-c
.IR cell ]
.RB [ \-d
.IR depth ]
.RB [ \-f
.IR font-size ]
.RB [ \-w
.IR width ]
.RB [ \-h
.IR height ]
.RB [ \-s
.IR LAYER=style-string ]
.RI [ in-file.cif \ [ out-file.ps ]]
.ad
.br
.SH DESCRIPTION
.I Cif2ps
converts a CIF file produced by Magic or another VLSI layout editor
into PostScript.  The output file produced is complete and suitable
for printing on a letter-size PostScript printer.

The first file name (i.e.
.IR in-file.cif )
is the input file
The second file name (i.e.
.IR out-file.ps )
is the output file.
If no file names are given the program reads from standard input
and writes to standard output.
If just one file name is specified, it is used as input.
.PP
.I Cif2ps
options are :
.TP
.B \-r
rotate the plot by 90 degrees (cumulative if repeated).
.TP
.BI \-c \ cell
.I cell
(name or CIF number) should be plotted.
By default the top-level cell (number zero) is plotted.
CIF files generated by Magic have a "dummy" top-level cell
used only for specifying scale factors and the "real" top-level
cell (as seen in Magic) is number one.
.TP
.BI \-d \ depth
Cells instantiated
.I depth
levels or more below the top level should not be plotted.
The default is zero, meaning plot at all depths.
A depth of one restricts plotting to the top level.
.TP
.BI \-f \ font-size
Use a font (Helvetica) scaled to a height of
.I font-size
points.  The default is 6 points.
.TP
.BI \-w \ width
the plot should be made
.I width
pages wide.  By default the width is one page.
.TP
.BI \-h \ height
the plot should be made
.I height
pages wide.  By default the height is one page.
.PP
.I Cif2ps
will rescale a user-specific dimension if neccesary to avoid
producing blank pages.  The largest dimesion allowed is 5 pages by 5 pages
(25 pages of output).
.TP
.BI \-s \ LAYER=style-string
set the drawing style for the layer named
.I LAYER
to the string
.I style-string.
Any number of
.BI \-s \ LAYER=style-string
pairs of arguments may be given, each defining one CIF layer.
If
.I style-string
is omitted then
.I LAYER
is not plotted.
Built-in default styles are provided for some technologies
(MOSIS SCMOS and Bulk CMOS, Oct symbolic).
See
.B Style Customiztion
below for information on style strings.
.SH "Style Customization"
.PP
Style strings (used with the
.B \-s
option) are simply strings of PostScript commands (with one exception).
The commands are used to fill each figure generated by
.I cif2ps.
The exception is that styles using the printer's built-in
gray fill function need special handling because this
fill function uses an opaque fill method (obliterating any
drawings previously inside the filled area).
Style strings which use the printer's built-in gray fill do so
by prepending a special code "G" and a number to the otherwise
ordinary PostScript string.  The number following the "G"
is the gray-level to be used, with zero (0) being black and one
(1.0) being white.  Note that for this special code to be recognized
the "G" must be the first letter in the style string.
.PP
.I Cif2ps
will write all gray fill boxes in order of decreasing gray-level
before writing any of the regular PostScript fill styles.
This produces a plot with most layers being rendered
with transparent overlap regions.
.PP
The PostScript functions provided in addition to gray fill are:
.TP
"\fIs a\fR L"
Fill the region with lines spaced by \fIs\fR pixcels and rotated
(counter-clockwise) by angle \fIa\fR degrees from horizontal.
.TP
"X"
Draw an "X" across the figure.
.TP
"stroke"
A PostScript primitive which draws a line along the current path
and then clears the path.  Since the current path is cleared
by "stroke" it must be used \fIafter\fR any of the above commands.
.PP
Some examples:
.TP
""
(null string) Don't draw anyting for this layer.
.TP
"G0"
Fill with black.
.TP
"G.5"
Fill with 50% gray.
.TP
"8 45 L"
Fill with lines spaced by 8 pixcels and rotated 45 degrees.
(The lines will have a slope of one.)
.TP
"G.75 32 135 L"
Fill with light gray (75%) and then fill with lines
spaced by 32 pixcels and rotated by 135 degrees (slope = -1).
.TP
"G.5 X stroke"
Fill with dark gray (50%), draw an "X" from the corners,
and draw an outline of the figure.
This produces a box with an diagonals similar to contacts in Magic.
.SH "SEE ALSO"
Magic
.SH AUTHORS
Arthur Simoneau (of The Aerospace Corporation, El Segundo, Calif)
wrote the original version, "cifp."
.br
Marc Lesure (of Arizona State University, Tempe, AZ)
modified 'cifp' to produce 'cif2ps',
adding scale factors and multi-page output.
.br
Gordon Ross (of The MITRE Corporation, Bedford, MA)
added: run-time style customization options,
transluscent fill operators using PostScript,
support for CIF polygons, circles, and wires,
and reduced output file size.
.SH BUGS
.PP
Text is plotted only in the top-most cell chosen for plotting.
.PP
The output can (still) become very large.
Full depth plotting can easily produce output ten times the size of
the CIF file.  A work-around is to limit the plot depth with the
.BI \-d \ depth
option.
.PP
Multi-page plots cause repetition of the entire PostScript output for
each page.  This could be reduced if cif2ps did some clipping.
