summaryrefslogtreecommitdiff
path: root/examples/fourttest.ps
diff options
context:
space:
mode:
Diffstat (limited to 'examples/fourttest.ps')
-rw-r--r--examples/fourttest.ps292
1 files changed, 292 insertions, 0 deletions
diff --git a/examples/fourttest.ps b/examples/fourttest.ps
new file mode 100644
index 0000000..51aff8f
--- /dev/null
+++ b/examples/fourttest.ps
@@ -0,0 +1,292 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Title: fourttest
+%%Creator: Xcircuit v2.3
+%%CreationDate: Wed May 16 14:01:31 2001
+%%Pages: 1
+%%BoundingBox: 68 68 335 303
+%%DocumentNeededResources: font Helvetica font Times-Roman
+%%EndComments
+%%BeginProlog
+%
+% PostScript prolog for output from xcircuit
+% Version: 2.3
+%
+% Electrical circuit (and otherwise general) drawing program
+%
+% Written by Tim Edwards 8/5/93--5/16/01 (tim@bach.ece.jhu.edu)
+% The Johns Hopkins University
+%
+%%BeginResource: procset XCIRCproc 2.3 1
+% 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
+/ul { dup type /stringtype eq showflag 1 eq and { 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 { dup type /stringtype eq showflag 1 eq and { 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 currentpoint newpath moveto true charpath flattenpath
+ pathbbox pop exch pop sub grestore } def
+/Ts {mark Tabs aload pop counttomark 1 add array astore /Tabs exch def Tabs
+ 0 currentpoint pop put} def
+/Tbn {mark Tabs aload pop counttomark dup 2 add 1 roll cleartomark 1 sub} def
+/Tb { 0 1 Tbn {Tabs exch get dup currentpoint pop lt
+ {currentpoint exch pop moveto exit} {pop} ifelse } for } def
+/Tf { Tbn -1 0 {Tabs exch get dup currentpoint pop gt
+ {currentpoint exch pop moveto exit} {pop} ifelse } for } def
+/qS { (aa) stW (a a) stW sub 4 div 0 Kn } def
+/hS { qS qS } def
+/pspc 0 def
+/cf0 { scalefont setfont } bind def
+/Kn { dup kY add /kY exch def rmoveto } bind def
+/ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul
+ 0.33 mul neg Kn} def
+/Ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul
+ 0.67 mul Kn } def
+/ns { 0 kY neg Kn /kY 0 def /fscale 1.0 def xfont0 1.0 cf0 } def
+/CR { ns 0 /Bline Bline fscale0 neg add def Bline moveto } def
+/cf { dup type /realtype ne {1.0} if exch findfont exch kY 0 eq
+ { 40 mul dup /fscale0 exch def cf0 /xfont0 currentfont def}
+ {fscale0 mul fscale mul cf0} ifelse } def
+/ctmk { counttomark dup 2 add -1 roll pop } bind def
+/label { gsave translate 0 0 moveto dup scale /rotval exch def /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 /showflag 0 def /fspc pspc def /Bline 0 def /Tabs 0 array def
+ /fscale 1.0 def /kY 0 def
+ gsave dup 1 add copy 0 exch {exch dup type /stringtype eq {true
+ charpath flattenpath} {exec} ifelse } repeat pop pathbbox grestore
+ 3 -1 roll pop 3 1 roll just 1 and 0 gt {just 2 and 0 gt {exch pop
+ neg fspc sub} {exch sub 0.5 mul neg} ifelse} {pop neg fspc add}
+ ifelse exch Bline exch just 4 and 0 gt {just 8 and 0 gt {exch pop
+ neg fspc sub} {add 0.5 mul neg} ifelse} {pop neg fspc add} ifelse
+ /showflag 1 def rotval rotate Kn currentpoint translate
+ /Bline 0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def
+ {dup type /stringtype eq {show}{exec} ifelse} repeat grestore } def
+/pinlabel { hlevel 0 eq { /pspc 20 def label /pspc 0 def }
+ { pop pop pop pop pop {pop} repeat } ifelse } def
+/pinglobal { pinlabel } def
+/infolabel { pinlabel } def
+
+/scb { setrgbcolor } bind def /sce { defColor aload pop scb } bind def
+/cRedef {/defColor currentcolor 3 array astore def} def
+/begingate { /hlevel hlevel 1 add def /defColor currentcolor sce 3 array
+ astore def gsave sce 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 defColor aload pop cRedef
+ scb} 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 style 512 eq or { newpath } { stroke } ifelse grestore } 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 0 0 scb cRedef } def
+/insertion {/PSobj save def /showpage {} def bop translate} def
+/end_insert {PSobj restore} 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.
+
+/nMOS4 {
+% -64 -64 234 128 bbox
+(3) (2) (nmos) 3 beginparm
+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) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
+(S) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
+(D) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
+(B) {/Times-Roman cf} 2 4 0 1.00 32 0 pinlabel
+sce
+mark v2 ( L=) v1 ( W=) v3 (spice:M%i %pD %pG %pS %pB ) {/Times-Roman cf} ctmk
+4 0 1.00 -244 -139 infolabel
+sce
+(sim:n %pG %pD %pS) {/Times-Roman cf} 2 4 0 1.00 -244 -187 infolabel
+mark v2 (/) v1 (W/L=) {/Times-Roman cf} ctmk 20 0 1.00 16 32 label
+1 1.00 -32 0 32 0 2 polygon
+endgate
+} def
+
+/dot {
+% -10 -10 20 20 bbox
+% trivial
+begingate
+248 1.00 0 0 6 0.00 360.00 xcarc
+1.000 0.000 0.000 scb
+(x) {/Times-Roman cf} 2 29 0 1.00 0 0 pinlabel
+endgate
+} def
+
+/nmos {
+% -64 -64 64 128 bbox
+begingate
+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) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
+(S) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
+(D) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
+sce
+(spice:M%i %pD %pG %pS GND nmos) {/Times-Roman cf} 2 4 0 1.00 -244 -139
+infolabel
+sce
+(sim:n %pG %pS %pD) {/Times-Roman cf} 2 4 0 1.00 -244 -187 infolabel
+endgate
+} def
+
+/gnd {
+% -32 -60 64 68 bbox
+% trivial
+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 cf} 2 1 0 1.00 0 0 pinglobal
+endgate
+} def
+
+/pMOS4 {
+% -64 -64 256 128 bbox
+(3) (2) (pmos) 3 beginparm
+1 1.00 -44 -28 -44 28 2 polygon
+1 1.00 -60 0 -64 0 2 polygon
+1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon
+1 1.00 -52 0 8 0.00 360.00 xcarc
+1.000 0.000 0.000 scb
+(S) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel
+(D) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel
+(G) {/Times-Roman cf} 2 7 0 1.00 -64 0 pinlabel
+(B) {/Times-Roman cf} 2 4 0 1.00 32 0 pinlabel
+sce
+mark v2 ( L=) v1 ( W=) v3 (spice:M%i %pD %pG %pS %pB ) {/Times-Roman cf} ctmk
+4 0 1.00 -196 -139 infolabel
+sce
+(sim:p %pG %pD %pS) {/Times-Roman cf} 2 4 0 1.00 -196 -187 infolabel
+mark v2 (/) v1 (W/L=) {/Times-Roman cf} ctmk 20 0 1.00 16 32 label
+1 1.00 -32 0 32 0 2 polygon
+endgate
+} def
+
+/vdd {
+% -32 0 64 66 bbox
+% trivial
+begingate
+1 1.00 0 0 0 32 2 polygon
+1 1.00 -32 32 32 32 2 polygon
+(Vdd) {/Times-Roman cf} 2 17 0 0.90 0 38 label
+1.000 0.000 0.000 scb
+(Vdd) {/Times-Roman cf} 2 13 0 1.00 0 0 pinglobal
+endgate
+} def
+
+%%Page: 1 1
+%%PageOrientation: Portrait
+/pgsave save def bop
+% 672 380 offsets
+1.0000 inchscale
+2.6000 setlinewidth
+
+1.00 0 384 508 nMOS4
+1.00 180 608 508 nMOS4
+1 1.00 416 508 576 508 2 polygon
+1 1.00 416 508 416 444 2 polygon
+1 1.00 384 444 608 444 2 polygon
+1.00 0 416 508 dot
+1.00 0 416 444 dot
+1.00 0 496 444 dot
+1 1.00 496 444 496 380 2 polygon
+1.00 0 496 316 nmos
+1.00 0 496 252 gnd
+1 1.00 320 508 256 508 2 polygon
+1 1.00 672 508 736 508 2 polygon
+1 1.00 432 316 368 316 2 polygon
+1.000 0.000 0.000 scb
+(Bias) {/Helvetica cf} 2 23 0 1.00 368 316 pinlabel
+(V1) {/Helvetica cf} 2 23 0 1.00 256 508 pinlabel
+(V2) {/Helvetica cf} 2 20 0 1.00 736 508 pinlabel
+sce
+1.00 -181 608 636 [(12) ] pMOS4
+1.00 180 384 636 [(12) ] pMOS4
+1 1.00 352 636 352 700 2 polygon
+1 1.00 640 636 640 700 2 polygon
+1 1.00 352 700 640 700 2 polygon
+1.00 0 608 700 dot
+1.00 0 384 700 dot
+1.00 0 496 700 dot
+1 1.00 496 700 496 732 2 polygon
+1.00 0 496 732 vdd
+1 1.00 448 636 544 636 2 polygon
+1 1.00 496 636 496 572 608 572 3 polygon
+1 1.00 608 572 800 572 2 polygon
+1.000 0.000 0.000 scb
+(Out) {/Helvetica cf} 2 20 0 1.00 800 572 pinlabel
+sce
+1.00 0 496 636 dot
+1.00 0 608 572 dot
+pgsave restore showpage
+
+%%Trailer
+XCIRCsave restore
+%%EOF