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