Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ cifplot(1) — GDT-UNX 6.8_er0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

CIFPLOT(1)  —  UNIX Programmer’s Manual

NAME

cifplot − CIF interpreter and plotter

SYNOPSIS

cifplot [ options ] file1.cif [ file2.cif ...  ]

DESCRIPTION

Cifplot takes a description in Cal-Tech Intermediate Form (CIF) and produces a plot.  CIF is a low-level graphics language suitable for describing integrated circuit layouts.  Although CIF can be used for other graphics applications, this discussion will assume CIF is used to describe integrated circuit designs.  Cifplot interprets any legal CIF 2.0  description, including symbol renaming and Delete Definition commands.  In addition, a number of local extensions have been added to CIF, including text on plots and include files.  Care has been taken to avoid any arbitrary restrictions on the CIF programs that can be plotted. 

To obtain a plot, call cifplot with the name of the CIF file to be plotted.  If the CIF description is divided among several files, call cifplot with the names of all files to be used.  Cifplot reads the CIF description from the files in the order they appear on the command line.  Therefore, the CIF End command should only be in the last file, since cifplot ignores all data after the End command.  After reading the CIF description and before plotting, cifplot will print a estimate of the size of the plot and then asks if it should continue to produce a plot.  Type y to proceed and n to abort.  A typical run is as follows:

% cifplot lib.cif sorter.cif
Window -5700 174000 -76500 168900
Scale: 1 micron is 0.004075 inches
The plot will be 0.610833 feet
Do you want a plot? y

After typing y, cifplot produces a plot on the Benson-Varian plotter. 

Cifplot recognizes several command line options.  These options can be used to change the size and scale of the plot, change default plot options, and select the output device.  Several options may be selected.  A dash(-) must precede each option specifier.  The following is a list of options that may be included on the command line:

−w  xmin xmax ymin ymax
(window) The -w options specify the window; by default, the window is set to be large enough to contain the entire plot.  The windowing commands lets you plot a small section of your chip, enabling you to see it in better detail.  Xmin, xmax, ymin, and ymax should be specified in CIF coordinates. 

−s  float
(scale) The -s option sets the scale of the plot.  By default, the scale is set so the window fills the whole page.  Float is a floating point number specifying the number of inches which represent 1 micron.  A recommended size is 0.02. 

−l  layer_list
(layer) Normally, all layers are plotted.  The -l option specifies which layers not to plot.  The layer_list consists of the layer names separated by commas, with no spaces.  There are two reserved names: text and bbox.  Including the layer name text in the list suppresses the plotting of text; bbox suppresses the bounding box around symbols. 

−d  n (depth) This option lets you limit the amount of detail plotted in a hierarchically designed chip.  -dn will only instanciate the plot down n levels of calls.  Sometimes too much detail can hide important features in a circuit. 

−g  n (grid) Draw a grid over the plot with spacing every n CIF units. 

−f (fuzzy) Do not print the border outlines around the merged features on each layer. 

−h (half) Plot at half normal resolution.  (Not yet implemented.) 

−e (extensions) Accept only standard CIF. User extensions produce warnings. 

−I (non-Interactive) Do not ask for confirmation.  Always plot. 

−L (List) Produce a listing of the CIF file on standard output as it is parsed.  Not recommended unless debugging hand-coded CIF since CIF code can be rather long. 

−a  n (approximate) Approximate a roundflash with an n-sided polygon. By default n equals 8.  (i.e., roundflashes are approximated by octagons.)  If n equals 0, then output circles for roundflashes.  (It is recommended not to use full circles since they significantly slow down plotting.  Full circles not yet implemented.) 

−b  "text"
(banner) Print the text at the top of the plot. 

−C (Comments) Treat comments as though they were spaces.  Sometimes CIF files created at other universities will have several errors due to syntactically incorrect comments.  (i.e., the comments may appear in the middle of a CIF command or the comment does not end with a semi-colon.)  CIF files should not have any errors and these comment related errors must be corrected before transmitting the file for fabrication.  This option is useful in eliminating many of these comment related syntax errors. 

−r (rotate) Rotate the plot 90 degrees. 

−V (Varian) Send output to the varian.  (This is the default option.) 

−W (Wide) Send output directly to the versatec. 

−S (Spool) Store the output in a temporary file and then dump the output quickly onto the Versatec.  This option makes nice crisp plots; however it also uses of large amount of disk space. 

−T  n
(Terminal) Send output byte stream to standard output, which is useful for setting up pipes.  N is the number of bytes per line the plotting device expects.  (Not yet implemented.) 

−H (HP2648) Send output to HP2648A terminal.  This requires that cifplot is running in the foreground on an HP2648 and there is a scratch tape in the left tape drive of the terminal.  (Not yet fully implemented.) 

−X  basename
(eXtractor) From the CIF file, create a circuit description suitable for switch level simulation.  -X creates two files: basename.sim, which contains the circuit description, and basename.node, which contains the node numbers and their location used in the circuit description. 

When this option is invoked, no plot is created.  Therefore, it is advisable not to use any of the other options that operate only with plotting.  However, the window, layer, and approximate options are still appropriate.  To obtain a plot of the circuit with the node numbers, call cifplot again, without the −X option, and include basename.nodes in the list of CIF files to be plotted.  (This file must appear in the list of files before the file with the CIF End command.)  (Not yet fully implemented.) 

−P  pattern_file
(Pattern) The -P option lets you specify your own layers and stipple patterns.  Pattern_file may contain an arbitrary number of layer descriptors; specifically, the layer name in double quotes, followed by 8 integers.  Each integer specifies 32 bits where ones are black and zeroes are white.  The 8 integers thus specify a 32 by 8-bit stipple pattern.  The integers may be in decimal, octal, or hex.  Hex numbers start with ’0x’; octal numbers start with ’0’.  The CIF syntax requires that layer names consist of only uppercase letters and digits, and not exceed four characters.  The following is example of a layer description for poly-silicon:

"NP" 0x08080808  0x04040404  0x02020202  0x01010101

0x80808080  0x40404040  0x20202020  0x10101010

−F  font_file
(Font) The -F option indicates which font you want for your text.  The file must be in the directory ’/usr/lib/vfont’.  The default font is Roman 6 point.  This option is only useful if you have text on your plot. 

−O  filename
(Output) After parsing the CIF files, store an equivalent, but simple to parse CIF description in the specified file.  This option removes the include and array commands (see next section) and replaces them with equivalent standard CIF statements.  The resulting file is suitable for transmission to other facilities for fabrication. 

In the definition of CIF, provisions were made for local extensions.  All extension commands begin with a number.  A function of these extensions is to test what features would be suitable to include as part of the standard language.  It is important to note these extensions are not standard CIF and are not recognized by many programs interpreting CIF.  If you use these extensions, it is advisable to create another CIF file using the -O options described above before submitting your circuit for fabrication.  The following is a list of extensions recognized by cifplot.

0I  filename;
(Include) Read from the specified file as though it appeared in place of this command.  Include files can be nested up to 6 deep. 

0A  s m n dx dy ;
(Array) Repeat symbol s m times with dx spacing in the x-direction and n times with dy spacing in the y-direction.  s, m, and n are unsigned integers.  dx and dy are signed integers in CIF units. 

1  message;
(Print) Print out the message on standard output when it is read. 

2  "text" transform ;

2C  "text" transform ;
(Text on Plot) Text is placed on the plot at the position specified by the transformation.  The allowed transformations are identical to those allowed for the Call command.  The transformation affects only the point at which the beginning of the text is to appear.  The text is always plotted horizontally; therefore, the mirror and rotate transformations are not applicable to this procedure.  Normally text is placed above and to the right of the reference point.  The 2C command centers the text about the reference point. 

9  name;
(Name symbol) name is associated with the current symbol. 

94  name x y;

94  name x y layer;
(Name point) name is associated with the point (x, y). Any mask geometry crossing this point is also associated with name. If layer is present, then only geometry crossing the point on that layer is associated with name. For plotting this command is similar to text on plot. When executing circuit extraction, this command is used to give an explicit name to a node. Name must not have any spaces in it, and should not be a number. 

FILES

/usr/lib/vdump
/usr/lib/vfont/\(**
/usr/lib/vpd
/usr/tmp/cif\(**

ALSO SEE

A Guide to LSI Implementation by Hon and Sequin, Second Edition (Xerox PARC, 1980) for a description of CIF. 
Introduction to VLSI Systems by Mead and Conway (Addison-Wesley, 1980)

AUTHOR

Dan Fitzpatrick

BUGS

Output should be spooled. 

4th Berkeley Distribution  —  @(#)cifplot.11.1%Q%%Y%

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026