BSD 4_3_Reno release
[unix-history] / usr / src / old / man / cifplot.1
CommitLineData
a838aafc
KM
1.\" Copyright (c) 1980 Regents of the University of California.
2.\" All rights reserved. The Berkeley software License Agreement
3.\" specifies the terms and conditions for redistribution.
4.\"
1c15e888 5.\" @(#)cifplot.1 4.1 (Berkeley) 4/29/85
a838aafc
KM
6.\"
7.TH CIFPLOT 1 10/21/80
8.UC 4
9.SH NAME
10cifplot \- CIF interpreter and plotter
11.SH SYNOPSIS
12.B cifplot
13[
14.I options
15]
16file1.cif
17[
18file2.cif ...
19]
20.SH DESCRIPTION
21.I Cifplot
22takes a description in Cal-Tech Intermediate Form (CIF) and
23produces a plot.
24CIF is a low-level graphics language suitable for describing
25integrated circuit layouts.
26Although CIF can be used for other graphics applications,
27for ease of discussion it will be assumed that CIF is used to
28describe integrated circuit designs.
29.I Cifplot
30interprets any legal CIF 2.0 description including symbol renaming
31and Delete Definition commands.
32In addition,
33a number of local extensions have been added to CIF,
34including text on plots and include files.
35These are discussed later.
36Care has been taken to avoid any arbitrary restrictions on
37the CIF programs that can be plotted.
38.PP
39To get a plot call
40.I cifplot
41with the name of the CIF file to be plotted.
42If the CIF description is divided among several files call
43.I cifplot
44with the names of all files to be used.
45.I Cifplot
46reads the CIF description from the files in the order
47that they appear on the command line.
48Therefore the CIF
49.I End
50command should be only in the last file since
51.I cifplot
52ignores everything after the
53.I End
54command.
55After reading the CIF description but before plotting,
56.I cifplot
57will print a estimate of the size of the plot
58and then ask if it should continue to produce a plot.
59Type
60.B y
61to proceed and
62.B n
63to abort.
64A typical run might look as follows:
65.PP
66.in +0.5i
67%
68.B
69cifplot lib.cif sorter.cif
70.br
71Window -5700 174000 -76500 168900
72.br
73Scale: 1 micron is 0.004075 inches
74.br
75The plot will be 0.610833 feet
76.br
77Do you want a plot?
78.B y
79.PP
80After typing
81.B y
82.I cifplot
83will produce a plot on the Benson-Varian plotter.
84.PP
85.I Cifplot
86recognizes several command line options.
87These can be used to change the size and scale of the plot,
88change default plot options,
89and to select the output device.
90Several options may be selected.
91A dash(-) must precede each option specifier.
92The following is a list of options that may be included on
93the command line:
94.TP
95\fB\-w\fI xmin xmax ymin ymax
96.RB ( window )
97The -w options specifies the window;
98by default the window is set to be large enough
99to contain the entire plot.
100The windowing commands lets you plot just a small
101section of your chip, enabling you to see it in better
102detail.
103.I Xmin, xmax, ymin,
104and
105.I ymax
106should be specified in CIF coordinates.
107.TP
108\fB\-s\fI float
109.RB ( scale )
110The -s option sets the scale of the plot.
111By default the scale is set so that the window will fill the
112whole page.
113.I Float
114is a floating point number specifying the number of inches
115which represents
1161 micron.
117A recommended size is 0.02.
118.TP
119.BI \-l " layer_list"
120.RB ( layer )
121Normally all layers are plotted.
122The -l option specifies which layers NOT to plot.
123The
124.I layer_list
125consists of the layer names separated by commas, no spaces.
126There are two reserved names:
127.B text
128and
129.BR bbox .
130Including the layer name
131.B text
132in the list suppresses the plotting of text;
133.B bbox
134suppresses the bounding box around symbols.
135.TP
136.BI \-d " n"
137.RB ( depth )
138This option lets you limit the amount of detail plotted
139in a hierarchically designed chip.
140It will only instanciate the plot down
141.I n
142levels of calls.
143Sometimes too much detail can hide important features in a circuit.
144.TP
145.BI \-g " n"
146.RB ( grid )
147Draw a grid over the plot with spacing every
148.I n
149CIF units.
150.TP
151.B \-f
152.RB ( fuzzy )
153Don't print the border outlines around the merged features on each layer.
154.TP
155.B \-h
156.RB ( half )
157Plot at half normal resolution.
158.I
159(Not yet implemented.)
160.TP
161.B \-e
162.RB ( extensions )
163Accept only standard CIF. User
164extensions produce warnings.
165.TP
166.B \-I
167.RB ( non-Interactive )
168Do not ask for confirmation.
169Always plot.
170.TP
171.B \-L
172.RB ( List )
173Produce a listing of the CIF file on standard output as it is parsed.
174Not recommended unless debugging hand-coded CIF
175since CIF code can be rather long.
176.TP
177.BI \-a " n"
178.RB ( approximate )
179Approximate a roundflash with an
180.IR n -sided
181polygon.
182By default
183.I n
184equals 8.
185(I.e. roundflashes are approximated by octagons.)
186If
187.I n
188equals 0 then output circles for roundflashes.
189(It is best not to use full circles since they significantly
190slow down plotting.)
191.I
192(Full circles not yet implemented.)
193.TP
194\fB\-b\fI "text"
195.RB ( banner )
196Print the text at the top of the plot.
197.TP
198.B \-C
199.RB ( Comments )
200Treat comments as though they were spaces.
201Sometimes CIF files created at other universities
202will have several errors due to syntactically incorrect comments.
203(I.e. the comments may appear in the middle of a CIF command or
204the comment does not end with a semi-colon.)
205Of course, CIF files should not have any errors
206and these comment related errors must be fixed
207before transmitting the file for fabrication.
208But many times fixing these errors seems to be more trouble
209than it is worth, especially if you just want to get a plot.
210This option is useful in getting rid of many of these
211comment related syntax errors.
212.TP
213.B \-r
214.RB ( rotate )
215Rotate the plot 90 degrees.
216.TP
217.B \-V
218.RB ( Varian )
219Send output to the varian.
220(This is the default option.)
221.TP
222.B \-W
223.RB ( Wide )
224Send output directly to the versatec.
225.TP
226.B \-S
227.RB ( Spool )
228Store the output in a temporary file then
229dump the output quickly onto the Versatec.
230Makes nice crisp plots;
231also takes up a lot of disk space.
232.TP
233.BI \-T " n"
234.RB ( Terminal )
235Send output byte stream to standard output.
236Useful for setting up pipes.
237.I N
238is the number of bytes per line that the plotting device expects.
239.I
240(Not yet implemented.)
241.TP
242.B \-H
243.RB ( HP2648 )
244Send output to HP2648A terminal.
245This requires that
246.I cifplot
247is running in the foreground on an HP2648
248and that there is a scratch tape in the left tape drive of the terminal.
249.I
250(Not yet fully implemented.)
251.TP
252.BI \-X " basename"
253.RB ( eXtractor )
254From the CIF file create a circuit description
255suitable for switch level simulation.
256It creates two files:
257.IB basename .sim
258which contains the circuit description, and
259.IB basename .node
260which contains the node numbers and their location
261used in the circuit description.
262.IP
263When this option is invoked no plot is made.
264Therefore it is advisable not to use any of the other
265options that deal only with plotting.
266However, the
267.IR window ,
268.IR layer ,
269and
270.I approximate
271options are still appropriate.
272To get a plot of the circuit with the node numbers call
273.I cifplot
274again, without the
275.B \-X
276option, and include
277.IB basename .nodes
278in the list of CIF files to be plotted.
279(This file must appear in the list of files
280before the file with the CIF End command.)
281.I
282(Not yet fully implemented.)
283.TP
284.BI \-P " pattern_file"
285.RB ( Pattern )
286The -P option lets you specify your own
287layers and stipple patterns.
288.I Pattern_file
289may contain an arbitrary number of layer descriptors.
290A layer descriptor is the layer name in double quotes,
291followed by 8 integers.
292Each integer specifies 32 bits
293where ones are black and zeroes are white.
294Thus the 8 integers specify a 32 by 8 bit stipple pattern.
295The integers may be in decimal, octal, or hex.
296Hex numbers start with '0x';
297octal numbers start with '0'.
298The CIF syntax requires that layer names be made up of
299only uppercase letters and digits,
300and not longer than four characters.
301The following is example of a layer description
302for poly-silicon:
303.RS
304.TP
305"NP"
3060x08080808 0x04040404 0x02020202 0x01010101
307.RS
3080x80808080 0x40404040 0x20202020 0x10101010
309.RE
310.RE
311.TP
312.BI \-F " font_file"
313.RB ( Font )
314The -F option indicates which font you want for your text.
315The file must be in the directory '/usr/lib/vfont'.
316The default font is Roman 6 point.
317Obviously, this option is only useful if you have text on your plot.
318.TP
319.BI \-O " filename"
320.RB ( Output )
321After parsing the CIF files, store an equivalent but easy to parse
322CIF description in the specified file.
323This option removes the include and array commands (see next section)
324and replaces them with equivalent standard CIF statements.
325The resulting file is suitable for transmission to other facilities
326for fabrication.
327.PP
328In the definition of CIF provisions were made for local extensions.
329All extension commands begin with a number.
330Part of the purpose of these extensions is to test what features
331would be suitable to include as part of the standard language.
332But it is important to realize that these extensions are not
333standard CIF and that many programs interpreting CIF do not
334recognize them.
335If you use these extensions it is advisable to create another
336CIF file using the
337.B -O
338options described above before submitting your circuit for fabrication.
339The following is a list of extensions recognized by
340.IR cifplot .
341.TP
342.BI 0I " filename" ;
343.RB ( Include )
344Read from the specified file
345as though it appeared in place of this command.
346Include files can be nested up to 6 deep.
347.TP
348\fB0A\fI s m n dx dy \fB;
349.RB ( Array )
350Repeat symbol
351.I s m
352times with
353.I dx
354spacing in the x-direction
355and
356.I n
357times with
358.I dy
359spacing in the y-direction.
360.I s, m,
361and
362.I n
363are unsigned integers.
364.I dx
365and
366.I dy
367are signed integers in CIF units.
368.TP
369.BI 1 " message" ;
370.RB ( Print )
371Print out the message on standard output when it is read.
372.TP
373\fB2\fI "text" transform \fB;
374.TP
375\fB2C\fI "text" transform \fB;
376.RB ( "Text on Plot" )
377.I Text
378is placed on the plot
379at the position specified by the transformation.
380The allowed transformations are the same as the
381those allowed for the Call command.
382The transformation affects only the point at which the beginning
383of the text is to appear.
384The text is always plotted horizontally,
385thus the mirror and rotate transformations
386are not really of much use.
387Normally text is placed above and to the right of the reference point.
388The
389.B 2C
390command centers the text about the reference point.
391.TP
392.BI 9 " name" ;
393.RB ( "Name symbol" )
394.I name
395is associated with the
396current symbol.
397.TP
398.BI 94 " name x y" ;
399.TP
400.BI 94 " name x y layer" ;
401.RB ( "Name point" )
402.I name
403is associated with the point
404.RI ( x,
405.IR y ).
406Any mask geometry crossing this point is also associated with
407.IR name .
408If
409.I layer
410is present then just geometry crossing the point
411on that layer is associated with
412.IR name .
413For plotting this command is similar to text on plot.
414When doing circuit extraction this command is used to
415give an explicit name to a node.
416.I Name
417must not have any spaces in it,
418and it should not be a number.
419.SH FILES
420/usr/lib/vdump
421.br
422/usr/lib/vfont/*
423.br
424/usr/lib/vpd
425.br
426/usr/tmp/cif*
427.SH ALSO SEE
428.I
429A Guide to LSI Implementation
430by Hon and Se\*'quin,
431Second Edition
432(Xerox PARC, 1980)
433for a description of CIF.
434.br
435.I
436Introduction to VLSI Systems
437by Mead and Conway
438(Addison-Wesley,
4391980)
440.SH AUTHOR
441Dan Fitzpatrick
442.SH BUGS
443Output should be spooled.