PADDLE(10.6) PADDLE(10.6)
NAME
paddle - pal description language
DESCRIPTION
Paddle is a description language for detailing the fuse for-
mat of programmable devices. Paddle is used by xpal(10.1)
to create the fuse map that urom(10.1) and friends want. It
is also used by xpart(10.1).
Paddle has an underlying model of arrays of fuses. This
mGoidnevl{l[oolkisnesofmreotmhi(n8g,-l3i2k)ettohi(s8:,0s)calliene=f1r6o/m0.(182,50)detfoin(e32,-
1162)) lliinnee ffrroomm ((302,,--1166))ttoo((88,,--1362))]G}budbebflienewiGtbhuf.n{w[ altin(e32f,r-om
((83,2-,3-21)6)toto(8(,80,)-3l2i)nelifnreomfr(o8m,0()32t,o-1(63)2,t-o16()40l,i-n1e6)frloimne from
((02,,-01)6)litnoe (f8r,o-m16()0,]-}6)detfoin(e0,G-b2u)bblliene{[frloimne(2f,r-o8m) (t0o,-(20),-t6o)
lfirnoem f(r8o,m-2()6,t-o8)(8t,o-6()2,l-i8n)e lfirnoem f(r6o,m0)(8t,o-6()8,t-o2)(6l,i-n8e)flrionme
(l2i,n0e)ftroom(6(,201),-]3}) dteofi(n1e1,G-r3o)rl{i[nelifnreomfr(o3m2,(01)1,t-o3)(2t1o,-(30),0)
lliinnee ffrroomm ((3225,,--1265)) ttoo ((3229,,0-)21l)inleinferofmro(m29(,2-12,1-)29t)ot(o32(,2-51,6-)
2(51)6,l-i3n2e) flrionme (f1r6o,m-3(24),-t2o3)(2t1o,-(299,)-2l8i)nelifnreomfr(o9m,-(208,)-1t6o) to
(]4},-d2e3f)inleinGerofrr5om{[(0G,r0o)r twoit(h0,.-n1w6)atli(n1e6,f0r)omli(n0e,0f)rotmo((00,,00))
tloju(s1t6,a0b)ovleinaet f(r3o2m0,(-6141,20))"tionv(e4r8t,e0d)l]i}ne""idlejmupsotteanbtovleinaet"
((312902,,--18502))tloin(e19f2r,o-m25(62)32l,i-n8e0)frtoom ((213824,,--28506))tloin(e18f4r,o-m256)
"(i4n6p4u,t-1n1o2d)e"lilnjeusftroambo(v9e6,a-t11(20),-t1o52()96l,i-n1e52f)rolmin(e16f0r,o-m112) to
((112200,,--111522)) ttoo ((906,,--115122))lGibnueffwriotmh(.1n6w0,a-t15(21)20t,o-9(64)64l,i-n1e52f)rom
Gliinnve wfirtohm .(n2w08a,t-2(8182)0,t-o13(62)08G,r-o3r250)wi"t.h" .lnjwusatta(b1o7v6e,-a2t56)
(200,-208) "." ljust above at (208,-208) "." ljust above at
(216,-208) "output node" center below at (208,-320) The
input to an and/or array is a set of nodes; the output is
also a set of nodes. A node can be externally visible (such
as a pin) or it may be an internal node. The buffered or
inverted version of a node is called a "line". The inter-
section of a line with the input term of the OR is con-
trolled by a fuse. The collection of fuses over a set of
input and output nodes is called an array.
It is possible that a device may have multiple and/or
arrays; examples of such devices include the Advanced Micro
Devices Mach parts, the Cypress 7C361 finite state machine
controller and the Signetics Macrologic (PLS 501, 601 and
701) parts. Therefore, every array declaration must be fol-
lowed by a symbolic name. This helps xpal and xpart to give
useful error messages. Also, each array must have an "off-
set" declaration. This permits the array to be placed any-
where in the fuse space. Next, the declaration of input and
output nodes must be given. Note that in most programmable
logic devices, input lines come in both complement and idem-
potent flavors and are provided courtesy of the buffer on
the input pin. Paddle therefore has a declaration that
declares that a given set of nodes are doubled, either the
complement or idempotent line first.
Page 1 Plan 9 (printed 4/24/26)
PADDLE(10.6) PADDLE(10.6)
Fuse arrays are used for declaring special fuses that some
programmable parts offer. For example, the 22V10 has fuses
that set the polarity of the output pin, whether the output
is latched or combinatorial and so forth. These fuses are
not organized in an and/or array and so paddle just permits
a one-to-one mapping between artificial pin (external node)
numbers and fuse numbers. permits multiple fuse arrays pro-
vided they are given unique names. Each definition begins
by defining the name of the part along with possible syn-
onyms. This is followed by (1) an array declaration (2) a
fuse block definition (3) a type declaration (the .tt line)
and lastly, a (4) pins declaration. The array declaration
permits declaration of input and output pins to the array.
The use of the complement keyword create 2 input lines for a
given pin. The general form of a pin declaration is
pin:terms=fuse, where terms is the maximum number of terms
for the pin and fuse is the optional fuse number.
EXAMPLES
Here is part of the declaration of a 20L10:
20L10=NS20L10=AM20L10 {
package "DIP24"
declare {
internal {
output enables { 114..123 }
}
external {
inputs { 1..13 }
inverted outputs { 14..23 }
ground { 12 }
supply { 24 }
}
}
array and/or {
inputs complement+ {
2, 1,
.
.
.
11, 13
}
outputs {
123:1,
23:3,
.
.
.
}
}
}
Page 2 Plan 9 (printed 4/24/26)
PADDLE(10.6) PADDLE(10.6)
SEE ALSO
xpal(10.1)
FILES
/sys/lib/cda/library.paddle
Page 3 Plan 9 (printed 4/24/26)