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 12/21/24) 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 12/21/24) PADDLE(10.6) PADDLE(10.6) SEE ALSO xpal(10.1) FILES /sys/lib/cda/library.paddle Page 3 Plan 9 (printed 12/21/24)