|
|
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.