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