|
|
1.1 root 1: .PD .2i
2: .ds or \fP\ |\ \fB
3: .de cg
4: .sp
5: .PP
6: .ne 5
7: .B \\$1
8: .PP
9: ..
10: .TH CDL 10.5 UCDS(almost obsolete)
11: .SH NAME
12: cdl \- circuit description language
13: .SH DESCRIPTION
14: The circuit descriptions used by the various design aid programs
15: are expressed in dialects of the circuit design language described below.
16: A complete description consists of two parts;
17: an electrical circuit with chips, pins and connecting signals,
18: and a physical layout with pins and chip positions.
19: The commands described below are recommended;
20: others exist and may work but are regarded as obsolete.
21: .sp
22: .PP
23: .SS LOGICAL DESIGN
24: .PP
25: A circuit consists of
26: .I chips
27: connected by
28: .I signals.
29: The point of connection is denoted by a
30: .I pin.
31: Each chip has a
32: .I type
33: which describes its logical and electrical
34: characteristics.
35: (For example, \fB74S181\fP is a chip type.)
36: .PP
37: Types, signals and chips are identified by name.
38: Pins are identified by name and number.
39: A
40: .I name
41: is a string of letters,
42: digits or any of the characters
43: .BR +\-.\ $\ /:<=>[]\(ul .
44: Sometimes, the first character
45: may not be a digit.
46: A name may not be longer than 16 characters.
47: .PP
48: In the following description,
49: literals appear as
50: .B bold,
51: whereas names are in
52: .I italic.
53: [ ] enclose an optional item and
54: a list of items is written
55: .PP
56: .RS
57: {\fIitem\fR}
58: .RE
59: .PP
60: Commands are separated by either newline or
61: semi-colon.
62: A comment
63: starts with a
64: .B %
65: and ends with a newline
66: and may appear on any line.
67: All white space serves only to separate tokens.
68: .cg General
69: .B .p
70: .I number
71: .br
72: Specifies the page number for subsequent input.
73: .PP
74: .B .f
75: [
76: .I file
77: ]
78: .br
79: Subsequent input originated in
80: .IR file .
81: If
82: .I file
83: is not present, the previous file name is restored.
84: .PP
85: .B .q
86: .br
87: End of file.
88: .cg Signal\ Description
89: .I signal
90: [
91: .I pin-number
92: ] [ [
93: .I ,
94: ]
95: .I pin-name
96: ]
97: .br
98: .I name
99: =
100: .I signal
101: .br
102: Lines that do not start with a period are signal
103: definition lines.
104: Signal definitions refer to the most recent
105: .B .c
106: command, the pin name and number refers to the chip.
107: .cg Circuit\ Description
108: .B .c
109: .I name
110: [ [
111: .B ,
112: ]
113: .I type
114: ]
115: .br
116: .B .o
117: .I name
118: [ [
119: .B ,
120: ]
121: .I type
122: ]
123: .br
124: Instantiates a chip
125: .I name,
126: of type
127: .IR type .
128: This is typically used for I/O connectors.
129: The command may occur more than once.
130: The type of a chip need only be specified
131: once in a circuit description.
132: Signal descriptions that follow
133: a
134: .B .c
135: or
136: .B .o
137: command refer to pins on the chip.
138: .PP
139: .ne 10
140: .B .c
141: .I name
142: .B =
143: .I chip
144: .br
145: .I chip
146: must be previously defined and
147: .I name
148: is a synonym for
149: .I chip.
150: .PP
151: .B .m
152: .I name1 name2
153: .br
154: Macro parameter definition.
155: The signal
156: .I name1
157: is to be associated with macro parameter
158: .I name2\|.
159: .PP
160: .B .h
161: .I signal
162: .br
163: Hand wired signal.
164: The argument is the
165: .I name
166: of a signal that will be ignored by an
167: automatic wiring program.
168: .cg Chip\ Type\ Description
169: .B .t
170: .I name package
171: .RI [ pin ]\ ...
172: .br
173: Define a chip type
174: .I name.
175: The name of the
176: .I package
177: in which it is installed,
178: and pin numbers,
179: .I pin,
180: for the special signal connections
181: are specified.
182: The special voltage
183: pin numbers, if present, must be in the same
184: sequence with which the special signals are numbered.
185: This usage is discouraged;
186: use the \f3.t[tT]\fP commands described below.
187: (See
188: .B .v
189: command.)
190: All commands of the form ".t?" are meant to follow a .t line.
191: .PP
192: .B .t
193: .I name
194: .B =
195: .I type
196: .br
197: .I name
198: is a synonym for
199: .IR type .
200: .PP
201: .BI .tt \ sequence_of_single_character_pin_descriptors
202: .br
203: The number of characters must equal the numbers of pins on this \fItype\fP\|.
204: The meaning of the descriptors is given in \fIwcheck\fP\|.
205: .PP
206: .BI .tT \ sequence_of_single_character_pin_descriptors
207: .br
208: This means the same as the equivalent
209: .B .tt
210: command except that every
211: .B [gvwxyz]
212: pin must have a corresponding
213: .B .vb
214: pin.
215: .PP
216: .B .ta
217: .I pin1
218: \&...
219: .I pin2
220: \&...
221: .br
222: .I pin1
223: \&...
224: is the set of address pins, in order,
225: such that the most significant address bit
226: appears first in the list.
227: .I pin2
228: \&...
229: is the set of output pins.
230: .PP
231: .B .td
232: .I delay
233: .I pin1
234: \&...
235: .B \-
236: .I pin2
237: \&...
238: .br
239: The propagation delay (conventionally in nanoseconds) from inputs
240: .I pin1 ...
241: to outputs
242: .I pin2 ...
243: is given.
244: .PP
245: .B .ti
246: .I hi
247: .I lo
248: .I pin
249: \&...
250: .br
251: The input (or output) current range for the set of pins
252: is given by
253: .I hi
254: and
255: .I lo.
256: Current is conventionally expressed in milliamperes.
257: .PP
258: .B .tp
259: .I name
260: .I number
261: \&...
262: .br
263: The given
264: pin
265: .I name
266: is associated with the pin
267: .I number.
268: .I Name
269: may contain generators such as
270: .B Q[0-7]
271: which cause pin names
272: .B Q0
273: .B \&...
274: .B Q7
275: to be assigned to the pin numbers given.
276: Multiple bracket constructs may be used.
277: In any case, the resulting list is lexicographically sorted before
278: assigning to pin numbers.
279: .PP
280: .B .ts
281: .I setup
282: .I pin
283: \&...
284: .br
285: Specifies the setup time required by the device
286: at the pins given.
287: .PP
288: .B .tw
289: .I c1
290: .I c2
291: .br
292: .I c1
293: is the average current drawn by the device
294: in milliamperes and
295: .I c2
296: is the maximum.
297: Both are specified as floating point numbers.
298: .SH
299: .ne 9
300: .sp
301: .PP
302: .B PHYSICAL DESIGN
303: .PP
304: The physical design
305: consists of a
306: .I board
307: containing
308: .IR pin-holes .
309: The description details the positions of the pin-holes and the
310: position and orientation of the chips.
311: No special case is made of I/O connectors;
312: they are best considered as unmoveable packages.
313: The description is divided into two files;
314: details can be found in
315: .IR board (7).
316: .PP
317: The coordinate system for the board is with
318: .I x
319: increasing to the right and
320: .I y
321: increasing upwards.
322: The origin is at the lower left corner;
323: thus, no coordinate should ever be negative.
324: The circuit board and components mounted on it are described
325: as rectangles.
326: They are positioned so that their sides are parallel to one or other
327: of the axes used to describe circuit board geometry.
328: Measurements are expressed in
329: units of
330: .B 1/100
331: of an inch.
332: All are integers and have no explicit decimal point.
333: Coordinates are expressed as pairs of integers separated by `\fB/\fR'
334: with
335: the
336: .I x
337: coordinate appearing first.
338: All rectangular regions are half open;
339: the upper and right edges are outside the rectangle.
340: .PP
341: It is sometimes necessary to provide a list of
342: coordinates.
343: Invariably each coordinate is associated with a numbered item
344: (say, a pin number).
345: A one item list consists of the item
346: number followed by its coordinates as in
347: .RS
348: .PP
349: 28 170/250
350: .RE
351: A series of equally spaced
352: and consecutively numbered items can be described by
353: giving the first and last item descriptions and separating the
354: two with `\fB\-\fR' as in
355: .RS
356: .PP
357: 28 170/250 \- 30 190/200
358: .RE
359: (item number 29 appears at position 180/225).
360: If the item numbers are equally spaced but not consecutive
361: a step size can follow the `\fB\-\fR' as in
362: .RS
363: .PP
364: 12 200/700 \-9 147 200/100
365: .RE
366: (which describes the positions of items numbered 12, 21, 30 etc.).
367: .cg Board\ Description
368: .B .B
369: .I string
370: .br
371: The board name is set to
372: .IR string .
373: .PP
374: .B .A
375: .I coord coord coord coord
376: .br
377: The points used in board alignment are
378: .IR "coord , coord , coord , coord ."
379: .PP
380: .B .K
381: .I "name pmin pmax ox oy cx cy"
382: .br
383: Define a package
384: .I name
385: with a bounding rectangle with lower left corner
386: .I (ox,oy)
387: and upper right corner
388: .I (cx,cy)
389: as values relative to pin
390: .I pmin
391: of the package.
392: The package has pins numbered from
393: .I pmin
394: to
395: .I pmax
396: inclusive;
397: expect trouble if
398: .I pmin
399: is not zero or one.
400: Placement of a package involves both its pins and rectangle.
401: The rectangle must not intersect any other placed package,
402: and there must be a pin-hole for each of the pins.
403: .PP
404: .B .ka
405: .I anything
406: .br
407: After skipping white space
408: the rest of the line is stored as an artwork reference.
409: .PP
410: .B .kd
411: .I letter
412: .br
413: Specifies the drill type for following
414: .B .kp
415: commands.
416: There can be multiple
417: .B .kd
418: commands per package.
419: Currently recognized drill types are found in
420: \f(CW/usr/jhc/pins/drills\fP.
421: .PP
422: .B .kp
423: .RI {\| pin
424: .IR coord }
425: .br
426: One or more
427: .B .kp
428: commands following a
429: .B .k
430: command
431: gives the list of pins
432: and their coordinates relative to pin
433: .IR pmin .
434: .PP
435: .B .ku
436: .br
437: Guarantees this package will not be moved by any automatic process.
438: .PP
439: .B .v
440: .I number name
441: .br
442: Define Voltage and Ground special signals.
443: The special signals are numbered consecutively from zero to five.
444: The arguments are
445: the special signal
446: .I number
447: and the signal
448: .I name
449: to which it corresponds.
450: .PP
451: .B .vb
452: .RI { pin
453: .IR coord }
454: .br
455: Special signal pin positions.
456: One or more
457: .B .vb
458: commands following a
459: .B .v
460: command gives the list of pins
461: and their positions on the circuit board.
462: The pins should be numbered consecutively from one.
463: .PP
464: .B .vd
465: .I number
466: .br
467: Specifies the drill type for following
468: .B .vb
469: commands.
470: There can be multiple
471: .B .vd
472: commands.
473: The types are as descibed for \f3.kd\fP.
474: .PP
475: .B .C
476: .I name coord orientation flags
477: .br
478: Specifies the position and orientation for the chip
479: .IR name .
480: The orientation is the number of right angles clockwise to
481: rotate the package.
482: The meaning of
483: .I flags
484: can be found in
485: .IR /usr/include/cdl.h ;
486: it should be initialised to zero.
487: .PP
488: .B .P
489: .I coord lx ly spacing diam
490: .br
491: Define a rectangular array of pin-holes with diameter of
492: .IR diam .
493: The lower left corner of the rectangle is
494: .IR coord ,
495: and the width and height are
496: .I lx,ly
497: respectively.
498: The pins are placed
499: .I spacing
500: apart.
501: If
502: .I spacing
503: is of the form
504: .IR sx / sy ,
505: the spacings in the
506: .IR x and y
507: directions are set independently.
508: .PP
509: .B .R
510: .I coord lx ly type
511: .br
512: Define a special rectangular region.
513: Type
514: .B .A
515: defines a region that will not be used by the
516: automatic placement algorithm.
517: .PP
518: .B .W
519: .I chip1 pin1 chip2 pin2 net
520: .br
521: Define a wire link between
522: .I pin1
523: of
524: .I chip1
525: and
526: .I pin2
527: of
528: .IR chip2 .
529: The net name is
530: .IR net .
531: .sp 2
532: A line with any undefined key causes most programs to halt.
533: .SH SEE ALSO
534: .IR cdm (10.1)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.