123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242 |
- %%BeginProlog
- %
- % PostScript prolog for output from xcircuit
- % Version: 2.0
- %
- % Electrical circuit (and otherwise general) drawing program
- %
- % Written by Tim Edwards 8/5/93--2/25/99 (tim@bach.ece.jhu.edu)
- % The Johns Hopkins University
- %
- %%BeginResource: procset XCIRCproc 2.0 2
- % supporting definitions --- these are the primary xcircuit types.
- /XCIRCsave save def
- /topmat matrix currentmatrix def
- /fontslant { /slant exch def [1 0 slant 1 0 0]
- exch findfont exch makefont dup length dict /ndict exch def
- { 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall
- ndict definefont pop} def
- /cf { dup type /realtype eq {40 mul /fscale exch def} if dup /xfont exch def
- findfont fscale scalefont setfont } def
- /Ss { gsave 0.67 dup scale gsave mty neg rmoveto
- glevel 1 add /glevel exch def } def
- /ss { gsave 0.67 dup scale gsave mty 0.5 mul rmoveto
- glevel 1 add /glevel exch def } def
- /ns { currentpoint transform % preserve x position!
- glevel {grestore} repeat /glevel 0 def
- itransform pop currentpoint pop sub 0 rmoveto } def
- /ul { showflag 1 eq { gsave
- currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_)
- false charpath flattenpath pathbbox grestore exch pop 1 index
- sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0
- rlineto stroke moveto } if } def
- /ol { showflag 1 eq { gsave gsave
- currentpoint topmat setmatrix 2 index stringwidth pop 3 index
- true charpath flattenpath pathbbox grestore exch pop
- exch pop topmat setmatrix (_) true charpath pathbbox grestore
- exch pop 1 index sub setlinewidth exch pop currentpoint
- exch 4 1 roll exch sub add moveto pop 0 rlineto stroke
- moveto } if } def
- /stW { gsave true charpath flattenpath pathbbox pop exch pop sub
- grestore } def
- /bs { stW 0 rmoveto } def
- /pspc 0 def
- /qS { (aa) stW (a a) stW sub 4 div 0 rmoveto } def
- /hS { qS qS } def
- /textx { dup 1 add copy 0 exch { exch dup type /stringtype eq
- {stringwidth pop add}{exec} ifelse } repeat neg ns } def
- /mty { 0 topmat setmatrix (A) true charpath flattenpath pathbbox exch
- pop exch sub exch pop neg grestore } def
- /texty { gsave 2 copy pop exec mty } def
- /tcenter { textx grestore 0.5 mul 0 rmoveto } def
- /tright { textx grestore fspc sub 0 rmoveto } def
- /tmiddle { texty 0.5 mul rmoveto } def
- /ttop { texty fspc sub rmoveto } def
- /tshow {{ dup type /stringtype eq {show}{exec} ifelse} repeat ns } def
- /label { gsave translate 0 0 moveto rotate /just exch def just 16 and 0 gt
- {0 1 dtransform gsave pagemat setmatrix idtransform exch grestore
- 1 0 dtransform gsave pagemat setmatrix idtransform exch grestore
- dup 0 eq {pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse
- {-1 /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse exch 0 lt
- {-1 /just just dup 12 and 4 ne {12 xor} if def} {1} ifelse scale } if
- /glevel 0 def /showflag 0 def /fspc pspc def
- just 1 and 0 gt {gsave just 2 and 0 gt {tright}{tcenter} ifelse}
- {fspc 0 rmoveto} ifelse
- just 4 and 0 gt {just 8 and 0 gt {ttop}{tmiddle} ifelse}
- {0 fspc rmoveto} ifelse
- /showflag 1 def tshow grestore } def
- /pinlabel { hlevel 0 eq { /pspc 20 def label /pspc 0 def }
- { pop pop pop pop {pop} repeat } ifelse } def
- /pinglobal { pinlabel } def
- /infolabel { pinlabel } def
- /begingate { /hlevel hlevel 1 add def gsave translate 0 0 moveto dup 0 lt
- {neg 1 sub -1 1 scale} if rotate dup scale } bind def
- /makeparm {3 string cvs dup length 1 add string /tstr exch def tstr exch
- 1 exch putinterval tstr 0 (v) putinterval tstr cvn} bind def
- /beginparm { -1 1 {makeparm exch def} for
- dup type /arraytype eq { aload length -1 1 {makeparm exch def}
- for } if begingate } bind def
- /endgate { /hlevel hlevel 1 sub def grestore } bind def
- /hlevel 0 def
- /tmpa [1 0 0 1 0 0] def
- /gar {8 8 true tmpa {<c0 c0 00 00 0c 0c 00 00>} imagemask} bind
- {8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind
- {8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind
- {8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind
- {8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind
- {8 8 true tmpa {<df cf 8f 9f fd fc f8 f9>} imagemask} bind
- {8 8 true tmpa {<ff 3f 3f ff ff f3 f3 ff>} imagemask} bind 7 array astore def
- /ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll
- neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy
- gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll
- { 3 index exch 5 exch put dup -8 3 index { 3 index
- exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def
- /setstyles {
- currentlinewidth mul setlinewidth /style exch def
- style 1 and 0 gt not {closepath} if
- style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if
- style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if
- style dup 256 ge exch 480 lt and { gsave 1 setgray eofill grestore } if
- style 16 and 0 gt { gsave style 224 and -5 bitshift dup 7 lt
- {gar exch get ppaint} { pop eofill } ifelse grestore } if
- style 8 and 0 gt { newpath } { stroke } ifelse grestore } def
- /scb { gsave setrgbcolor } bind def /sce { grestore } bind def
- /polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def
- /xcarc { gsave newpath arc setstyles } def
- /elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll
- 3 index div 1 scale } def
- /ele { 0 4 1 roll 0 4 1 roll } bind def
- /ellipse { gsave elb newpath ele arc setmatrix setstyles } def
- /pellip { elb ele arc setmatrix } def
- /nellip { elb ele arcn setmatrix } def
- /spline { gsave moveto curveto setstyles } def
- /polyc { {lineto} repeat } bind def
- /beginpath { gsave moveto } bind def
- /endpath { setstyles } bind def
- /bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 setgray } def
- /setpagemat {/pagemat matrix currentmatrix def} def
- /inchscale {setpagemat 0.375 mul dup scale} def
- /cmscale {setpagemat 0.35433071 mul dup scale} def
- %%EndResource
- %%EndProlog
- % XCircuit output starts here.
- /resistor {
- % -14 -64 66 128 bbox
- (10) (k) 2 beginparm
- % fundamental
- 1 1.00 0 64 0 36 2 polygon
- 1 1.00 0 -64 0 -36 2 polygon
- 1 1.00 0 -36 14 -30 -14 -18 14 -6 -14 6 14 18 -14 30 0 36 8 polygon
- 1.000 0.000 0.000 scb
- (r.1) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel
- (r.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel
- sce
- (spice:R%i %pr.1 %pr.2 %v"10"%v"k") {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel
- (sim:r %pr.1 %pr.2) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel
- (W) {/Symbol 1.000 cf} () v2 () {hS} () v1 () {/Helvetica 1.000 cf} 10 29 90 24 0 label
- endgate
- } def
- /nmos {
- % -64 -64 64 128 bbox
- (1.0) (1.0) 2 beginparm
- % fundamental
- 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
- 1 1.00 -44 -28 -44 28 2 polygon
- 1 1.00 -44 0 -64 0 2 polygon
- 1.000 0.000 0.000 scb
- (G) {/Helvetica 1.000 cf} 2 7 0 -64 0 pinlabel
- (S) {/Helvetica 1.000 cf} 2 13 0 0 -64 pinlabel
- (D) {/Helvetica 1.000 cf} 2 9 0 0 64 pinlabel
- sce
- (u) v2 (u L=) v1 (spice:M%i %pD %pG %pS GND nmos W=) {/Times-Roman 1.000 cf} 6 4 0 -244 -139 infolabel
- (sim:n %pG %pS %pD) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel
- endgate
- } def
- /dot {
- % -10 -10 20 20 bbox
- begingate
- 248 1.00 0 0 6 0.00 360.00 xcarc
- endgate
- } def
- /gnd {
- % -32 -60 64 68 bbox
- begingate
- 1 1.00 0 0 0 -32 2 polygon
- 1 1.00 -32 -32 32 -32 2 polygon
- 1 1.00 -18 -46 18 -46 2 polygon
- 1 1.00 -4 -60 4 -60 2 polygon
- 1.000 0.000 0.000 scb
- (GND) {/Times-Roman 1.000 cf} 2 1 0 0 0 pinglobal
- sce
- endgate
- } def
- /vdd {
- % -32 0 64 66 bbox
- begingate
- 1 1.00 0 0 0 32 2 polygon
- 1 1.00 -32 32 32 32 2 polygon
- (Vdd) {/Times-Roman 0.900 cf} 2 17 0 0 38 label
- 1.000 0.000 0.000 scb
- (Vdd) {/Times-Roman 1.000 cf} 2 13 0 0 0 pinglobal
- sce
- endgate
- } def
- /circle {
- % -6 -12 28 24 bbox
- begingate
- 1 1.00 16 0 6 0.00 360.00 xcarc
- 1 1.00 0 0 10 0 2 polygon
- 1.000 0.000 0.000 scb
- (out) {/Times-Roman 1.000 cf} 2 4 0 16 0 pinlabel
- (out) {/Times-Roman 1.000 cf} 2 7 0 0 0 pinlabel
- sce
- endgate
- } def
- %%Page: analog1 1
- %%PageOrientation: Portrait
- /pgsave save def bop
- % 448 284 offsets
- 1.0000 inchscale
- 2.6000 setlinewidth
- 1.00 0 224 540 [(100) () ] resistor
- 1.00 0 448 540 [(20) (k) ] resistor
- 1.00 0 448 316 [(4.0) (2.0) ] nmos
- 1.00 -1 224 316 [(10) (2.0) ] nmos
- 1 1.00 224 476 224 380 2 polygon
- 1 1.00 448 476 448 380 2 polygon
- 1 1.00 384 316 288 316 2 polygon
- 1 1.00 336 316 336 412 224 412 3 polygon
- 1.00 0 224 412 dot
- 1.00 0 336 316 dot
- 1.00 0 224 252 gnd
- 1.00 0 448 252 gnd
- 1.00 0 224 604 vdd
- 1.00 0 448 604 vdd
- 1 1.00 448 412 544 412 2 polygon
- 1.00 0 448 412 dot
- 1.00 0 544 412 circle
- 1.000 0.000 0.000 scb
- (Vout) {/Times-Roman 1.000 cf} 2 20 0 560 412 pinlabel
- sce
- pgsave restore showpage
- %%Trailer
- XCIRCsave restore
- %%EOF
|