|
|
1.1 ! root 1: .TH FIZZ 10.5 UCDS ! 2: .de Cs ! 3: .sp ! 4: .ne 3 ! 5: .nf ! 6: .ft L ! 7: .. ! 8: .de Ce ! 9: .fi ! 10: .ft R ! 11: .. ! 12: .SH NAME ! 13: fizz \- physical layout input language ! 14: .SH DESCRIPTION ! 15: .I Fizz ! 16: is a set of tools to build circuit boards from a circuit description. ! 17: This section describes the input format for the various ! 18: .I fizz ! 19: commands. ! 20: Most of the UCDS tools produce files in ! 21: .IR cdl (10.5) ! 22: format; ! 23: these need to be converted into ! 24: .I fizz ! 25: format by ! 26: .I "fizz cvt" . ! 27: .SS Concepts ! 28: Types, signals and chips are identified by name. ! 29: Pins are identified by name and number. ! 30: A ! 31: .I name ! 32: is a string of letters, ! 33: digits or any of the characters ! 34: .BR +-.$/:<=>[]\(ul . ! 35: Sometimes, the first character ! 36: may not be a digit. ! 37: A name may not be longer than 137 characters. ! 38: .PP ! 39: The physical design ! 40: consists of a ! 41: .I board ! 42: containing ! 43: .IR pin-holes . ! 44: The description details the positions of the pin-holes and the ! 45: position and orientation of the chips. ! 46: I/O connectors may beconsidered as chips with unmoveable packages. ! 47: .PP ! 48: The coordinate system for the board has ! 49: .I x ! 50: increasing to the right and ! 51: .I y ! 52: increasing upwards. ! 53: The origin is at the lower left corner; ! 54: no coordinate should ever be negative. ! 55: The circuit board and components mounted on it are described ! 56: as rectangles. ! 57: They are positioned so that their sides are parallel to one or other ! 58: of the axes. ! 59: Measurements are integers measuring 0.001 inch. ! 60: Coordinates are expressed as pairs of integers separated by ! 61: .B / ! 62: with ! 63: the ! 64: .I x ! 65: coordinate appearing first. ! 66: All rectangular regions are half open; ! 67: the upper and right edges are outside the rectangle. ! 68: .SS Syntax ! 69: The input is a sequence of items. ! 70: An item consists of a item-type followed by a number of fields. ! 71: Multiple fields are indicated by a trailing ! 72: .B { ! 73: on the keyword line and terminated by a line containing a single ! 74: .B } . ! 75: Fields are a keyword followed by the value for that field. ! 76: Certain values are spread over multiple lines between ! 77: .B {} ! 78: as described above. ! 79: .PP ! 80: It is sometimes necessary to provide a list of ! 81: coordinates. ! 82: Invariably each coordinate is associated with a numbered object ! 83: (say, a pin number). ! 84: A one coordinate list consists of the index ! 85: number followed by its coordinates as in ! 86: .RS ! 87: .PP ! 88: .B ! 89: 28 1700/2500 ! 90: .RE ! 91: A series of equally spaced ! 92: and consecutively numbered coordinates can be described by ! 93: giving the first and last coordinates and separating the ! 94: two with ! 95: .B - ! 96: as in ! 97: .RS ! 98: .PP ! 99: .B ! 100: 28 1700/2500 - 30 1900/2000 ! 101: .RE ! 102: Coordinate 29 is 1800/2250. ! 103: If the index numbers are equally spaced but not consecutive ! 104: a step size can follow the `\fB-\fR' as in ! 105: .RS ! 106: .PP ! 107: .B ! 108: 12 2000/7000 -9 147 2000/1000 ! 109: .RE ! 110: This describes coordinates numbered 12, 21, 30, and so on. ! 111: If a letter follows the coordinate specifications, ! 112: it specifies the drill to be used for the pinholes. ! 113: The known drill types are ! 114: .RS ! 115: .PD 0 ! 116: .TP ! 117: .B A ! 118: 33 ! 119: .TP ! 120: .B B ! 121: 34 ! 122: .TP ! 123: .B C ! 124: 39 ! 125: .TP ! 126: .B D ! 127: 42 ! 128: .TP ! 129: .B E ! 130: 50 ! 131: .TP ! 132: .B F ! 133: 62 ! 134: .TP ! 135: .B G ! 136: 106 ! 137: .TP ! 138: .B H ! 139: 107 ! 140: .TP ! 141: .B I ! 142: 108 ! 143: .TP ! 144: .B J ! 145: 20 ! 146: .TP ! 147: .B K ! 148: 110 ! 149: .TP ! 150: .B L ! 151: 111 ! 152: .TP ! 153: .B M ! 154: 112 ! 155: .TP ! 156: .B N ! 157: 113 ! 158: .TP ! 159: .B O ! 160: 114 ! 161: .TP ! 162: .B P ! 163: 115 ! 164: .TP ! 165: .B Q ! 166: 116 ! 167: .TP ! 168: .B R ! 169: 117 ! 170: .TP ! 171: .B S ! 172: 118 ! 173: .TP ! 174: .B T ! 175: 119 ! 176: .TP ! 177: .B U ! 178: 100 ! 179: .TP ! 180: .B V ! 181: 20 ! 182: .TP ! 183: .B W ! 184: 122 ! 185: .TP ! 186: .B X ! 187: 123 ! 188: .TP ! 189: .B Y ! 190: 124 ! 191: .TP ! 192: .B Z ! 193: 125 ! 194: .PD ! 195: .RE ! 196: .SS Items ! 197: In the following descriptions, ! 198: each item has a sample input defining all possible fields. ! 199: Some fields are optional; mandatory fields are marked by ! 200: .B ** ! 201: which is ! 202: .I not ! 203: part of the actual input. ! 204: .Cs ! 205: Board{ ! 206: name board_name ! 207: align 1600/2000 9600/1700 1400/7100 9600/6600 ! 208: layer signalside 1 ! 209: plane 1 + VCC 2000 2000 8000 8000 ! 210: datums 100/100 135 100/8000 45 10000/100 45 ! 211: } ! 212: .Ce ! 213: The board name is set to ! 214: .IR board_name . ! 215: The alignment points are used by ! 216: .B "wrap -s" ! 217: to align the board in Joe's semi-automatic wire wrapping machine. ! 218: All four alignment points must be given. ! 219: The ! 220: .I layer ! 221: field associates a layer number with a name to be used in XY artwork output. ! 222: The layer numbers ! 223: .B 0 ! 224: and ! 225: .B 1 ! 226: are the two outside layers. ! 227: The ! 228: .B plane ! 229: fields represent signal planes for circuit boards. ! 230: The format is ! 231: .IR "layer sense signame minx miny maxx maxy" . ! 232: .I Sense ! 233: is a character ! 234: meaning add ! 235: .RB ( + ) ! 236: or subtract ! 237: .RB ( - ) ! 238: the rectangle for the signal ! 239: .IR signame . ! 240: The planes can be viewed with ! 241: .IR place (10.1). ! 242: Note that multiple signals can be present in one layer. ! 243: The ! 244: .I datums ! 245: field sets the positions and orientations of the three datums ! 246: (alignment marks for artwork). ! 247: The orientation is the angle formed by the two squares in the datum. ! 248: .Cs ! 249: Package{ ! 250: ** name DIP20 ! 251: ** br -600 0 9600 3000 ! 252: ** pins 1 20{ ! 253: 1 0/0 - 10 9000/0 V ! 254: 11 9000/3000 - 20 0/3000 V ! 255: } ! 256: drills 1 2{ ! 257: 1 500/1500 - 2 8500/1500 V ! 258: } ! 259: keepout 0 - VCC -1000 -4000 10000 3400 ! 260: plane 0 - VCC -1000 -4000 10000 3400 ! 261: plane 0 + VDD -500 -3500 9500 2900 ! 262: xymask clump { ! 263: arbitrary XY mask stuff ! 264: } ! 265: } ! 266: .Ce ! 267: Each package definition may have an arbitrary origin. ! 268: The bounding rectangle ! 269: .B br ! 270: is used for placement; ! 271: the values are ll.x, ll.y, ur.x, ur.y. ! 272: The ! 273: .B drills ! 274: field is for mounting bolts etc; ! 275: it does not affect placement. ! 276: Both the ! 277: .B pins ! 278: and ! 279: .B drills ! 280: fields take a minimum and maximum pin number. ! 281: Placement of a package involves both its pins and rectangle. ! 282: The rectangle must not intersect any other placed package, ! 283: and there must be a pin-hole for each of the pins. ! 284: The ! 285: .B keepout ! 286: field looks like a plane definition (the sense is always set to ! 287: .BR - ). ! 288: Multiwire wiring will not enter the specified plane. ! 289: The ! 290: .B plane ! 291: fields are similar to those in ! 292: .B Board ! 293: but are instantiated for every chip using this package. ! 294: The ! 295: .B xymask ! 296: field denotes the clump name ! 297: .RI ( clump ) ! 298: for this package and some optional XY mask input ! 299: (used by ! 300: .I artwork (10.1)). ! 301: The XY mask input has leading tabs deleted, not white space, as blanks ! 302: are significant to XY mask. ! 303: .Cs ! 304: Chip{ ! 305: ** name miscinv ! 306: ** type 74F240 ! 307: } ! 308: .Ce ! 309: This simply specifies the chip type. ! 310: .Cs ! 311: Type{ ! 312: ** name 74F240 ! 313: ** pkg DIP20 ! 314: tt ii3i3i3i3gi3i3i3i3iv ! 315: } ! 316: .Ce ! 317: The ! 318: .B tt ! 319: field must have a letter for every pin of the package. ! 320: Any pin whose letter is one of ! 321: .B gvwxyz ! 322: or ! 323: .B GVWXYZ ! 324: will be automatically attached to special signal 0,1,2,3,4,5 respectively. ! 325: Other letters are ignored (they are used by other tools). ! 326: .Cs ! 327: Net port 4{ ! 328: select 8 ! 329: miscinv 14 ! 330: syncff 13 ! 331: ackff 1 ! 332: } ! 333: .Ce ! 334: Signal nets have the net name and number of points on the item line. ! 335: All other lines are simple ! 336: .IR chipname , pinnumber ! 337: pairs. ! 338: Net descriptions are normally produced by ! 339: .I "fizz cvt" ! 340: from the output of ! 341: .I cdm ! 342: or ! 343: .I cdmglob . ! 344: .Cs ! 345: Route{ ! 346: ** name port ! 347: ** alg hand ! 348: route{ ! 349: ackff 1 ! 350: miscinv 14 ! 351: select 8 ! 352: syncff 13 ! 353: } ! 354: } ! 355: .Ce ! 356: This describes the routing for net ! 357: .IR name . ! 358: The algorithm must be one of ! 359: .B tsp ! 360: (normal travelling salesman), ! 361: .B tspe ! 362: (travelling salesman specifying one end), ! 363: .B mst ! 364: (minimal spanning tree), ! 365: .B mst3 ! 366: (minimal spanning tree of degree three), ! 367: .B default ! 368: (whatever is specified in the ! 369: .I wrap ! 370: command) ! 371: and ! 372: .B hand ! 373: (the exact order is given). ! 374: The routing is a list of ! 375: .IR chipname , pinnumber ! 376: pairs. ! 377: .Cs ! 378: Positions{ ! 379: select 3200/2300 0 0 ! 380: miscinv 4900/1700 0 0 ! 381: syncff 2400/2700 0 0 ! 382: } ! 383: .Ce ! 384: Specify the position data for each chip. ! 385: Each line has the form ! 386: .IR "chipname coord orientation flags" . ! 387: The orientation is the number of right angles clockwise to ! 388: rotate the package. ! 389: The following bits in ! 390: .I flags ! 391: have a defined meaning: ! 392: .RS ! 393: .PD 0 ! 394: .TP ! 395: .B 4 ! 396: this chip is unplaced ! 397: .TP ! 398: .B 8 ! 399: the bounding rectangle is ignored in placement ! 400: .TP ! 401: .B 16 ! 402: the pinholes are ignored in placement. ! 403: .B 32 ! 404: the names are ignored in the silk screen output. ! 405: .br ! 406: .I Flags ! 407: should be initialised to zero. ! 408: .RE ! 409: .PD ! 410: .Cs ! 411: Pinholes{ ! 412: 1400/6900 3200 300 10 V ! 413: 6650/6900 3200 300 10 V ! 414: 1600/1700 8100 1000 10/30 V ! 415: 1600/2700 8100 1000 10/30 V ! 416: } ! 417: .Ce ! 418: Each pinhole specification has the form ! 419: .IR "coord lx ly spacing diam" ! 420: which defines a rectangular array of pin-holes with diameter of ! 421: .IR diam . ! 422: The lower left corner of the rectangle is ! 423: .IR coord , ! 424: and the width and height are ! 425: .I lx,ly ! 426: respectively. ! 427: The pins are placed ! 428: .I spacing ! 429: apart. ! 430: If ! 431: .I spacing ! 432: is of the form ! 433: .IR sx / sy , ! 434: the spacings in the ! 435: .IR x and y ! 436: directions are set independently. ! 437: .Cs ! 438: Vsig 0{ ! 439: name GND ! 440: pins 96{ ! 441: 1 1800/2100 - 16 9300/2100 A ! 442: 17 1800/3100 - 32 9300/3100 A ! 443: 33 1800/4100 - 48 9300/4100 A ! 444: 49 1800/5100 - 64 9300/5100 A ! 445: 65 1800/6100 - 80 9300/6100 A ! 446: 81 1800/6700 - 96 9300/6700 A ! 447: } ! 448: } ! 449: .Ce ! 450: This defines the special signals. ! 451: The special signal number follows ! 452: .BR Vsig . ! 453: Pins are numbered from 1; ! 454: the number of pins is given in the ! 455: .B pins ! 456: field line. ! 457: A warning is given if any pins are not specified. ! 458: .SH SEE ALSO ! 459: .IR fizz (10.1)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.