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