Merge branch 'master' into xcircuit-3.10
[xcircuit.git] / lib / digitallib.lps
blob1fafdb697440ef0ef1e7e979f332a6e1b900fa3d
1 %! PostScript set of library objects for XCircuit
2 %  Version: 3.6
3 %  Library name is: digitallib.lps
4 %  Author: R. Timothy Edwards <tim.edwards@multigig.com>
7 % XCircuitLib library objects
8 /digitallib::INV {
9 <</gnd (dgnd) /vdd (dvdd) /@index (?) /voltage () /strength (1) >> begingate
10 0 1.00 -32 -40 -32 40 40 0 3 polygon
11 1 1.00 48 0 8 0.00 360.00 xcarc
12 1 1.00 -32 0 -48 0 2 polygon
13 1 1.00 56 0 64 0 2 polygon
14 1.000 0.000 0.000 scb
15 (Y) {/Times-Roman cf} 2 4 0 1.00 64 0 pinlabel
16 (A) {/Times-Roman cf} 2 7 0 1.00 -48 0 pinlabel
17 0.180 0.545 0.341 scb
18 mark voltage strength ( %pA %pY INVX) gnd ( ) vdd ( ) @index (spice:X) 
19 {/Times-Roman cf} ctmk 16 360 0.70 -32 -136 infolabel
20 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
21 ctmk 16 0 0.70 -32 -96 infolabel
22 0.647 0.165 0.165 scb
23 mark voltage {/Times-Roman cf} ctmk 21 0 0.60 -8 0 label
24 mark strength {qS} (\327) {/Times-RomanISO cf} ctmk 16 0 0.60 0 24 label
25 0.000 0.000 1.000 scb
26 mark @index (U) {/Times-RomanISO cf} ctmk 28 0 0.70 8 -24 label
27 endgate
28 } def
30 <</strength (2) >> /digitallib::INV libinst
31 <</strength (4) >> /digitallib::INV libinst
32 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::INV libinst
33 <</voltage (_3V) /strength (2) /vdd (dvdd3) >> /digitallib::INV libinst
34 <</voltage (_3V) /strength (4) /vdd (dvdd3) >> /digitallib::INV libinst
36 /digitallib::BUF {
37 <</gnd (dgnd) /vdd (dvdd) /@index (?) /voltage () /strength (2) >> begingate
38 0 1.00 -32 -40 -32 40 40 0 3 polygon
39 1 1.00 -32 0 -48 0 2 polygon
40 1 1.00 40 0 64 0 2 polygon
41 1.000 0.000 0.000 scb
42 (Y) {/Times-Roman cf} 2 4 0 1.00 64 0 pinlabel
43 (A) {/Times-Roman cf} 2 7 0 1.00 -48 0 pinlabel
44 0.180 0.545 0.341 scb
45 mark voltage strength ( %pA %pY BUFX) gnd ( ) vdd ( ) @index (spice:X) 
46 {/Times-Roman cf} ctmk 16 360 0.70 -32 -112 infolabel
47 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
48 ctmk 16 0 0.70 -32 -80 infolabel
49 0.647 0.165 0.165 scb
50 mark voltage {/Times-RomanISO cf} ctmk 21 0 0.50 -8 0 label
51 mark strength {qS} (\327) {/Times-RomanISO cf} ctmk 16 0 0.50 8 24 label
52 0.000 0.000 1.000 scb
53 mark @index (U) {/Times-RomanISO cf} ctmk 16 0 0.60 24 -32 label
54 endgate
55 } def
57 <</strength (4) >> /digitallib::BUF libinst
58 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::BUF libinst
59 <</voltage (_3V) /strength (4) /vdd (dvdd3) >> /digitallib::BUF libinst
61 /digitallib::NAND2 {
62 <</gnd (dgnd) /vdd (dvdd) /voltage () /@index (?) >> begingate
63 1 1.00 0 -48 -64 -48 -64 48 0 48 4 polygon
64 1 1.00 56 0 8 0.00 360.00 xcarc
65 1 1.00 0 0 48 -90.00 90.00 xcarc
66 1.000 0.000 0.000 scb
67 (Y) {/Times-Roman cf} 2 4 0 1.00 64 0 pinlabel
68 (A) {/Times-Roman cf} 2 7 0 1.00 -64 32 pinlabel
69 (B) {/Times-Roman cf} 2 7 0 1.00 -64 -32 pinlabel
70 sce
71 1 1.00 -64 -48 -64 48 2 polygon
72 0.180 0.545 0.341 scb
73 mark voltage ( %pA %pB %pY NAND2X1) gnd ( ) vdd ( ) @index (spice:X) 
74 {/Times-Roman cf} ctmk 16 360 0.70 -64 -128 infolabel
75 0.647 0.165 0.165 scb
76 mark voltage {/Times-Roman cf} ctmk 21 0 0.70 -16 16 label
77 0.000 0.000 1.000 scb
78 mark @index (U) {/Times-RomanISO cf} ctmk 28 0 0.70 -40 -8 label
79 0.180 0.545 0.341 scb
80 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
81 ctmk 16 0 0.70 -64 -96 infolabel
82 endgate
83 } def
85 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::NAND2 libinst
87 /digitallib::NAND3 {
88 <</gnd (dgnd) /vdd (dvdd) /@index (?) /voltage () >> begingate
89 1 1.00 0 -48 -64 -48 -64 48 0 48 4 polygon
90 1 1.00 56 0 8 0.00 360.00 xcarc
91 1 1.00 0 0 48 -90.00 90.00 xcarc
92 1.000 0.000 0.000 scb
93 (Y) {/Times-Roman cf} 2 4 0 1.00 64 0 pinlabel
94 (A) {/Times-Roman cf} 2 7 0 1.00 -64 32 pinlabel
95 (B) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
96 (C) {/Times-Roman cf} 2 7 0 1.00 -64 -32 pinlabel
97 sce
98 1 1.00 -64 -64 -64 64 2 polygon
99 0.180 0.545 0.341 scb
100 mark voltage ( %pA %pB %pC %pY NAND3X1) gnd ( ) vdd ( ) @index (spice:X) 
101 {/Times-Roman cf} ctmk 16 360 0.70 -64 -128 infolabel
102 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
103 ctmk 16 0 0.70 -64 -96 infolabel
104 0.647 0.165 0.165 scb
105 mark voltage {/Times-Roman cf} ctmk 21 0 0.70 -16 16 label
106 0.000 0.000 1.000 scb
107 mark @index (U) {/Times-RomanISO cf} ctmk 28 0 0.70 -40 -8 label
108 endgate
109 } def
111 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::NAND3 libinst
113 /digitallib::NAND4 {
114 <</gnd (dgnd) /vdd (dvdd) /voltage () /@index (?) >> begingate
115 1 1.00 0 -64 -64 -64 -64 64 0 64 4 polygon
116 1 1.00 56 0 8 0.00 360.00 xcarc
117 1 1.00 0 0 48 64 -90.00 90.00 ellipse
118 1.000 0.000 0.000 scb
119 (Y) {/Times-Roman cf} 2 4 0 1.00 64 0 pinlabel
120 (A) {/Times-Roman cf} 2 7 0 1.00 -64 48 pinlabel
121 (B) {/Times-Roman cf} 2 7 0 1.00 -64 16 pinlabel
122 (C) {/Times-Roman cf} 2 7 0 1.00 -64 -16 pinlabel
123 (D) {/Times-Roman cf} 2 7 0 1.00 -64 -48 pinlabel
125 1 1.00 -64 -80 -64 80 2 polygon
126 0.180 0.545 0.341 scb
127 mark voltage ( %pA %pB %pC %pD %pY NAND4X1) gnd ( ) vdd ( ) @index (spice:X) 
128 {/Times-Roman cf} ctmk 16 360 0.70 -64 -144 infolabel
129 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
130 ctmk 16 0 0.70 -64 -112 infolabel
131 0.647 0.165 0.165 scb
132 mark voltage {/Times-Roman cf} ctmk 21 0 0.70 -16 16 label
133 0.000 0.000 1.000 scb
134 mark @index (U) {/Times-RomanISO cf} ctmk 28 0 0.70 -40 -8 label
135 endgate
136 } def
138 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::NAND4 libinst
140 /digitallib::NOR2 {
141 <</gnd (dgnd) /vdd (dvdd) /@index (?) /voltage () >> begingate
142 1 1.00 56 0 8 0.00 360.00 xcarc
143 1.000 0.000 0.000 scb
144 (Y) {/Times-Roman cf} 2 4 0 1.00 64 0 pinlabel
145 (A) {/Times-Roman cf} 2 7 0 1.00 -64 32 pinlabel
146 (B) {/Times-Roman cf} 2 7 0 1.00 -64 -32 pinlabel
147 0.180 0.545 0.341 scb
148 mark voltage ( %pA %pB %pY NOR2X1) gnd ( ) vdd ( ) @index (spice:X) 
149 {/Times-Roman cf} ctmk 16 360 0.70 -64 -128 infolabel
150 0.647 0.165 0.165 scb
151 mark voltage {/Times-Roman cf} ctmk 21 0 0.70 -16 16 label
152 0.000 0.000 1.000 scb
153 mark @index (U) {/Times-RomanISO cf} ctmk 28 0 0.70 -40 -8 label
155 1 1.00 -35 48 96 270.00 330.00 xcarc
156 1 1.00 -64 -48 -35 -48 2 polygon
157 1 1.00 -128 0 80 -37.00 37.00 xcarc
158 1 1.00 -35 -48 96 30.00 90.00 xcarc
159 1 1.00 -64 48 -35 48 2 polygon
160 1 1.00 -64 32 -56 32 2 polygon
161 1 1.00 -64 -32 -56 -32 2 polygon
162 0.180 0.545 0.341 scb
163 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
164 ctmk 16 0 0.70 -64 -96 infolabel
165 endgate
166 } def
168 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::NOR2 libinst
170 /digitallib::NOR3 {
171 <</voltage () /@index (?) /vdd (dvdd) /gnd (dgnd) >> begingate
172 1 1.00 56 0 8 0.00 360.00 xcarc
173 1.000 0.000 0.000 scb
174 (Y) {/Times-Roman cf} 2 4 0 1.00 64 0 pinlabel
175 (A) {/Times-Roman cf} 2 7 0 1.00 -64 32 pinlabel
176 (B) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
177 0.180 0.545 0.341 scb
178 mark voltage ( %pA %pB %pC %pY NOR3X1) gnd ( ) vdd ( ) @index (spice:X) 
179 {/Times-Roman cf} ctmk 16 360 0.70 -64 -128 infolabel
180 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
181 ctmk 16 0 0.70 -64 -96 infolabel
182 0.647 0.165 0.165 scb
183 mark voltage {/Times-Roman cf} ctmk 21 0 0.70 -16 16 label
184 0.000 0.000 1.000 scb
185 mark @index (U) {/Times-RomanISO cf} ctmk 28 0 0.70 -40 -8 label
187 1 1.00 -35 48 96 270.00 330.00 xcarc
188 1 1.00 -64 -48 -35 -48 2 polygon
189 1 1.00 -128 0 80 -36.87 36.87 xcarc
190 1 1.00 -35 -48 96 30.00 90.00 xcarc
191 1 1.00 -64 48 -35 48 2 polygon
192 1 1.00 -64 32 -56 32 2 polygon
193 1 1.00 -64 -32 -56 -32 2 polygon
194 1 1.00 -48 0 -64 0 2 polygon
195 1.000 0.000 0.000 scb
196 (C) {/Times-Roman cf} 2 7 0 1.00 -64 -32 pinlabel
198 1 1.00 -64 48 -64 64 2 polygon
199 1 1.00 -64 -48 -64 -64 2 polygon
200 endgate
201 } def
203 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::NOR3 libinst
205 /digitallib::NOR4 {
206 <</gnd (dgnd) /vdd (dvdd) /@index (?) /voltage () >> begingate
207 1 1.00 56 0 8 0.00 360.00 xcarc
208 1.000 0.000 0.000 scb
209 (Y) {/Times-Roman cf} 2 4 0 1.00 64 0 pinlabel
210 (A) {/Times-Roman cf} 2 7 0 1.00 -64 48 pinlabel
211 (B) {/Times-Roman cf} 2 7 0 1.00 -64 16 pinlabel
212 0.180 0.545 0.341 scb
213 mark voltage ( %pA %pB %pC %pD %pY NOR4X1) gnd ( ) vdd ( ) @index (spice:X) 
214 {/Times-Roman cf} ctmk 16 360 0.70 -64 -128 infolabel
215 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
216 ctmk 16 0 0.70 -64 -96 infolabel
217 0.647 0.165 0.165 scb
218 mark voltage {/Times-Roman cf} ctmk 21 0 0.70 -16 16 label
219 0.000 0.000 1.000 scb
220 mark @index (U) {/Times-RomanISO cf} ctmk 21 0 0.70 -8 -16 label
222 1 1.00 -64 48 -58 48 2 polygon
223 1 1.00 -64 -16 -48 -16 2 polygon
224 1 1.00 -48 16 -64 16 2 polygon
225 1.000 0.000 0.000 scb
226 (C) {/Times-Roman cf} 2 7 0 1.00 -64 -16 pinlabel
228 1 1.00 32 32 0 56 -40 56 48 0 spline
229 1 1.00 32 -32 0 -56 -40 -56 48 0 spline
230 1 1.00 -40 32 -40 -24 -64 -56 -64 56 spline
231 1 1.00 -64 56 -40 56 2 polygon
232 1 1.00 -64 -56 -40 -56 2 polygon
233 1.000 0.000 0.000 scb
234 (D) {/Times-Roman cf} 2 7 0 1.00 -64 -48 pinlabel
236 1 1.00 -64 -48 -60 -48 2 polygon
237 endgate
238 } def
240 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::NOR4 libinst
242 /digitallib::OR2 {
243 <</voltage () /@index (?) /vdd (dvdd) /gnd (dgnd) >> begingate
244 1.000 0.000 0.000 scb
245 (Y) {/Times-Roman cf} 2 4 0 1.00 64 0 pinlabel
246 (A) {/Times-Roman cf} 2 7 0 1.00 -64 32 pinlabel
247 (B) {/Times-Roman cf} 2 7 0 1.00 -64 -32 pinlabel
248 0.180 0.545 0.341 scb
249 mark voltage ( %pA %pB %pY OR2X1) gnd ( ) vdd ( ) @index (spice:X) 
250 {/Times-Roman cf} ctmk 16 360 0.70 -64 -128 infolabel
251 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
252 ctmk 16 0 0.70 -64 -96 infolabel
253 0.647 0.165 0.165 scb
254 mark voltage {/Times-Roman cf} ctmk 21 0 0.70 -16 16 label
255 0.000 0.000 1.000 scb
256 mark @index (U) {/Times-RomanISO cf} ctmk 28 0 0.70 -40 -8 label
258 1 1.00 -35 48 96 270.00 330.00 xcarc
259 1 1.00 -64 -48 -35 -48 2 polygon
260 1 1.00 -128 0 80 -37.00 37.00 xcarc
261 1 1.00 -35 -48 96 30.00 90.00 xcarc
262 1 1.00 -64 48 -35 48 2 polygon
263 1 1.00 -64 32 -56 32 2 polygon
264 1 1.00 -64 -32 -56 -32 2 polygon
265 1 1.00 48 0 64 0 2 polygon
266 endgate
267 } def
269 /digitallib::TBUF {
270 <</strength (2) /voltage () /@index (?) /vdd (dvdd) /gnd (dgnd) >> begingate
271 0 1.00 -32 -40 -32 40 40 0 3 polygon
272 1 1.00 -32 0 -48 0 2 polygon
273 1 1.00 40 0 64 0 2 polygon
274 1.000 0.000 0.000 scb
275 (Y) {/Times-Roman cf} 2 4 0 1.00 64 0 pinlabel
276 (A) {/Times-Roman cf} 2 7 0 1.00 -48 0 pinlabel
277 0.180 0.545 0.341 scb
278 mark voltage strength ( %pA %pY %pEn TBUFX) gnd ( ) vdd ( ) @index (spice:X) 
279 {/Times-Roman cf} ctmk 16 360 0.70 -176 -112 infolabel
280 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
281 ctmk 16 0 0.70 -176 -80 infolabel
282 0.647 0.165 0.165 scb
283 mark voltage {/Times-RomanISO cf} ctmk 21 0 0.50 -8 0 label
284 mark strength {qS} (\327) {/Times-RomanISO cf} ctmk 16 0 0.50 8 24 label
285 0.000 0.000 1.000 scb
286 mark @index (U) {/Times-RomanISO cf} ctmk 16 0 0.60 24 -32 label
288 1 1.00 0 24 0 48 2 polygon
289 1.000 0.000 0.000 scb
290 (En) {/Times-Roman cf} 2 17 0 1.00 0 48 pinlabel
291 endgate
292 } def
294 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::TBUF libinst
296 /digitallib::MUX2 {
297 <</gnd (dgnd) /vdd (dvdd) /@index (?) /voltage () >> begingate
298 1 1.00 -16 16 -32 16 2 polygon
299 1 1.00 48 -16 64 -16 2 polygon
300 1.000 0.000 0.000 scb
301 (Y) {/Times-Roman cf} 2 4 0 1.00 64 -16 pinlabel
302 (A) {/Times-Roman cf} 2 7 0 1.00 -32 16 pinlabel
303 0.180 0.545 0.341 scb
304 mark voltage ( %pA %pB %pY %pS MUX2X1) gnd ( ) vdd ( ) @index (spice:X) 
305 {/Times-Roman cf} ctmk 16 360 0.70 -128 -176 infolabel
306 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
307 ctmk 16 0 0.70 -128 -144 infolabel
308 0.647 0.165 0.165 scb
309 mark voltage {/Times-RomanISO cf} ctmk 21 0 0.50 16 -16 label
310 0.000 0.000 1.000 scb
311 mark @index (U) {/Times-RomanISO cf} ctmk 28 0 0.60 24 -80 label
313 1 1.00 16 32 16 64 2 polygon
314 1.000 0.000 0.000 scb
315 (S) {/Times-Roman cf} 2 17 0 1.00 16 64 pinlabel
316 (B) {/Times-Roman cf} 2 7 0 1.00 -32 -48 pinlabel
318 1 1.00 -32 -48 -16 -48 2 polygon
319 1 1.00 -16 48 48 16 48 -48 -16 -80 -16 48 5 polygon
320 endgate
321 } def
323 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::MUX2 libinst
325 /digitallib::LATCH {
326 <</@index (?) /voltage () /vdd (dvdd) /gnd (dgnd) >> begingate
327 1.000 0.000 0.000 scb
328 (Q) {/Times-Roman cf} 2 4 0 1.00 32 32 pinlabel
329 (D) {/Times-Roman cf} 2 7 0 1.00 -64 32 pinlabel
330 (CLK) {/Times-Roman cf} 2 13 0 1.00 -16 -48 pinlabel
331 0.180 0.545 0.341 scb
332 mark voltage ( %pCLK %pD %pQ LATCH) gnd ( ) vdd ( ) @index (spice:X) 
333 {/Times-Roman cf} ctmk 16 360 0.70 -192 -160 infolabel
334 mark (.cir) voltage (spice@1:%F$XCIRCUIT_LIB_DIR/standard_cells) {/Times-Roman cf} 
335 ctmk 16 0 0.70 -192 -128 infolabel
336 0.647 0.165 0.165 scb
337 mark voltage {/Times-Roman cf} ctmk 21 0 0.70 -16 64 label
338 0.000 0.000 1.000 scb
339 mark @index (U) {/Times-RomanISO cf} ctmk 17 0 0.70 -16 128 label
341 0 1.00 -64 -48 -64 112 32 112 32 -48 4 polygon
342 1 1.00 -32 -48 -16 -32 0 -48 3 polygon
343 (D) {/Times-Roman cf} 2 21 0 0.70 -48 32 label
344 (Q) {/Times-Roman cf} 2 21 0 0.70 16 32 label
345 0.000 0.000 1.000 scb
346 (LATCH) {/Times-Roman cf} 2 29 0 0.70 -16 96 label
347 endgate
348 } def
350 <</voltage (_3V) /vdd (dvdd3) >> /digitallib::LATCH libinst
352 % EndLib