FIZZ_FORMAT(10.6) FIZZ_FORMAT(10.6) NAME fizz - physical layout input language DESCRIPTION Fizz is a suite of tools to build circuit boards from a cir- cuit description. This section describes the input format for the various fizz commands. Most of the UCDS tools pro- duce files in cdl(10.6) format; these need to be converted into fizz format by cvt. Concepts Types, signals and chips are identified by name. Pins are identified by name and number. A name is a string of let- ters, digits or any of the characters +-.$/:<=>[]_. Some- times, the first character may not be a digit. A name may not be longer than 137 characters. The physical design consists of a board containing pin- holes. The description details the positions of the pin- holes and the position and orientation of the chips. I/O connectors may be considered as chips with unmoveable pack- ages. The coordinate system for the board has x increasing to the right and y increasing upwards. The origin is at the lower left corner; no coordinate should ever be negative. The circuit board and components mounted on it are described as rectangles. They are positioned so that their sides are parallel to one or other of the axes. Measurements are integers measuring 0.001 inch. Coordinates are expressed as pairs of integers separated by / with the x coordinate appearing first. All rectangular regions are half open; the upper and right edges are outside the rectangle. Syntax The input is a sequence of items. An item consists of a item-type followed by a number of fields. Multiple fields are indicated by a trailing { on the keyword line and termi- nated by a line containing a single }. Fields are a keyword followed by the value for that field. Certain values are spread over multiple lines between {} as described above. It is sometimes necessary to provide a list of coordinates. Invariably each coordinate is associated with a numbered object (say, a pin number). A one coordinate list consists of the index number followed by its coordinates as in 28 1700/2500 A series of equally spaced and consecutively numbered coor- dinates can be described by giving the first and last Page 1 Plan 9 (printed 12/21/24) FIZZ_FORMAT(10.6) FIZZ_FORMAT(10.6) coordinates and separating the two with - as in 28 1700/2500 - 30 1900/2000 Coordinate 29 is 1800/2250. If the index numbers are equally spaced but not consecutive a step size can follow the - as in 12 2000/7000 -9 147 2000/1000 This describes coordinates numbered 12, 21, 30, and so on. If a letter follows the coordinate specifications, it speci- fies the drill to be used for the pinholes. The known drill types are center, tab(/); cFCW1 n cFCW1 n cFCW1 n cFCW1 n cFCW1 n cFCW1 n cFCW1 n. A/33/B/34/C/39/D/42/E/50/F/62/G/106 H/107/I/108/J/20/K/110/L/111/M/112/N/113 O/114/P/115/Q/116/R/117/S/118/T/119/U/100 V/20/W/122/X/123/Y/124/Z/125 Items In the following descriptions, each item has a sample input defining all possible fields. Some fields are optional; mandatory fields are marked by ** which is not part of the actual input. Board{ name board_name align 1600/2000 9600/1700 1400/7100 9600/6600 layer signalside 1 plane 1 + VCC 2000 2000 8000 8000 datums 100/100 135 100/8000 45 10000/100 45 } The board name is set to board_name . The alignment points are used by wrap -s to align the board in Joe's semi- automatic wire wrapping machine. All four alignment points must be given. The layer field associates a layer number with a name to be used in XY artwork output. The layer num- bers 0 and 1 are the two outside layers. The plane fields represent signal planes for circuit boards. The format is layer sense signame minx miny maxx maxy . Sense is a charac- ter meaning add (+) or subtract (-) the rectangle for the signal signame . The planes can be viewed with place(10.1). Note that multiple signals can be present in one layer. The datums field sets the positions and orientations of the three datums (alignment marks for artwork). The orientation is the angle formed by the two squares in the datum. Package{ ** name DIP20 ** br -600 0 9600 3000 ** pins 1 20{ 1 0/0 - 10 9000/0 V 11 9000/3000 - 20 0/3000 V Page 2 Plan 9 (printed 12/21/24) FIZZ_FORMAT(10.6) FIZZ_FORMAT(10.6) } drills 1 2{ 1 500/1500 - 2 8500/1500 V } keepout 0 - VCC -1000 -4000 10000 3400 plane 0 - VCC -1000 -4000 10000 3400 plane 0 + VDD -500 -3500 9500 2900 xymask clump { arbitrary XY mask stuff } } Each package definition may have an arbitrary origin. The bounding rectangle br is used for placement; the values are ll.x, ll.y, ur.x, ur.y. The drills field is for mounting bolts etc; it does not affect placement. Both the pins and drills fields take a minimum and maximum pin number. Place- ment of a package involves both its pins and rectangle. The rectangle must not intersect any other placed package, and there must be a pin-hole for each of the pins. The keepout field looks like a plane definition (the sense is always set to -). Multiwire wiring will not enter the specified plane. The plane fields are similar to those in Board but are instantiated for every chip using this package. The xymask field denotes the clump name (clump) for this package and some optional XY mask input (used by artwork). The XY mask input has leading tabs deleted, not white space, as blanks are significant to XY mask. Chip{ ** name miscinv ** type 74F240 } This simply specifies the chip type. Type{ ** name 74F240 ** pkg DIP20 ** family F tt ii3i3i3i3gi3i3i3i3iv } The tt field must have a letter for every pin of the pack- age. Any pin whose letter is one of gvwxyz or GVWXYZ will be automatically attached to special signal 0,1,2,3,4,5 respectively. Other letters are ignored (they are used by other tools). Net port 4{ select 8 miscinv 14 syncff 13 ackff 1 } Page 3 Plan 9 (printed 12/21/24) FIZZ_FORMAT(10.6) FIZZ_FORMAT(10.6) Signal nets have the net name and number of points on the item line. All other lines are simple chipname , pinnumber pairs. Net descriptions are normally produced by cvt. Route{ ** name port ** alg hand route{ ackff 1 miscinv 14 select 8 syncff 13 } } This describes the routing for net name . The algorithm must be one of tsp (normal travelling salesman), tspe (travelling salesman specifying one end), mst (minimal spanning tree), mst3 (minimal spanning tree of degree three), default (what- ever is specified in the wrap command) and hand (the exact order is given). The routing is a list of chipname,pinnumber pairs. Positions{ select 3200/2300 0 0 miscinv 4900/1700 0 0 syncff 2400/2700 0 0 } Specify the position data for each chip. Each line has the form chipname coord orientation flags . The orientation is the number of right angles clockwise to rotate the package. The following bits in flags, which should be initialised to zero, have a defined meaning: 4 this chip is unplaced 8 the bounding rectangle is ignored in placement 16 the pinholes are ignored in placement. 32 the names are ignored in the silk screen output. Pinholes{ 1400/6900 3200 300 10 V 6650/6900 3200 300 10 V 1600/1700 8100 1000 10/30 V 1600/2700 8100 1000 10/30 V } Each pinhole specification has the form coord lx ly spacing diam which defines a rectangular array of pin-holes with diameter of diam. The lower left corner of the rectangle is coord, and the width and height are lx,ly respectively. The pins are placed spacing apart. If spacing is of the form sx/sy, the spacings in the x and y directions are set inde- pendently. Page 4 Plan 9 (printed 12/21/24) FIZZ_FORMAT(10.6) FIZZ_FORMAT(10.6) Vsig 0{ name GND pins 96{ 1 1800/2100 - 16 9300/2100 A 17 1800/3100 - 32 9300/3100 A 33 1800/4100 - 48 9300/4100 A 49 1800/5100 - 64 9300/5100 A 65 1800/6100 - 80 9300/6100 A 81 1800/6700 - 96 9300/6700 A } } This defines the special signals. The special signal number follows Vsig. Pins are numbered from 1; the number of pins is given in the pins field line. A warning is given if any pins are not specified. Wires { level COMP net iod15 { 8100/8500 8100/8550 8000/8650 } Wires specify the inflection points of a signal net. Each instance of a net creates a new wire. The level can also be specified, although it is ignored by the fizz tools. SEE ALSO fizz(10.1) Page 5 Plan 9 (printed 12/21/24)