Merge branch 'master' into work
[xcircuit.git] / lib / analog.lps
blobbf0271db368e744a7dfbc29b12f8477a1cd59958
1 %! PostScript set of library objects for XCircuit
2 %  Version: 3.6
3 %  Library name is: analog
4 %  Author: R. Timothy Edwards <tim@khachaturian.tim.linglan.net>
7 % Depend analog::vsource analog::source
8 % Depend analog::isource analog::source generic::arrowhead
9 % Depend analog::acsource analog::source
10 % Depend analog::nmos2 analog::nmos generic::arrowhead
11 % Depend analog::pmos2 analog::nmos generic::arrowhead
12 % Depend analog::npn generic::arrowhead
13 % Depend analog::pnp generic::arrowhead
14 % Depend analog::switch generic::circle generic::arrowhead
16 % XCircuitLib library objects
17 /analog::capacitor {
18 begingate
19 1 1.000 0 -64 0 -6 2 polygon
20 1 1.000 0 64 0 6 2 polygon
21 1 1.000 -32 6 32 6 2 polygon
22 1 1.000 -32 -6 32 -6 2 polygon
23 1.000 0.000 0.000 scb
24 (c.1) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
25 (c.2) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
26 0.180 0.545 0.341 scb
27 (spice:C%i %pc.1 %pc.2 1.0P) {/Times-Roman cf} 2 0 0 1.000 -208 -160 infolabel
28 (sim:c %pc.1 %pc.2) {/Times-Roman cf} 2 0 0 1.000 -208 -208 infolabel
29 endgate
30 } def
32 /analog::polarized {
33 begingate
34 1 1.000 0 -64 0 -6 2 polygon
35 1 1.000 0 64 0 6 2 polygon
36 1 1.000 -32 6 32 6 2 polygon
37 1 1.000 0 -80 74 66.000 114.000 xcarc
38 1.000 0.000 0.000 scb
39 (t) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
40 (b) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
41 0.180 0.545 0.341 scb
42 (spice:C%i %pt %pb 1.0P) {/Times-Roman cf} 2 0 0 1.000 -208 -160 infolabel
43 (sim:e %pt %pb %pb) {/Times-Roman cf} 2 0 0 1.000 -208 -208 infolabel
44 endgate
45 } def
47 /analog::resistor {
48 begingate
49 1 1.000 0 64 0 36 2 polygon
50 1 1.000 0 -64 0 -36 2 polygon
51 1 1.000 0 -36 14 -30 -14 -18 14 -6 -14 6 14 18 -14 30 0 36 8 polygon
52 1.000 0.000 0.000 scb
53 (r.1) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
54 (r.2) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
55 0.180 0.545 0.341 scb
56 (spice:R%i %pr.1 %pr.2 1.0K) {/Times-Roman cf} 2 0 0 1.000 -208 -160 infolabel
57 (sim:r %pr.1 %pr.2) {/Times-Roman cf} 2 0 0 1.000 -208 -208 infolabel
58 endgate
59 } def
61 /analog::inductor {
62 begingate
63 1 1.000 20 -22 20 -38 0 -42 0 -18 spline
64 1 1.000 -20 -14 -20 -26 0 -22 0 -18 spline
65 1 1.000 20 38 20 22 0 18 0 42 spline
66 1 1.000 20 18 20 2 0 -2 0 22 spline
67 1 1.000 20 -2 20 -18 0 -22 0 2 spline
68 1 1.000 -20 26 -20 14 0 18 0 22 spline
69 1 1.000 -20 6 -20 -6 0 -2 0 2 spline
70 1 1.000 0 -42 0 -64 2 polygon
71 1 1.000 0 42 0 64 2 polygon
72 1.000 0.000 0.000 scb
73 (l.1) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
74 (l.2) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
75 0.180 0.545 0.341 scb
76 (spice:L%i %pl.1 %pl.2 1.0U) {/Times-Roman cf} 2 0 0 1.000 -208 -160 infolabel
77 (sim:l %pl.1 %pl.2) {/Times-Roman cf} 2 0 0 1.000 -208 -208 infolabel
78 endgate
79 } def
81 /analog::opamp {
82 begingate
83 0 1.000 -80 -80 -80 80 80 0 3 polygon
84 (-) {/Symbol cf} 2 5 0 1.000 -61 42 label
85 (+) {/Symbol cf} 2 5 0 1.000 -61 -50 label
86 1.000 0.000 0.000 scb
87 (in.m) {/Times-Roman cf} 2 7 0 1.000 -80 48 pinlabel
88 (in.p) {/Times-Roman cf} 2 7 0 1.000 -80 -48 pinlabel
89 (out) {/Times-Roman cf} 2 4 0 1.000 80 0 pinlabel
90 endgate
91 } def
93 /analog::vdd {
94 % trivial
95 begingate
96 1 1.000 0 0 0 32 2 polygon
97 1 1.000 -32 32 32 32 2 polygon
98 (Vdd) {/Times-Roman cf} 2 17 0 0.900 0 38 label
99 0.933 0.604 0.000 scb
100 (Vdd) {/Times-Roman cf} 2 13 0 1.000 0 0 pinglobal
101 endgate
102 } def
104 /analog::gnd {
105 % trivial
106 begingate
107 1 1.000 0 0 0 -32 2 polygon
108 1 1.000 -32 -32 32 -32 2 polygon
109 1 1.000 -18 -46 18 -46 2 polygon
110 1 1.000 -4 -60 4 -60 2 polygon
111 0.933 0.604 0.000 scb
112 (GND) {/Times-Roman cf} 2 1 0 1.000 0 0 pinglobal
113 endgate
114 } def
116 /analog::source {
117 % hidden
118 begingate
119 1 1.000 0 0 32 0.000 360.000 xcarc
120 1 1.000 0 32 0 64 2 polygon
121 1 1.000 0 -32 0 -64 2 polygon
122 endgate
123 } def
125 /analog::vsource {
126 begingate
127 1.000 0 0 0 analog::source
128 (+) {/Symbol cf} 2 5 0 1.000 0 14 label
129 (-) {/Symbol cf} 2 5 0 1.000 0 -22 label
130 1.000 0.000 0.000 scb
131 (v.p) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
132 (v.m) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
133 endgate
134 } def
136 /generic::arrowhead {
137 % nonetwork
138 begingate
139 8 -28 beginpath
140 3 -18 3 -15 0 0 curveto
141 -3 -15 -3 -18 -8 -28 curveto
142 -2 -26 2 -26 8 -28 curveto
143 249 
144 1.000 endpath
145 endgate
146 } def
148 /analog::isource {
149 begingate
150 1.000 0 0 0 analog::source
151 1 0.750 0 20 0 -8 2 polygon
152 0.800 180 0 -20 generic::arrowhead
153 1.000 0.000 0.000 scb
154 (i.p) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
155 (i.m) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
156 endgate
157 } def
159 /analog::acsource {
160 begingate
161 1.000 0 0 0 analog::source
162 1 0.800 0 -48 0 48 -16 0 16 0 spline
163 1.000 0.000 0.000 scb
164 (s.p) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
165 (s.m) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
166 endgate
167 } def
169 /analog::nmos {
170 begingate
171 1 1.000 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
172 1 1.000 -44 -28 -44 28 2 polygon
173 1 1.000 -44 0 -64 0 2 polygon
174 1.000 0.000 0.000 scb
175 (G) {/Times-Roman cf} 2 7 0 1.000 -64 0 pinlabel
176 (S) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
177 (D) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
178 0.180 0.545 0.341 scb
179 (spice:M%i %pD %pG %pS GND nmos) {/Times-Roman cf} 2 4 0 1.000 -244 -139 
180 infolabel
181 (sim:n %pG %pS %pD) {/Times-Roman cf} 2 4 0 1.000 -244 -187 infolabel
182 endgate
183 } def
185 /analog::pmos {
186 begingate
187 1 1.000 -44 -28 -44 28 2 polygon
188 1 1.000 -60 0 -64 0 2 polygon
189 1 1.000 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
190 1 1.000 -52 0 8 0.000 360.000 xcarc
191 1.000 0.000 0.000 scb
192 (S) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
193 (D) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
194 (G) {/Times-Roman cf} 2 7 0 1.000 -64 0 pinlabel
195 0.180 0.545 0.341 scb
196 (spice:M%i %pD %pG %pS Vdd pmos) {/Times-Roman cf} 2 4 0 1.000 -196 -139 
197 infolabel
198 (sim:p %pG %pS %pD) {/Times-Roman cf} 2 4 0 1.000 -196 -187 infolabel
199 endgate
200 } def
202 /analog::nmos2 {
203 begingate
204 1.000 0 0 0 analog::nmos
205 1.000 90 0 -28 generic::arrowhead
206 1.000 0.000 0.000 scb
207 (G) {/Times-Roman cf} 2 7 0 1.000 -64 0 pinlabel
208 (S) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
209 (D) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
210 endgate
211 } def
213 /analog::pmos2 {
214 begingate
215 1.000 0 0 0 analog::nmos
216 1.000 270 -32 28 generic::arrowhead
217 1.000 0.000 0.000 scb
218 (G) {/Times-Roman cf} 2 7 0 1.000 -64 0 pinlabel
219 (S) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
220 (D) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
221 endgate
222 } def
224 /analog::diode {
225 begingate
226 248 1.000 -18 -16 0 16 18 -16 3 polygon
227 1 1.000 0 -48 0 -16 2 polygon
228 1 1.000 0 48 0 16 2 polygon
229 1 1.000 -18 16 18 16 2 polygon
230 1.000 0.000 0.000 scb
231 (d.m) {/Times-Roman cf} 2 9 0 1.000 0 48 pinlabel
232 (d.p) {/Times-Roman cf} 2 13 0 1.000 0 -48 pinlabel
233 endgate
234 } def
236 /analog::npn {
237 begingate
238 1 1.000 -48 0 -64 0 2 polygon
239 1 1.000 -48 48 -48 -48 2 polygon
240 1 1.000 0 48 -48 22 2 polygon
241 1 1.000 0 48 0 64 2 polygon
242 1 1.000 0 -48 -48 -22 2 polygon
243 1 1.000 0 -48 0 -64 2 polygon
244 1.000 120 0 -48 generic::arrowhead
245 1.000 0.000 0.000 scb
246 (C) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
247 (B) {/Times-Roman cf} 2 7 0 1.000 -64 0 pinlabel
248 (E) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
249 0.180 0.545 0.341 scb
250 (spice:Q%i %pC %pB %pE npn) {/Times-Roman cf} 2 4 0 1.000 -244 -139 infolabel
251 (sim:b %pB %pE %pC) {/Times-Roman cf} 2 4 0 1.000 -244 -187 infolabel
252 endgate
253 } def
255 /analog::pnp {
256 begingate
257 1 1.000 -48 0 -64 0 2 polygon
258 1 1.000 -48 48 -48 -48 2 polygon
259 1 1.000 0 48 -48 22 2 polygon
260 1 1.000 0 48 0 64 2 polygon
261 1 1.000 0 -48 -48 -22 2 polygon
262 1 1.000 0 -48 0 -64 2 polygon
263 1.000 240 -48 22 generic::arrowhead
264 1.000 0.000 0.000 scb
265 (C) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
266 (B) {/Times-Roman cf} 2 7 0 1.000 -64 0 pinlabel
267 (E) {/Times-Roman cf} 2 9 0 1.000 0 64 pinlabel
268 0.180 0.545 0.341 scb
269 (spice:Q%i %pC %pB %pE pnp) {/Times-Roman cf} 2 4 0 1.000 -244 -139 infolabel
270 endgate
271 } def
273 /analog::crystal {
274 begingate
275 0 1.000 -24 -12 -24 12 24 12 24 -12 4 polygon
276 1 1.000 0 48 0 24 2 polygon
277 1 1.000 0 -48 0 -24 2 polygon
278 1 1.000 -20 24 20 24 2 polygon
279 1 1.000 -20 -24 20 -24 2 polygon
280 1.000 0.000 0.000 scb
281 (x.1) {/Times-Roman cf} 2 9 0 1.000 0 48 pinlabel
282 (x.2) {/Times-Roman cf} 2 13 0 1.000 0 -48 pinlabel
283 endgate
284 } def
286 /generic::circle {
287 % trivial
288 begingate
289 1 1.000 16 0 6 0.000 360.000 xcarc
290 1 1.000 0 0 10 0 2 polygon
291 1.000 0.000 0.000 scb
292 (out) {/Times-Roman cf} 2 4 0 1.000 16 0 pinlabel
293 (out) {/Times-Roman cf} 2 7 0 1.000 0 0 pinlabel
294 endgate
295 } def
297 /analog::switch {
298 % trivial
299 begingate
300 1 1.300 32 32 2 -43 2 polygon
301 1 0.600 0 -48 57 49.000 90.000 xcarc
302 -1.000 90 0 -64 generic::circle
303 0.600 270 -12 8 generic::arrowhead
304 1.000 90 0 48 generic::circle
305 1.000 0.000 0.000 scb
306 (sw.1) {/Times-Roman cf} 2 9 0 1.000 0 48 pinlabel
307 (sw.2) {/Times-Roman cf} 2 13 0 1.000 0 -64 pinlabel
308 endgate
309 } def
312 % EndLib