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