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