%%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 {} 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 {} imagemask} bind {8 8 true tmpa {} 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. /dot { % -10 -10 20 20 bbox begingate 248 1.00 0 0 6 0.00 360.00 xcarc 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 /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 /resistor { % -14 -64 151 128 bbox (1.0) (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"1.0"%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} 6 20 0 32 0 label endgate } def /polarized { % -32 -64 177 128 bbox (1.0) (p) 2 beginparm % fundamental 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 0 -80 74 66.00 114.00 xcarc 1.000 0.000 0.000 scb (t) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (b) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:C%i %pt %pb %v"1.0"%v"p") {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel (sim:e %pt %pb %pb) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel (F) v2 {hS} v1 {/Helvetica 1.000 cf} 5 20 0 48 0 label endgate } def /source { % -32 -64 64 128 bbox % hidden begingate 1 1.00 0 0 32 0.00 360.00 xcarc 1 1.00 0 32 0 64 2 polygon 1 1.00 0 -32 0 -64 2 polygon endgate } def /acsource { % -32 -64 211 128 bbox (5) (0) (1) (k) 4 beginparm % fundamental 1.00 0 0 0 source 1 0.80 0 -48 0 48 -16 0 16 0 spline 1.000 0.000 0.000 scb (s.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (s.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:V%i %ps.m %ps.p SIN\(%v"0" %v"5" %v"1"%v"k"\)) {/Helvetica 1.000 cf} 2 20 0 -336 -160 infolabel (offset) {ss} (V) {hS} v2 {/Helvetica 1.000 cf} 6 20 0 48 0 label (p-p) {ss} (V) {hS} v1 {/Helvetica 1.000 cf} 6 20 0 48 48 label (Hz) v4 {hS} v3 {/Helvetica 1.000 cf} 5 20 0 48 -48 label endgate } def %%Page: 1 1 %%PageOrientation: Portrait /pgsave save def bop % 912 464 offsets 1.0000 inchscale 2.6000 setlinewidth 1 1.00 528 528 528 592 784 592 3 polygon 1 1.00 528 400 528 336 784 336 3 polygon 1 1.00 784 464 976 464 2 polygon 1 1.00 784 336 976 336 2 polygon 1.00 0 784 336 dot 1.00 0 784 464 dot 1.00 0 976 464 circle 1.00 0 976 336 circle 1.00 -1 464 336 circle 1 1.00 464 336 528 336 2 polygon 1 1.00 528 592 464 592 2 polygon 1.00 -1 464 592 circle 1.00 0 640 336 gnd 1.00 0 640 336 dot 1.00 0 528 336 dot 1.00 0 528 592 dot 1.000 0.000 0.000 scb (Vin) {/Helvetica 1.000 cf} 2 23 0 448 592 pinlabel (Vout) {/Helvetica 1.000 cf} 2 20 0 992 464 pinlabel sce 1.00 0 784 528 [(10) (k) ] resistor 1.00 0 784 400 [(1.0) (u) ] polarized 1.00 0 528 464 [(5) (0) (5) (k) ] acsource pgsave restore showpage %%Trailer XCIRCsave restore %%EOF