User Commands CIFPLOT(1) NAME cifplot - CIF interpreter and plotter SYNOPSIS cifplot [ options ] file1.cif [ file2.cif ... ] DESCRIPTION Cifplot takes a description in CalTech Intermediate Form (CIF) and produces a plot. CIF is a low-level graphics lan- guage suitable for describing integrated circuit layouts. Although CIF can be used for other graphics applications, for ease of discussion it will be assumed that 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. These are discussed later. Care has been taken to avoid any arbitrary restrictions on the CIF files that can be plotted. To get 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 that they appear on the command line. Therefore the CIF End command should be only in the last file since cif- plot ignores everything after the End command. After read- ing the CIF description but before plotting, cifplot will print a estimate of the size of the plot and then ask if it should continue to produce a plot. Type y to proceed and n to abort. A typical run might look 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 will produce a plot on the Benson- Varian plotter. Cifplot recognizes several command line options. These can be used to change the size and scale of the plot, change default plot options, and to select the output device. Sev- eral 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 specifies the window; by default the window is set to be large enough to contain the entire plot. The windowing commands lets you plot SunOS 5.6 Last change: 9/3/85 1 User Commands CIFPLOT(1) just 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 that the window will fill the whole page. Float is a floating point number spec- ifying the number of inches which represents 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, no spaces. There are some reserved names: allText, bbox, outline, text, pointName, and symbolName. Including the layer name allText in the list suppresses the plot- ting of text; bbox suppresses the bounding box around symbols. outline suppresses the thin outline that bor- ders each layer. The keywords text, pointName, and symbolName suppress the plotting of certain text cre- ated by local extension commands. text eliminates text created by user extension 2. pointName eliminates text created by user extension 94. symbolName eliminates text created by user extension 9. allText, pointName, and symbolName may be abbreviated by at, pn, and sn repectively. -c n (copies) Makes n copies of the plot. Works only for the Varian and Versatec. Default is 1 copy. -d n (depth) This option lets you limit the amount of detail plotted in a hierarchically designed chip. It 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. -h (half) Plot at half normal resolution. (Not yet imple- mented.) -e (extensions) Accept only standard CIF. User extensions produce warnings. -I (non-Interactive) Do not ask for confirmation. Always plot. SunOS 5.6 Last change: 9/3/85 2 User Commands CIFPLOT(1) -L (List) Produce a listing of the CIF file on standard output as it is parsed. Not recommended unless debug- ging 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 out- put circles for roundflashes. (It is best not to use full circles since they significantly slow down plot- ting.) (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 com- ments. (I.e. the comments may appear in the middle of a CIF command or the comment does not end with a semi- colon.) Of course, CIF files should not have any errors and these comment related errors must be fixed before transmitting the file for fabrication. But many times fixing these errors seems to be more trouble than it is worth, especially if you just want to get a plot. This option is useful in getting rid of many of these comment related syntax errors. -r (rotate) Rotate the plot 90 degrees. -H (Hewlett-Packard) Send output to the HP Plotter. (This is the default option.) -f (fill) Fill rectangles with diagonal crosshatching. This option should be used sparingly, as it DRAMATI- CALLY increases plotting time and reduces pen life. -p n (pitch) Set the crosshatching pitch for filled rectan- gles (in .001 inch units). Default is 60. Automati- cally sets fill. n must be greater than 3. -S (Spool) Store the output in a temporary file then dump the output quickly onto the Versatec. Makes nice crisp plots; also takes up a lot of disk space. -X basename (eXtractor) From the CIF file create a circuit descrip- tion suitable for switch level simulation. It 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 SunOS 5.6 Last change: 9/3/85 3 User Commands CIFPLOT(1) description. When this option is invoked no plot is made. Therefore it is advisable not to use any of the other options that deal only with plotting. However, the window, layer, and approximate options are still appropriate. To get 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.) -c n (copies) The -c specifies the number of copies of the plot you would like. This allows you to get many copies of a plot with no extra computation. -P pattern_file (Pattern) The -P option lets you specify your own lay- ers and stipple patterns. Pattern_file may contain an arbitrary number of layer descriptors. A layer descriptor is the layer name in double quotes, followed by 8 integers. Each integer specifies 32 bits where ones are black and zeroes are white. Thus the 8 inte- gers specify a 32 by 8 bit stipple pattern. The inte- gers may be in decimal, octal, or hex. Hex numbers start with '0x'; octal numbers start with '0'. The CIF syntax requires that layer names be made up of only uppercase letters and digits, and not longer than 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. Obviously, this option is only useful if you have text on your plot. -O filename (Output) After parsing the CIF files, store an equiva- lent but easy to parse CIF description in the specified file. This option removes the include and array com- mands (see next section) and replaces them with equiva- lent standard CIF statements. The resulting file is suitable for transmission to other facilities for fab- rication. SunOS 5.6 Last change: 9/3/85 4 User Commands CIFPLOT(1) In the definition of CIF provisions were made for local extensions. All extension commands begin with a number. Part of the purpose of these extensions is to test what fea- tures would be suitable to include as part of the standard language. But it is important to realize that these exten- sions are not standard CIF and that many programs interpret- ing CIF do not recognize them. 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 recog- nized 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-direc- tion. 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 posi- tion specified by the transformation. The allowed transformations are the same as the 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, thus the mir- ror and rotate transformations are not really of much use. 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 sym- bol. 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 associ- ated with name. If layer is present then just geometry crossing the point on that layer is associated with SunOS 5.6 Last change: 9/3/85 5 User Commands CIFPLOT(1) name. For plotting this command is similar to text on plot. When doing circuit extraction this command is used to give an explicit name to a node. Name must not have any spaces in it, and it should not be a number. FILES ~cad/.cadrc ~/.cadrc ~cad/lib/fix.6 ~cad/lib/pat.* /usr/tmp/#cif* SEE ALSO cadrc(5) A Guide to LSI Implementation by Hon and Sequin, Second Edi- tion (Xerox PARC, 1980) for a description of CIF. AUTHOR Dan Fitzpatrick BUGS The -r is somewhat kludgy and does not work well with the other options. Space before semi-colons in local extensions can cause syntax errors. The -O option produces simple cif with no scale factors in the DS commands. Because of this you must supply a scale factor to some programs, such as the -l option to cif2ca. The -X option is no longer supported. SunOS 5.6 Last change: 9/3/85 6