Corrected a long-standing error in which ending text with a literal
[xcircuit.git] / lib / asg_spice.lps
bloba0c2dc9d838b0c5d998bd23c173da24986e7de82
1 %! PostScript set of library objects for XCircuit
2 %  Version: 3.2
3 %  Library name is: asg_spice
4 %  Author: R. Timothy Edwards <tim@opencircuitdesign.com>
7 % Depend VAMP source
8 % Depend IAMP source arrowhead
9 % Depend ACAMP source sinusoid
11 % XCircuitLib library objects for ASG SPICE
12 /CAPC {
13 << /value (1.0) /units (p) /@index (?) /p_jst 20 /p_rot 0 >> begingate
14 1 1.00 0 -64 0 -6 2 polygon
15 1 1.00 0 64 0 6 2 polygon
16 1 1.00 -32 6 32 6 2 polygon
17 1 1.00 -32 -6 32 -6 2 polygon
18 1.000 0.000 0.000 scb
19 (1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
20 (2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
21 0.180 0.545 0.341 scb
22 mark units value ( %p1 %p2 ) @index (spice:C) {/Times-Roman cf} ctmk 4 0 1.00 -208 -160 
23 infolabel
24 (sim:c %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel
25 sce
26 mark (F) units {hS} value {/Times-Roman cf} ctmk p_jst p_rot 1.00 48 0 label
27 0.180 0.545 0.341 scb
28 mark @index (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel
29 endgate
30 } def
32 1.00 270 << /p_jst 17 /p_rot 90 >> /CAPC libinst
34 /RESTR {
35 << /value (1.0) /units (k) /@index (?) /p_jst 20 /p_rot 0 >> begingate
36 1 1.00 0 64 0 36 2 polygon
37 1 1.00 0 -64 0 -36 2 polygon
38 1 1.00 0 -36 14 -30 -14 -18 14 -6 -14 6 14 18 -14 30 0 36 8 polygon
39 1.000 0.000 0.000 scb
40 (1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
41 (2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
42 0.180 0.545 0.341 scb
43 mark units value ( %p1 %p2 ) @index (spice:R) {/Times-Roman cf} ctmk 4 0 1.00 -208 -160 
44 infolabel
45 (sim:r %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel
46 sce
47 mark (W) {/Symbol cf} units {hS} value {/Times-Roman cf} ctmk p_jst p_rot 1.00 32 0 label
48 0.180 0.545 0.341 scb
49 mark @index (pcb:R) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel
50 endgate
51 } def
53 1.00 270 << /p_jst 17 /p_rot 90 >> /RESTR libinst
55 /INDR {
56 << /value (1.0) /units (m) /@index (?) /p_jst 20 /p_rot 0 >> begingate
57 1 1.00 20 -28 20 -44 0 -48 0 -24 spline
58 1 1.00 -20 -20 -20 -32 0 -28 0 -24 spline
59 1 1.00 20 32 20 16 0 12 0 36 spline
60 1 1.00 20 12 20 -4 0 -8 0 16 spline
61 1 1.00 20 -8 20 -24 0 -28 0 -4 spline
62 1 1.00 -20 20 -20 8 0 12 0 16 spline
63 1 1.00 -20 0 -20 -12 0 -8 0 -4 spline
64 1 1.00 0 -48 0 -64 2 polygon
65 1 1.00 0 36 0 48 2 polygon
66 1.000 0.000 0.000 scb
67 (1) {/Times-Roman cf} 2 9 0 1.00 0 48 pinlabel
68 (2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
69 0.180 0.545 0.341 scb
70 mark units value ( %p1 %p2 ) @index (spice:L) {/Times-Roman cf} ctmk 4 0 1.00 -208 -160 
71 infolabel
72 (sim:l %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel
73 sce
74 mark (H) units {hS} value {/Times-Roman cf} ctmk p_jst p_rot 1.00 32 0 label
75 0.180 0.545 0.341 scb
76 mark @index (pcb:L) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel
77 endgate
78 } def
80 1.00 270 << /p_jst 17 /p_rot 90 >> /Inductor libinst
82 /source {
83 % hidden
84 begingate
85 1 1.00 0 0 32 0.00 360.00 xcarc
86 1 1.00 0 32 0 64 2 polygon
87 1 1.00 0 -32 0 -64 2 polygon
88 endgate
89 } def
91 /VAMP {
92 << /value (5) /p_jst 20 /p_rot 0 >> begingate
93 1.00 0 0 0 source
94 (+) {/Symbol cf} 2 5 p_rot 1.00 0 18 label
95 (-) {/Symbol cf} 2 5 p_rot 1.00 0 -18 label
96 1.000 0.000 0.000 scb
97 (2) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
98 (1) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
99 0.180 0.545 0.341 scb
100 mark value (spice:V%i %pP %pM ) {/Times-Roman cf} ctmk 20 0 1.00 -96 -160 
101 infolabel
103 mark (V) {hS} value {/Times-Roman cf} ctmk p_jst p_rot 1.00 48 0 label
104 endgate
105 } def
107 1.00 270 << /p_jst 17 /p_rot 90 >> /VAMP libinst
109 /arrowhead {
110 % trivial
111 begingate
112 8 -28 beginpath
113 3 -18 3 -15 0 0 curveto
114 -3 -15 -3 -18 -8 -28 curveto
115 -2 -26 2 -26 8 -28 curveto
116 249 1.00 endpath
117 endgate
118 } def
120 /IAMP {
121 << /value (1) /units (m) /p_jst 20 /p_rot 0 >> begingate
122 1.00 0 0 0 source
123 1 0.75 0 20 0 -8 2 polygon
124 0.80 180 0 -20 arrowhead
125 1.000 0.000 0.000 scb
126 (2) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
127 (1) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
128 0.180 0.545 0.341 scb
129 mark units value (spice:I%i %pP %pM ) {/Times-Roman cf} ctmk 20 0 1.00 -96 -160 
130 infolabel
132 mark (A) units {hS} value {/Times-Roman cf} ctmk p_jst p_rot 1.00 48 0 label
133 endgate
134 } def
136 1.00 270 << /p_jst 17 /p_rot 90 >> /IAMP libinst
138 /sinusoid {
139 % hidden
140 begingate
141 1 0.80 0 -48 0 48 -16 0 16 0 spline
142 endgate
143 } def
145 /ACAMP {
146 << /value (5) /offset (0) /freq (1) /units (k) /p_jst 20 /p_rot 0 >> begingate
147 1.00 0 0 0 source
148 1.000 0.000 0.000 scb
149 (P) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
150 (M) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
151 0.180 0.545 0.341 scb
152 mark (\)) units freq ( ) value ( ) offset (spice:V%i %pP %pM SIN\()
153 {/Times-Roman cf} ctmk 20 0 1.00 -336 -160 infolabel
155 mark (Hz) units {hS} freq {CR} (offset) {ss} (V) {hS} offset {CR} (p-p)
156 {ss} (V) {hS} value {/Times-Roman cf} ctmk p_jst p_rot 1.00 48 0 label
157 1.00 p_rot 0 0 sinusoid
158 endgate
159 } def
161 1.00 270 << /p_jst 17 /p_rot 90 >> /ACAMP libinst
163 /NMOS3 {
164 << /width (3) /length (2) /model (nmos) /@index (?) /p_jst 20 /p_rot 0 >> begingate
165 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
166 1 1.00 -44 -28 -44 28 2 polygon
167 1 1.00 -44 0 -64 0 2 polygon
168 1.000 0.000 0.000 scb
169 (G) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
170 (S) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
171 (D) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
172 0.180 0.545 0.341 scb
173 mark length ( L=) width ( W=) model ( %pD %pG %pS GND ) @index (spice:M) {/Times-Roman cf} 
174 ctmk 4 0 1.00 -244 -139 infolabel
175 mark ( %x %y) width ( ) length (sim:n %pG %pD %pS ) {/Times-Roman cf} ctmk 4 0 1.00 
176 -244 -187 infolabel
178 mark length (=) {Tf} (L) {hS} {CR} width (=) {Ts} (W) {/Times-Roman cf} ctmk p_jst
179 p_rot 1.00 16 0 label
180 endgate
181 } def
183 1.00 270 << /p_jst 17 /p_rot 90 >> /NMOS3 libinst
185 /PMOS3 {
186 << /width (3) /length (2) /model (nmos) /@index (?) /p_jst 20 /p_rot 0 >> begingate
187 1 1.00 -44 -28 -44 28 2 polygon
188 1 1.00 -60 0 -64 0 2 polygon
189 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
190 1 1.00 -52 0 8 0.00 360.00 xcarc
191 1.000 0.000 0.000 scb
192 (S) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
193 (D) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
194 (G) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
195 0.180 0.545 0.341 scb
196 mark length ( L=) width ( W=) model ( %pD %pG %pS Vdd ) @index (spice:M) {/Times-Roman cf} 
197 ctmk 4 0 1.00 -196 -139 infolabel
198 mark ( %x %y) width ( ) length (sim:p %pG %pD %pS ) {/Times-Roman cf} ctmk 4 0 1.00 
199 -196 -187 infolabel
201 mark length (=) {Tf} (L) {hS} {CR} width (=) {Ts} (W) {/Times-Roman cf} ctmk p_jst
202 p_rot 1.00 16 0 label
203 endgate
204 } def
206 1.00 270 << /p_jst 17 /p_rot 90 >> /PMOS3 libinst
208 /MSFET {
209 << /width (3) /length (2) /model (nmos) /@index (?) /p_jst 20 /p_rot 0 >> begingate
210 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
211 1 1.00 -44 -28 -44 28 2 polygon
212 1 1.00 -44 0 -64 0 2 polygon
213 1.000 0.000 0.000 scb
214 (G) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
215 (S) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
216 (D) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
217 (B) {/Times-Roman cf} 2 4 0 1.00 32 0 pinlabel
218 0.180 0.545 0.341 scb
219 mark length ( L=) width ( W=) model ( %pD %pG %pS %pB ) @index (spice:M) {/Times-Roman cf} 
220 ctmk 4 0 1.00 -244 -139 infolabel
221 mark ( %x %y) width ( ) length (sim:n %pG %pD %pS ) {/Times-Roman cf} ctmk 4 0 1.00 
222 -244 -187 infolabel
224 mark length (/) width (W/L=) {/Times-Roman cf} ctmk p_jst p_rot 1.00 16 32 label
225 1 1.00 -32 0 32 0 2 polygon
226 endgate
227 } def
229 1.00 270 << /p_jst 17 /p_rot 90 >> /MSFET libinst
231 /PMOS {
232 << /width (3) /length (2) /model (nmos) /@index (?) /p_jst 20 /p_rot 0 >> begingate
233 1 1.00 -44 -28 -44 28 2 polygon
234 1 1.00 -60 0 -64 0 2 polygon
235 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
236 1 1.00 -52 0 8 0.00 360.00 xcarc
237 1.000 0.000 0.000 scb
238 (S) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
239 (D) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
240 (G) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
241 (B) {/Times-Roman cf} 2 4 0 1.00 32 0 pinlabel
242 0.180 0.545 0.341 scb
243 mark length ( L=) width ( W=) model ( %pD %pG %pS %pB ) @index (spice:M) {/Times-Roman cf} 
244 ctmk 4 0 1.00 -196 -139 infolabel
245 mark ( %x %y) width ( ) length (sim:p %pG %pD %pS ) {/Times-Roman cf} ctmk 4 0 1.00 
246 -196 -187 infolabel
248 mark length (/) width (W/L=) {/Times-Roman cf} ctmk p_jst p_rot 1.00 16 32 label
249 1 1.00 -32 0 32 0 2 polygon
250 endgate
251 } def
253 1.00 270 << /p_jst 17 /p_rot 90 >> /PMOS libinst
255 /NPN {
256 << /model (npn) /@index (?) >> begingate
257 1 1.00 -48 0 -64 0 2 polygon
258 1 1.00 -48 48 -48 -48 2 polygon
259 1 1.00 0 48 -48 22 2 polygon
260 1 1.00 0 48 0 64 2 polygon
261 1 1.00 0 -48 -48 -22 2 polygon
262 1 1.00 0 -48 0 -64 2 polygon
263 1.00 120 0 -48 arrowhead
264 1.000 0.000 0.000 scb
265 (C) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
266 (B) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
267 (E) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
268 0.180 0.545 0.341 scb
269 mark model ( %pC %pB %pE ) @index (spice:Q) {/Times-Roman cf} ctmk 4 0 1.00 -244 -139 
270 infolabel
271 (sim:b %pB %pE %pC) {/Times-Roman cf} 2 4 0 1.00 -244 -187 infolabel
272 endgate
273 } def
275 /PNP {
276 << /model (npn) /@index (?) >> begingate
277 1 1.00 -48 0 -64 0 2 polygon
278 1 1.00 -48 48 -48 -48 2 polygon
279 1 1.00 0 48 -48 22 2 polygon
280 1 1.00 0 48 0 64 2 polygon
281 1 1.00 0 -48 -48 -22 2 polygon
282 1 1.00 0 -48 0 -64 2 polygon
283 1.00 240 -48 22 arrowhead
284 1.000 0.000 0.000 scb
285 (C) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
286 (B) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
287 (E) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
288 0.180 0.545 0.341 scb
289 mark model ( %pC %pB %pE ) @index (spice:Q) {/Times-Roman cf} ctmk 4 0 1.00 -244 -139 
290 infolabel
291 endgate
292 } def
294 /DIODE {
295 << /@index (?) >> begingate
296 248 1.00 -18 -16 0 16 18 -16 3 polygon
297 1 1.00 0 -48 0 -16 2 polygon
298 1 1.00 0 48 0 16 2 polygon
299 1 1.00 -18 16 18 16 2 polygon
300 1.000 0.000 0.000 scb
301 (P) {/Times-Roman cf} 2 9 0 1.00 0 48 pinlabel
302 (M) {/Times-Roman cf} 2 13 0 1.00 0 -48 pinlabel
303 0.180 0.545 0.341 scb
304 mark @index (pcb:D) {/Times-Roman cf} ctmk 20 0 1.00 -64 -144 infolabel
305 mark ( %pP %pM diode) @index (spice:D) {/Times-Roman cf} ctmk 4 0 1.00 -64 -192 
306 infolabel
307 endgate
308 } def
311 % EndLib