diff options
Diffstat (limited to 'tutorial')
73 files changed, 0 insertions, 7372 deletions
diff --git a/tutorial/footnote.html b/tutorial/footnote.html deleted file mode 100644 index 0e20367..0000000 --- a/tutorial/footnote.html +++ /dev/null @@ -1,27 +0,0 @@ -<HTML> -<TITLE>A footnote about the "mu" character in LaTeX</TITLE> -<BODY BACKGROUND=../giffiles/blpaper.gif> - -It just so happens that although the "mu" -character is encoded into the Adobe fonts, but is not part of any of the -TeX fonts or TeX font encodings of standard Adobe (or TrueType) fonts. -However, it is not strictly true that printing the character is impossible. -I, being the enterprising character that I am, have found a (somewhat -kludgy) workaround: - -<OL> - <LI> First, you must be using one of the PSNFSS packages available under - LaTeX2e, such as "times" (<TT>\usepackage{times}</TT>) - <LI> Next, create the following definition:<BR> - <TT>\def\micro{\special{ps:(µ)show}\nobreak\hspace*{0.55em}}</TT><BR> - (The "mu" character here is the embedded 8-bit character encoding - hex 0xb5, or decimal 181, or octal 0625). - <LI> The <TT>\micro</TT> definition can be used as follows, for example:<BR> - <TT>The correlator measures 700\,{\micro}m $\times$ 1170\,{\micro}m</TT> - <LI> This definition of <TT>\micro</TT> uses a \special{} function defined only - by (as far as I know) <TT>dvips</TT>, so the proper symbol will only show - up after postprocessing the <TT>.dvi</TT> file through <TT>dvips</TT>. -</OL> - -</BODY> -</HTML> diff --git a/tutorial/giffiles/aggregate.gif b/tutorial/giffiles/aggregate.gif Binary files differdeleted file mode 100644 index 371b19f..0000000 --- a/tutorial/giffiles/aggregate.gif +++ /dev/null diff --git a/tutorial/giffiles/alib.gif b/tutorial/giffiles/alib.gif Binary files differdeleted file mode 100644 index 865dc2d..0000000 --- a/tutorial/giffiles/alib.gif +++ /dev/null diff --git a/tutorial/giffiles/amp1.gif b/tutorial/giffiles/amp1.gif Binary files differdeleted file mode 100644 index d022255..0000000 --- a/tutorial/giffiles/amp1.gif +++ /dev/null diff --git a/tutorial/giffiles/amp2.gif b/tutorial/giffiles/amp2.gif Binary files differdeleted file mode 100644 index 5606af0..0000000 --- a/tutorial/giffiles/amp2.gif +++ /dev/null diff --git a/tutorial/giffiles/amp3.gif b/tutorial/giffiles/amp3.gif Binary files differdeleted file mode 100644 index c9fcd8f..0000000 --- a/tutorial/giffiles/amp3.gif +++ /dev/null diff --git a/tutorial/giffiles/arcs1.gif b/tutorial/giffiles/arcs1.gif Binary files differdeleted file mode 100644 index 09db235..0000000 --- a/tutorial/giffiles/arcs1.gif +++ /dev/null diff --git a/tutorial/giffiles/bridge.gif b/tutorial/giffiles/bridge.gif Binary files differdeleted file mode 100644 index ac18bbc..0000000 --- a/tutorial/giffiles/bridge.gif +++ /dev/null diff --git a/tutorial/giffiles/bridge1.gif b/tutorial/giffiles/bridge1.gif Binary files differdeleted file mode 100644 index da964e2..0000000 --- a/tutorial/giffiles/bridge1.gif +++ /dev/null diff --git a/tutorial/giffiles/bridge2.gif b/tutorial/giffiles/bridge2.gif Binary files differdeleted file mode 100644 index 53ea047..0000000 --- a/tutorial/giffiles/bridge2.gif +++ /dev/null diff --git a/tutorial/giffiles/bridge3.gif b/tutorial/giffiles/bridge3.gif Binary files differdeleted file mode 100644 index d0bcd2c..0000000 --- a/tutorial/giffiles/bridge3.gif +++ /dev/null diff --git a/tutorial/giffiles/bridge4.gif b/tutorial/giffiles/bridge4.gif Binary files differdeleted file mode 100644 index 3439f07..0000000 --- a/tutorial/giffiles/bridge4.gif +++ /dev/null diff --git a/tutorial/giffiles/bridge5.gif b/tutorial/giffiles/bridge5.gif Binary files differdeleted file mode 100644 index 668ae54..0000000 --- a/tutorial/giffiles/bridge5.gif +++ /dev/null diff --git a/tutorial/giffiles/bridge6.gif b/tutorial/giffiles/bridge6.gif Binary files differdeleted file mode 100644 index 3aafac5..0000000 --- a/tutorial/giffiles/bridge6.gif +++ /dev/null diff --git a/tutorial/giffiles/dff.gif b/tutorial/giffiles/dff.gif Binary files differdeleted file mode 100644 index 6260fba..0000000 --- a/tutorial/giffiles/dff.gif +++ /dev/null diff --git a/tutorial/giffiles/filter1.gif b/tutorial/giffiles/filter1.gif Binary files differdeleted file mode 100644 index 3529749..0000000 --- a/tutorial/giffiles/filter1.gif +++ /dev/null diff --git a/tutorial/giffiles/filter2.gif b/tutorial/giffiles/filter2.gif Binary files differdeleted file mode 100644 index 57d2733..0000000 --- a/tutorial/giffiles/filter2.gif +++ /dev/null diff --git a/tutorial/giffiles/fullamp.gif b/tutorial/giffiles/fullamp.gif Binary files differdeleted file mode 100644 index a2efe6b..0000000 --- a/tutorial/giffiles/fullamp.gif +++ /dev/null diff --git a/tutorial/giffiles/fullamp_anno.gif b/tutorial/giffiles/fullamp_anno.gif Binary files differdeleted file mode 100644 index db0f63a..0000000 --- a/tutorial/giffiles/fullamp_anno.gif +++ /dev/null diff --git a/tutorial/giffiles/halfamp.gif b/tutorial/giffiles/halfamp.gif Binary files differdeleted file mode 100644 index 63ca65e..0000000 --- a/tutorial/giffiles/halfamp.gif +++ /dev/null diff --git a/tutorial/giffiles/integrate1.gif b/tutorial/giffiles/integrate1.gif Binary files differdeleted file mode 100644 index f77b941..0000000 --- a/tutorial/giffiles/integrate1.gif +++ /dev/null diff --git a/tutorial/giffiles/lib1.gif b/tutorial/giffiles/lib1.gif Binary files differdeleted file mode 100644 index 06f4483..0000000 --- a/tutorial/giffiles/lib1.gif +++ /dev/null diff --git a/tutorial/giffiles/load1.gif b/tutorial/giffiles/load1.gif Binary files differdeleted file mode 100644 index 76fc7eb..0000000 --- a/tutorial/giffiles/load1.gif +++ /dev/null diff --git a/tutorial/giffiles/nand4.gif b/tutorial/giffiles/nand4.gif Binary files differdeleted file mode 100644 index 56292a5..0000000 --- a/tutorial/giffiles/nand4.gif +++ /dev/null diff --git a/tutorial/giffiles/object.gif b/tutorial/giffiles/object.gif Binary files differdeleted file mode 100644 index f783581..0000000 --- a/tutorial/giffiles/object.gif +++ /dev/null diff --git a/tutorial/giffiles/objedit.gif b/tutorial/giffiles/objedit.gif Binary files differdeleted file mode 100644 index 3318d19..0000000 --- a/tutorial/giffiles/objedit.gif +++ /dev/null diff --git a/tutorial/giffiles/overunder.gif b/tutorial/giffiles/overunder.gif Binary files differdeleted file mode 100644 index f1fce9b..0000000 --- a/tutorial/giffiles/overunder.gif +++ /dev/null diff --git a/tutorial/giffiles/path1.gif b/tutorial/giffiles/path1.gif Binary files differdeleted file mode 100644 index 11c6a1e..0000000 --- a/tutorial/giffiles/path1.gif +++ /dev/null diff --git a/tutorial/giffiles/path2.gif b/tutorial/giffiles/path2.gif Binary files differdeleted file mode 100644 index 384c37f..0000000 --- a/tutorial/giffiles/path2.gif +++ /dev/null diff --git a/tutorial/giffiles/path3.gif b/tutorial/giffiles/path3.gif Binary files differdeleted file mode 100644 index 3dc0213..0000000 --- a/tutorial/giffiles/path3.gif +++ /dev/null diff --git a/tutorial/giffiles/path4.gif b/tutorial/giffiles/path4.gif Binary files differdeleted file mode 100644 index 34671ba..0000000 --- a/tutorial/giffiles/path4.gif +++ /dev/null diff --git a/tutorial/giffiles/path5.gif b/tutorial/giffiles/path5.gif Binary files differdeleted file mode 100644 index 326a015..0000000 --- a/tutorial/giffiles/path5.gif +++ /dev/null diff --git a/tutorial/giffiles/pcbcap.gif b/tutorial/giffiles/pcbcap.gif Binary files differdeleted file mode 100644 index 69bbd8c..0000000 --- a/tutorial/giffiles/pcbcap.gif +++ /dev/null diff --git a/tutorial/giffiles/pcbdiode.gif b/tutorial/giffiles/pcbdiode.gif Binary files differdeleted file mode 100644 index 0906f88..0000000 --- a/tutorial/giffiles/pcbdiode.gif +++ /dev/null diff --git a/tutorial/giffiles/poly1.gif b/tutorial/giffiles/poly1.gif Binary files differdeleted file mode 100644 index 360f400..0000000 --- a/tutorial/giffiles/poly1.gif +++ /dev/null diff --git a/tutorial/giffiles/poly2.gif b/tutorial/giffiles/poly2.gif Binary files differdeleted file mode 100644 index b58ea3c..0000000 --- a/tutorial/giffiles/poly2.gif +++ /dev/null diff --git a/tutorial/giffiles/powersup.gif b/tutorial/giffiles/powersup.gif Binary files differdeleted file mode 100644 index 68a9576..0000000 --- a/tutorial/giffiles/powersup.gif +++ /dev/null diff --git a/tutorial/giffiles/powersup2.gif b/tutorial/giffiles/powersup2.gif Binary files differdeleted file mode 100644 index d00e6eb..0000000 --- a/tutorial/giffiles/powersup2.gif +++ /dev/null diff --git a/tutorial/giffiles/quadparts.gif b/tutorial/giffiles/quadparts.gif Binary files differdeleted file mode 100644 index 0be0e22..0000000 --- a/tutorial/giffiles/quadparts.gif +++ /dev/null diff --git a/tutorial/giffiles/save1.gif b/tutorial/giffiles/save1.gif Binary files differdeleted file mode 100644 index c98500e..0000000 --- a/tutorial/giffiles/save1.gif +++ /dev/null diff --git a/tutorial/giffiles/save2.gif b/tutorial/giffiles/save2.gif Binary files differdeleted file mode 100644 index d947ad6..0000000 --- a/tutorial/giffiles/save2.gif +++ /dev/null diff --git a/tutorial/giffiles/select1.gif b/tutorial/giffiles/select1.gif Binary files differdeleted file mode 100644 index dfc319e..0000000 --- a/tutorial/giffiles/select1.gif +++ /dev/null diff --git a/tutorial/giffiles/select2.gif b/tutorial/giffiles/select2.gif Binary files differdeleted file mode 100644 index 26d255d..0000000 --- a/tutorial/giffiles/select2.gif +++ /dev/null diff --git a/tutorial/giffiles/spline1.gif b/tutorial/giffiles/spline1.gif Binary files differdeleted file mode 100644 index 0f6368a..0000000 --- a/tutorial/giffiles/spline1.gif +++ /dev/null diff --git a/tutorial/giffiles/spline2.gif b/tutorial/giffiles/spline2.gif Binary files differdeleted file mode 100644 index 25c1264..0000000 --- a/tutorial/giffiles/spline2.gif +++ /dev/null diff --git a/tutorial/giffiles/spline3.gif b/tutorial/giffiles/spline3.gif Binary files differdeleted file mode 100644 index 01df61f..0000000 --- a/tutorial/giffiles/spline3.gif +++ /dev/null diff --git a/tutorial/giffiles/symbol_enc.gif b/tutorial/giffiles/symbol_enc.gif Binary files differdeleted file mode 100644 index 934bfdb..0000000 --- a/tutorial/giffiles/symbol_enc.gif +++ /dev/null diff --git a/tutorial/giffiles/text.gif b/tutorial/giffiles/text.gif Binary files differdeleted file mode 100644 index 0939c71..0000000 --- a/tutorial/giffiles/text.gif +++ /dev/null diff --git a/tutorial/giffiles/text2.gif b/tutorial/giffiles/text2.gif Binary files differdeleted file mode 100644 index e988e64..0000000 --- a/tutorial/giffiles/text2.gif +++ /dev/null diff --git a/tutorial/giffiles/tut1.gif b/tutorial/giffiles/tut1.gif Binary files differdeleted file mode 100644 index d664463..0000000 --- a/tutorial/giffiles/tut1.gif +++ /dev/null diff --git a/tutorial/giffiles/wramp1.gif b/tutorial/giffiles/wramp1.gif Binary files differdeleted file mode 100644 index 7e57adb..0000000 --- a/tutorial/giffiles/wramp1.gif +++ /dev/null diff --git a/tutorial/index.html b/tutorial/index.html deleted file mode 120000 index 1808037..0000000 --- a/tutorial/index.html +++ /dev/null @@ -1 +0,0 @@ -tutorial.html
\ No newline at end of file diff --git a/tutorial/netfiles/filter.spc b/tutorial/netfiles/filter.spc deleted file mode 100644 index 394b0b0..0000000 --- a/tutorial/netfiles/filter.spc +++ /dev/null @@ -1,6 +0,0 @@ -Spice circuit filter - -V1 GND Vin SIN(0 5 5k) -C2 Vout GND 1.0u -R3 Vin Vout 100k -.end diff --git a/tutorial/netfiles/integrator.spc b/tutorial/netfiles/integrator.spc deleted file mode 100644 index 2448672..0000000 --- a/tutorial/netfiles/integrator.spc +++ /dev/null @@ -1,17 +0,0 @@ -Spice circuit integrator - -.subckt wramp bias out in.p in.m -M1 net.1 net.1 GND GND nmos -M2 out net.1 GND GND nmos -M3 net.1 net.2 Vdd Vdd pmos -M4 out net.3 Vdd Vdd pmos -M5 net.3 net.3 Vdd Vdd pmos -M6 net.2 net.2 Vdd Vdd pmos -M7 net.4 bias GND GND nmos -M8 net.3 in.p net.4 GND nmos -M9 net.2 in.m net.4 GND nmos -.ends - -C10 Output GND 1.0P -X1 Bias Output Input Output wramp -.end diff --git a/tutorial/pcb/FlareLED.ps b/tutorial/pcb/FlareLED.ps deleted file mode 100644 index d807858..0000000 --- a/tutorial/pcb/FlareLED.ps +++ /dev/null @@ -1,720 +0,0 @@ -%!PS-Adobe-3.0 -%%Title: examples/FlareLED -%%Creator: Xcircuit v2.3 -%%CreationDate: Mon Jul 2 14:17:57 2001 -%%Pages: 1 -%%BoundingBox: -319 -124 931 916 -%%DocumentNeededResources: font Helvetica font Helvetica-Bold font Times-Roman -%%+ font Times-RomanISO font Symbol -%%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 - -/Times-Roman findfont dup length dict begin -{1 index /FID ne {def} {pop pop} ifelse} forall -/Encoding ISOLatin1Encoding def currentdict end -/Times-RomanISO exch definefont pop - -% XCircuit output starts here. - -/PIC16C54 { -% 0 0 480 736 bbox -(?) 1 beginparm -0 1.00 0 0 0 736 480 736 480 0 4 polygon -(PIC16C54A) {/Helvetica-Bold cf} 2 21 0 1.00 240 320 label -(Vdd) {/Helvetica cf} 2 23 0 1.00 464 368 label -(RA2) {/Helvetica cf} 2 20 0 1.00 16 688 label -(RA3) {/Helvetica cf} 2 20 0 1.00 16 624 label -(RTCC) {/Helvetica cf} 2 20 0 1.00 16 560 label -(MCLR) {ol} {/Helvetica cf} 3 20 0 1.00 16 496 label -(Vss) {/Helvetica cf} 2 20 0 1.00 16 368 label -(RB0) {/Helvetica cf} 2 20 0 1.00 16 240 label -(RB1) {/Helvetica cf} 2 20 0 1.00 16 176 label -(RB2) {/Helvetica cf} 2 20 0 1.00 16 112 label -(RB3) {/Helvetica cf} 2 20 0 1.00 16 48 label -(RB4) {/Helvetica cf} 2 23 0 1.00 464 48 label -(RB5) {/Helvetica cf} 2 23 0 1.00 464 112 label -(RB6) {/Helvetica cf} 2 23 0 1.00 464 176 label -(RB7) {/Helvetica cf} 2 23 0 1.00 464 240 label -(OSC2/CLKOUT) {/Helvetica cf} 2 23 0 1.00 464 496 label -(OSC1/CLKIN) {/Helvetica cf} 2 23 0 1.00 464 560 label -(RA0) {/Helvetica cf} 2 23 0 1.00 464 624 label -(RA1) {/Helvetica cf} 2 23 0 1.00 464 688 label -sce -mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 224 256 infolabel -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 23 0 1.00 0 688 pinlabel -(2) {/Helvetica cf} 2 23 0 1.00 0 624 pinlabel -(3) {/Helvetica cf} 2 23 0 1.00 0 560 pinlabel -(4) {/Helvetica cf} 2 23 0 1.00 0 496 pinlabel -(5) {/Helvetica cf} 2 23 0 1.00 0 368 pinlabel -(6) {/Helvetica cf} 2 23 0 1.00 0 240 pinlabel -(7) {/Helvetica cf} 2 23 0 1.00 0 176 pinlabel -(8) {/Helvetica cf} 2 23 0 1.00 0 112 pinlabel -(9) {/Helvetica cf} 2 23 0 1.00 0 48 pinlabel -(10) {/Helvetica cf} 2 20 0 1.00 480 48 pinlabel -(11) {/Helvetica cf} 2 20 0 1.00 480 112 pinlabel -(12) {/Helvetica cf} 2 20 0 1.00 480 176 pinlabel -(13) {/Helvetica cf} 2 20 0 1.00 480 240 pinlabel -(14) {/Helvetica cf} 2 20 0 1.00 480 368 pinlabel -(15) {/Helvetica cf} 2 20 0 1.00 480 496 pinlabel -(16) {/Helvetica cf} 2 20 0 1.00 480 560 pinlabel -(17) {/Helvetica cf} 2 20 0 1.00 480 624 pinlabel -(18) {/Helvetica cf} 2 20 0 1.00 480 688 pinlabel -endgate -} def - -/LTC490 { -% 0 0 416 384 bbox -(?) 1 beginparm -0 1.00 0 0 0 384 416 384 416 0 4 polygon -(RS422) {/Helvetica cf} 2 21 0 1.00 192 176 label -(Transciever) {/Helvetica cf} 2 21 0 1.00 208 128 label -(LTC490) {/Helvetica-Bold cf} 2 21 0 1.00 192 256 label -(Vcc) {/Helvetica cf} 2 20 0 1.00 16 336 label -(R) {/Helvetica cf} 2 20 0 1.00 16 240 label -(D) {/Helvetica cf} 2 20 0 1.00 16 144 label -(GND) {/Helvetica cf} 2 20 0 1.00 16 48 label -(Y) {/Helvetica cf} 2 23 0 1.00 400 48 label -(Z) {/Helvetica cf} 2 23 0 1.00 400 144 label -(B) {/Helvetica cf} 2 23 0 1.00 400 240 label -(A) {/Helvetica cf} 2 23 0 1.00 400 336 label -sce -mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 208 80 infolabel -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 23 0 1.00 0 336 pinlabel -(2) {/Helvetica cf} 2 23 0 1.00 0 240 pinlabel -(3) {/Helvetica cf} 2 23 0 1.00 0 144 pinlabel -(4) {/Helvetica cf} 2 23 0 1.00 0 48 pinlabel -(5) {/Helvetica cf} 2 20 0 1.00 416 48 pinlabel -(6) {/Helvetica cf} 2 20 0 1.00 416 144 pinlabel -(7) {/Helvetica cf} 2 20 0 1.00 416 240 pinlabel -(8) {/Helvetica cf} 2 20 0 1.00 416 336 pinlabel -endgate -} def - -/terminal_block { -% -160 -80 320 173 bbox -(?) 1 beginparm -0 1.00 -160 -80 -160 48 160 48 160 -80 4 polygon -(ED100/3DS) {/Helvetica cf} 2 21 0 1.00 0 80 label -1 1.00 0 -16 32 0.00 360.00 xcarc -1 1.00 96 -16 32 0.00 360.00 xcarc -1 1.00 -96 -16 32 0.00 360.00 xcarc -sce -mark v1 (pcb:J) {/Helvetica cf} ctmk 21 0 1.00 0 -112 infolabel -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 25 0 1.00 -96 -16 pinlabel -(2) {/Helvetica cf} 2 25 0 1.00 0 -16 pinlabel -(3) {/Helvetica cf} 2 25 0 1.00 96 -16 pinlabel -endgate -} def - -/LTC1152 { -% -192 -192 384 384 bbox -(?) 1 beginparm -0 1.00 -192 -192 -192 192 192 192 192 -192 4 polygon -(LTC1152) {/Helvetica-Bold cf} 2 25 0 1.00 0 48 label -(Op-amp) {/Helvetica cf} 2 29 0 1.00 0 0 label -(SHDN) {/Helvetica cf} 2 20 0 1.00 -176 144 label -(IN) {/Helvetica cf} (-) {/Symbol cf} 4 20 0 1.00 -176 48 label -(IN) {/Helvetica cf} (+) {/Symbol cf} 4 20 0 1.00 -176 -48 label -(-) {/Symbol cf} (V) {/Helvetica cf} 4 20 0 1.00 -176 -144 label -(COMP) {/Helvetica cf} 2 23 0 1.00 176 -144 label -(OUT) {/Helvetica cf} 2 23 0 1.00 176 -48 label -(+) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 176 48 label -(CP) {/Helvetica cf} 2 23 0 1.00 176 144 label -sce -mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 0 -80 infolabel -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 23 0 1.00 -192 144 pinlabel -(2) {/Helvetica cf} 2 23 0 1.00 -192 48 pinlabel -(3) {/Helvetica cf} 2 23 0 1.00 -192 -48 pinlabel -(5) {/Helvetica cf} 2 20 0 1.00 192 -144 pinlabel -(4) {/Helvetica cf} 2 23 0 1.00 -192 -144 pinlabel -(6) {/Helvetica cf} 2 20 0 1.00 192 -48 pinlabel -(7) {/Helvetica cf} 2 20 0 1.00 192 48 pinlabel -(8) {/Helvetica cf} 2 20 0 1.00 192 144 pinlabel -endgate -} def - -/DSUB9 { -% -160 0 320 186 bbox -(?) 1 beginparm -1 1.00 -128 96 16 0.00 360.00 xcarc -1 1.00 -32 32 16 0.00 360.00 xcarc -1 1.00 0 96 16 0.00 360.00 xcarc -1 1.00 64 96 16 0.00 360.00 xcarc -1 1.00 128 96 16 15.00 375.00 xcarc -1 1.00 96 32 16 0.00 360.00 xcarc -1 1.00 32 32 16 0.00 360.00 xcarc -1 1.00 -64 96 16 0.00 360.00 xcarc -1 1.00 -96 32 16 0.00 360.00 xcarc -sce -mark v1 (pcb:J) {/Helvetica cf} ctmk 21 0 1.00 16 -48 infolabel -128 128 beginpath -128 96 32 450.00 333.43 arcn -124 17 1 polyc -96 32 32 333.43 270.00 arcn --96 0 1 polyc --96 32 32 270.00 206.57 arcn --156 81 1 polyc --128 -96 32 206.57 90.00 arcn -128 128 1 polyc -1 1.00 endpath -(AMP 745781-4) {/Helvetica cf} 2 25 0 1.00 0 160 label -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 25 0 1.00 -128 96 pinlabel -(3) {/Helvetica cf} 2 25 0 1.00 0 96 pinlabel -(2) {/Helvetica cf} 2 25 0 1.00 -64 96 pinlabel -(4) {/Helvetica cf} 2 25 0 1.00 64 96 pinlabel -(5) {/Helvetica cf} 2 25 0 1.00 128 96 pinlabel -(6) {/Helvetica cf} 2 29 0 1.00 -96 32 pinlabel -(7) {/Helvetica cf} 2 29 0 1.00 -32 32 pinlabel -(8) {/Helvetica cf} 2 29 0 1.00 32 32 pinlabel -(9) {/Helvetica cf} 2 29 0 1.00 96 32 pinlabel -endgate -} def - -/Crystal { -% -144 -144 288 288 bbox -(?) 1 beginparm -0 1.00 -144 -144 -144 144 144 144 144 -144 4 polygon -(CTX169) {/Helvetica-Bold cf} 2 25 0 1.00 0 16 label -(MHz) {hS} (20) {/Helvetica cf} 4 21 0 1.00 0 -32 label -(N/C) {/Helvetica cf} 2 20 0 1.00 -128 96 label -(GND) {/Helvetica cf} 2 20 0 1.00 -128 -96 label -(OUT) {/Helvetica cf} 2 23 0 1.00 128 -96 label -(Vdd) {/Helvetica cf} 2 23 0 1.00 128 96 label -sce -mark v1 (pcb:X) {/Helvetica cf} ctmk 21 0 1.00 0 -176 infolabel -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 23 0 1.00 -144 96 pinlabel -(2) {/Helvetica cf} 2 23 0 1.00 -144 -96 pinlabel -(3) {/Helvetica cf} 2 20 0 1.00 144 -96 pinlabel -(4) {/Helvetica cf} 2 20 0 1.00 144 96 pinlabel -endgate -} def - -/ADC12138 { -% -240 -464 480 928 bbox -(?) 1 beginparm -0 1.00 -240 -464 -240 464 240 464 240 -464 4 polygon -(CH0) {/Helvetica cf} 2 20 0 1.00 -224 416 label -(CH1) {/Helvetica cf} 2 20 0 1.00 -224 352 label -(CH2) {/Helvetica cf} 2 20 0 1.00 -224 288 label -(CH3) {/Helvetica cf} 2 20 0 1.00 -224 224 label -(CH4) {/Helvetica cf} 2 20 0 1.00 -224 160 label -(CH5) {/Helvetica cf} 2 20 0 1.00 -224 96 label -(CH6) {/Helvetica cf} 2 20 0 1.00 -224 32 label -(CH7) {/Helvetica cf} 2 20 0 1.00 -224 -32 label -(COM) {/Helvetica cf} 2 20 0 1.00 -224 -96 label -(MuxOut1) {/Helvetica cf} 2 20 0 1.00 -224 -160 label -(A/Din2) {/Helvetica cf} 2 20 0 1.00 -224 -352 label -(DGND) {/Helvetica cf} 2 20 0 1.00 -224 -416 label -(+) {/Symbol cf} (VA) {/Helvetica cf} 4 23 0 1.00 224 -416 label -(-) {/Symbol cf} (Vref) {/Helvetica cf} 4 23 0 1.00 224 -352 label -(+) {/Symbol cf} (Vref) {/Helvetica cf} 4 23 0 1.00 224 -288 label -(AGND) {/Helvetica cf} 2 23 0 1.00 224 -224 label -(PD) {/Helvetica cf} 2 23 0 1.00 224 -160 label -(EOC) {/Helvetica cf} 2 23 0 1.00 224 -96 label -(CONV) {ol} {/Helvetica cf} 3 23 0 1.00 224 -32 label -(CS) {ol} {/Helvetica cf} 3 23 0 1.00 224 32 label -(DO) {/Helvetica cf} 2 23 0 1.00 224 96 label -(DI) {/Helvetica cf} 2 23 0 1.00 224 160 label -(SCLK) {/Helvetica cf} 2 23 0 1.00 224 224 label -(A/Din1) {/Helvetica cf} 2 20 0 1.00 -224 -224 label -(MuxOut2) {/Helvetica cf} 2 20 0 1.00 -224 -288 label -(CCLK) {/Helvetica cf} 2 23 0 1.00 224 288 label -(DOR) {ol} {/Helvetica cf} 3 23 0 1.00 224 352 label -(+) {/Symbol cf} (VD) {/Helvetica cf} 4 23 0 1.00 224 416 label -(ADC12138) {/Helvetica-Bold cf} 2 21 0 1.00 0 64 label -sce -mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 0 0 infolabel -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 23 0 1.00 -240 416 pinlabel -(2) {/Helvetica cf} 2 23 0 1.00 -240 352 pinlabel -(3) {/Helvetica cf} 2 23 0 1.00 -240 288 pinlabel -(4) {/Helvetica cf} 2 23 0 1.00 -240 224 pinlabel -(5) {/Helvetica cf} 2 23 0 1.00 -240 160 pinlabel -(6) {/Helvetica cf} 2 23 0 1.00 -240 96 pinlabel -(7) {/Helvetica cf} 2 23 0 1.00 -240 32 pinlabel -(8) {/Helvetica cf} 2 23 0 1.00 -240 -32 pinlabel -(9) {/Helvetica cf} 2 23 0 1.00 -240 -96 pinlabel -(10) {/Helvetica cf} 2 23 0 1.00 -240 -160 pinlabel -(11) {/Helvetica cf} 2 23 0 1.00 -240 -224 pinlabel -(12) {/Helvetica cf} 2 23 0 1.00 -240 -288 pinlabel -(13) {/Helvetica cf} 2 23 0 1.00 -240 -352 pinlabel -(14) {/Helvetica cf} 2 23 0 1.00 -240 -416 pinlabel -(15) {/Helvetica cf} 2 20 0 1.00 240 -416 pinlabel -(16) {/Helvetica cf} 2 20 0 1.00 240 -352 pinlabel -(17) {/Helvetica cf} 2 20 0 1.00 240 -288 pinlabel -(18) {/Helvetica cf} 2 20 0 1.00 240 -224 pinlabel -(19) {/Helvetica cf} 2 20 0 1.00 240 -160 pinlabel -(20) {/Helvetica cf} 2 20 0 1.00 240 -96 pinlabel -(21) {/Helvetica cf} 2 20 0 1.00 240 -32 pinlabel -(22) {/Helvetica cf} 2 20 0 1.00 240 32 pinlabel -(23) {/Helvetica cf} 2 20 0 1.00 240 96 pinlabel -(24) {/Helvetica cf} 2 20 0 1.00 240 160 pinlabel -(25) {/Helvetica cf} 2 20 0 1.00 240 224 pinlabel -(26) {/Helvetica cf} 2 20 0 1.00 240 288 pinlabel -(27) {/Helvetica cf} 2 20 0 1.00 240 352 pinlabel -(28) {/Helvetica cf} 2 20 0 1.00 240 416 pinlabel -endgate -} def - -/TK11950 { -% -336 -112 672 224 bbox -(?) 1 beginparm -0 1.00 -336 -112 -336 112 336 112 336 -112 4 polygon -(NOISE BYPASS) {/Helvetica cf} 2 20 0 1.00 -320 64 label -(CONTROL) {/Helvetica cf} 2 20 0 1.00 -320 0 label -(RESET OUT) {/Helvetica cf} 2 20 0 1.00 -320 -64 label -(VO) {/Helvetica cf} 2 23 0 1.00 320 -64 label -(GND) {/Helvetica cf} 2 23 0 1.00 320 0 label -(VIN) {/Helvetica cf} 2 23 0 1.00 320 64 label -(TK11950) {/Helvetica-Bold cf} 2 21 0 1.00 64 16 label -(V) {hS} (5.0) {/Helvetica cf} 4 29 0 1.00 64 -32 label -sce -mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 0 -144 infolabel -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 23 0 1.00 -336 64 pinlabel -(2) {/Helvetica cf} 2 23 0 1.00 -336 0 pinlabel -(3) {/Helvetica cf} 2 23 0 1.00 -336 -64 pinlabel -(4) {/Helvetica cf} 2 20 0 1.00 336 -64 pinlabel -(5) {/Helvetica cf} 2 20 0 1.00 336 0 pinlabel -(6) {/Helvetica cf} 2 20 0 1.00 336 64 pinlabel -endgate -} def - -/Capacitor { -% -32 -64 186 128 bbox -(1.0) (\265) (?) 3 beginparm -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 -32 -6 32 -6 2 polygon -1.000 0.000 0.000 scb -(1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel -(2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel -sce -mark v2 v1 ( %p1 %p2 ) v3 (spice:C) {/Times-RomanISO cf} ctmk 4 0 1.00 -208 --160 infolabel -sce -(sim:c %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel -mark (F) v2 {hS} v1 {/Times-RomanISO cf} ctmk 20 0 1.00 48 0 label -sce -mark v3 (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel -endgate -} def - -/LM13700 { -% -256 -256 480 544 bbox -(?) 1 beginparm -0 1.00 -256 -256 -256 288 224 288 224 -256 4 polygon -(BufIn1) {/Helvetica cf} 2 20 0 1.00 -240 -144 label -(BufOut1) {/Helvetica cf} 2 20 0 1.00 -240 -208 label -(BufIn2) {/Helvetica cf} 2 23 0 1.00 208 -144 label -(+) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 208 -80 label -(Out2) {/Helvetica cf} 2 23 0 1.00 208 -16 label -1.000 0.000 0.000 scb -(7) {/Helvetica cf} 2 23 0 1.00 -256 -144 pinlabel -(8) {/Helvetica cf} 2 23 0 1.00 -256 -208 pinlabel -(10) {/Helvetica cf} 2 20 0 1.00 224 -144 pinlabel -(11) {/Helvetica cf} 2 20 0 1.00 224 -80 pinlabel -(12) {/Helvetica cf} 2 20 0 1.00 224 -16 pinlabel -sce -(LM13700) {/Helvetica-Bold cf} 2 21 0 1.00 -16 16 label -(Iabc1) {/Helvetica cf} 2 20 0 1.00 -240 240 label -(Dbias1) {/Helvetica cf} 2 20 0 1.00 -240 176 label -(1) {/Helvetica cf} (+) {/Symbol cf} (In) {/Helvetica cf} 6 20 0 1.00 -240 112 -label -(Out1) {/Helvetica cf} 2 20 0 1.00 -240 -16 label -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 23 0 1.00 -256 240 pinlabel -(2) {/Helvetica cf} 2 23 0 1.00 -256 176 pinlabel -(3) {/Helvetica cf} 2 23 0 1.00 -256 112 pinlabel -(4) {/Helvetica cf} 2 23 0 1.00 -256 48 pinlabel -(5) {/Helvetica cf} 2 23 0 1.00 -256 -16 pinlabel -(14) {/Helvetica cf} 2 20 0 1.00 224 112 pinlabel -(15) {/Helvetica cf} 2 20 0 1.00 224 176 pinlabel -(16) {/Helvetica cf} 2 20 0 1.00 224 240 pinlabel -sce -(-) {/Symbol cf} (V) {/Helvetica cf} 4 20 0 1.00 -240 -80 label -1.000 0.000 0.000 scb -(6) {/Helvetica cf} 2 23 0 1.00 -256 -80 pinlabel -(13) {/Helvetica cf} 2 20 0 1.00 224 48 pinlabel -sce -(BufOut2) {/Helvetica cf} 2 23 0 1.00 208 -208 label -1.000 0.000 0.000 scb -(9) {/Helvetica cf} 2 20 0 1.00 224 -208 pinlabel -sce -(1) {/Helvetica cf} (-) {/Symbol cf} (In) {/Helvetica cf} 6 20 0 1.00 -240 48 -label -(Iabc2) {/Helvetica cf} 2 23 0 1.00 208 240 label -(Dbias2) {/Helvetica cf} 2 23 0 1.00 208 176 label -(2) {/Helvetica cf} (+) {/Symbol cf} (In) {/Helvetica cf} 6 23 0 1.00 208 112 -label -(2) {/Helvetica cf} (-) {/Symbol cf} (In) {/Helvetica cf} 6 23 0 1.00 208 48 -label -sce -mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 -16 -304 infolabel -endgate -} def - -/Resistor { -% -14 -64 157 128 bbox -(1.0) (k) (?) 3 beginparm -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 -(1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel -(2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel -sce -mark v2 v1 ( %p1 %p2 ) v3 (spice:R) {/Times-Roman cf} ctmk 4 0 1.00 -208 -160 -infolabel -sce -(sim:R %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel -mark (W) {/Symbol cf} v2 {hS} v1 {/Times-Roman cf} ctmk 20 0 1.00 32 0 label -sce -mark v3 (pcb:R) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 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 - -/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 - -/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 -% 1688 848 offsets -1.0000 inchscale -2.6000 setlinewidth - -1.00 0 664 1648 [(5) ] PIC16C54 -1.00 180 -24 2384 [(6) ] LTC490 -1.00 0 712 -160 [(2) ] terminal_block -1.00 0 1800 944 [(7) ] LTC1152 -1.00 0 -568 1296 [(3) ] DSUB9 -1.00 180 1576 2192 [(1) ] Crystal -1.00 0 904 1088 [(2) ] ADC12138 -1.00 -181 -56 1664 [(4) ] TK11950 -1 1.00 1432 2288 1304 2288 1304 2208 1144 2208 4 polygon -1.00 -1 2072 1168 Capacitor -1.00 0 920 304 [(1) ] LM13700 -1.00 0 1096 -160 [(1) ] terminal_block -1.00 0 1320 1424 Resistor -1.00 0 120 1984 Resistor -1.00 0 328 1456 Resistor -1.00 -1 -696 2064 Resistor -1.00 0 408 1600 Resistor -1.00 0 1384 992 Resistor -1.00 0 1784 2224 Capacitor -1.00 -1 1512 720 Capacitor -1.00 0 2088 832 Capacitor -1.00 0 -280 1456 Capacitor -1.00 0 504 416 Capacitor -1 1.00 664 544 504 544 504 480 3 polygon -1 1.00 504 352 504 224 664 224 3 polygon -1 1.00 -664 1328 -664 224 504 224 3 polygon -1.00 0 -664 224 gnd -1 1.00 664 160 -472 160 -472 1328 3 polygon -1 1.00 -696 2000 -696 1392 2 polygon -1 1.00 -440 2240 -504 2240 -504 1392 3 polygon -1 1.00 -440 2336 -568 2336 -568 1392 3 polygon -1 1.00 280 1664 408 1664 408 2336 -24 2336 4 polygon -1 1.00 -24 2048 344 2048 2 polygon -1 1.00 344 2048 344 1728 280 1728 3 polygon -1 1.00 328 1520 328 1600 280 1600 3 polygon -1 1.00 408 1664 408 1664 2 polygon -1 1.00 328 1520 408 1520 408 1536 3 polygon -1.00 -181 1704 1760 [(3) ] TK11950 -1 1.00 1144 736 1352 736 2 polygon -1.00 0 1352 736 dot -1 1.00 1608 896 1384 896 1384 928 3 polygon -1 1.00 1608 1088 1384 1088 1384 1056 3 polygon -1 1.00 1992 992 2136 992 2136 1232 1384 1232 1384 1088 5 polygon -1.00 0 1384 1088 dot -1 1.00 -440 2144 -696 2144 -696 2128 3 polygon -1 1.00 -440 2048 -536 2048 -536 2000 -696 2000 4 polygon -1 1.00 -632 1392 -632 2144 2 polygon -1.00 0 -632 2144 dot -1.00 0 -696 2000 dot -1 1.00 -440 1392 -440 1888 408 1888 3 polygon -1.00 0 408 1888 dot -1.00 0 408 1664 dot -1.00 0 328 1520 dot -1 1.00 1144 2016 1368 2016 1368 2112 1432 2112 4 polygon -1 1.00 664 2016 568 2016 568 2432 1784 2432 1784 2288 1720 2288 6 polygon -1 1.00 1352 2016 1784 2016 1784 2160 3 polygon -1.00 0 1368 2016 dot -1 1.00 1144 1376 1240 1376 1240 2144 1144 2144 4 polygon -1 1.00 1144 1312 1224 1312 1224 1632 616 1632 616 1888 664 1888 6 polygon -1 1.00 1144 1248 1208 1248 1208 1616 600 1616 600 1824 664 1824 6 polygon -1 1.00 1144 1184 1192 1184 1192 1600 584 1600 584 1760 664 1760 6 polygon -1 1.00 1144 1120 1176 1120 1176 1584 568 1584 568 1696 664 1696 6 polygon -1 1.00 1144 1056 1256 1056 1256 1760 1144 1760 4 polygon -1 1.00 1144 992 1272 992 1272 1696 1144 1696 4 polygon -1 1.00 1144 2272 1208 2272 1208 2416 24 2416 24 2240 -24 2240 6 polygon -1 1.00 -24 2144 40 2144 40 2400 1176 2400 1176 2336 1144 2336 6 polygon -1 1.00 664 736 632 736 632 800 664 800 4 polygon -1 1.00 664 864 632 864 632 928 664 928 4 polygon -1 1.00 664 672 600 672 2 polygon -1.00 0 456 608 gnd -1.00 0 -280 1360 gnd -1 1.00 -280 1392 -440 1392 2 polygon -1.00 0 1368 2112 vdd -1 1.00 1992 800 2040 800 2040 768 2088 768 4 polygon -1.00 0 1512 640 dot -1 1.00 1608 800 1512 800 1512 784 3 polygon -1.00 0 2088 896 dot -1 1.00 1992 1088 2072 1088 2072 1104 3 polygon -1.00 0 2072 1232 dot -1 1.00 664 96 408 96 408 480 664 480 4 polygon -1 1.00 408 96 408 0 1208 0 1208 480 1128 480 5 polygon -1.00 0 408 96 dot -1 1.00 408 480 408 1040 536 1040 536 1440 664 1440 5 polygon -1.00 0 408 480 dot -(Flare Genesis) {/Helvetica cf} 2 16 0 1.50 1896 432 label -(LED Interface) {/Helvetica cf} 2 16 0 1.50 1896 336 label -1 1.00 664 416 632 416 632 16 712 16 712 -176 5 polygon -1 1.00 664 352 616 352 616 -176 3 polygon -1 1.00 1000 -176 1000 -16 1240 -16 1240 352 1144 352 5 polygon -1 1.00 1096 -176 1096 -32 1256 -32 1256 416 1144 416 5 polygon -1 1.00 1192 -176 1192 -288 344 -288 344 1072 504 1072 504 1248 664 1248 -7 polygon -1 1.00 1144 288 1304 288 1304 -320 296 -320 296 1104 472 1104 472 1504 664 -1504 8 polygon -1 1.00 1144 672 1288 672 1288 800 1144 800 4 polygon -1 1.00 1384 1072 1288 1072 1288 800 1192 800 4 polygon -1.00 0 1288 800 dot -1.00 0 1384 1072 dot -1 1.00 1144 864 1240 864 1240 928 1144 928 4 polygon -1 1.00 1560 848 1560 992 1608 992 3 polygon -1 1.00 1560 848 1352 848 1352 640 2136 640 2136 896 1992 896 6 polygon -1 1.00 1512 656 1512 640 2 polygon -1 1.00 1576 800 1576 720 2 polygon -1.00 0 1576 800 dot -1.00 0 1576 720 gnd -1 1.00 -392 1664 -440 1664 2 polygon -1.00 0 -440 1664 dot -1 1.00 -392 1728 -424 1728 -424 1856 472 1856 472 2144 664 2144 6 polygon -1 1.00 120 1920 120 1856 2 polygon -1.00 0 120 2048 dot -1.00 0 120 1856 dot -1 1.00 -392 1600 -408 1600 -408 1520 -280 1520 4 polygon -1 1.00 -280 1360 -280 1392 2 polygon -1.00 0 -280 1392 dot -1 1.00 328 1392 328 1248 -472 1248 3 polygon -1.00 0 -472 1248 dot -1 1.00 1144 224 1320 224 2 polygon -1 1.00 1176 224 1176 32 504 32 504 160 4 polygon -1.00 0 504 160 dot -1.00 0 1176 224 dot -1 1.00 1320 1360 1320 224 2 polygon -1 1.00 2136 1232 2136 1696 2040 1696 3 polygon -1.00 0 2136 1232 dot -1 1.00 2040 1760 2136 1760 2136 1936 1320 1936 1320 1760 1368 1760 6 polygon -1 1.00 1320 1488 1320 1584 2088 1584 2088 1824 2040 1824 5 polygon -1 1.00 664 992 600 992 600 1184 664 1184 4 polygon -1 1.00 664 1120 600 1120 2 polygon -1 1.00 664 1056 600 1056 2 polygon -1.00 0 600 1056 dot -1.00 0 600 1120 dot -1 1.00 600 992 600 608 2 polygon -1.00 0 600 672 dot -1.00 0 600 992 dot -1 1.00 1240 864 1240 608 456 608 3 polygon -1.00 0 600 608 dot -1.00 0 1240 864 dot -(is not complete!) {CR} (this schematic) {/Helvetica cf} 4 16 0 1.00 1864 -80 -label -0 1.00 1592 -176 1592 496 2456 496 2456 -176 4 polygon -1 1.00 1592 400 2456 400 2 polygon -1 1.00 1592 304 2456 304 2 polygon -(1.0) {/Helvetica cf} 2 16 0 1.50 1896 240 label -1 1.00 1592 208 2456 208 2 polygon -(Project:) {/Helvetica cf} 2 16 0 1.50 1624 432 label -(Name:) {/Helvetica cf} 2 16 0 1.50 1624 336 label -(Revision:) {/Helvetica cf} 2 16 0 1.50 1624 240 label -(Design:) {/Helvetica cf} 2 16 0 1.50 1624 144 label -(Date:) {/Helvetica cf} 2 16 0 1.50 1624 48 label -(Notes:) {/Helvetica cf} 2 16 0 1.50 1624 -48 label -1 1.00 1592 112 2456 112 2 polygon -1 1.00 1592 16 2456 16 2 polygon -(Harry Eaton) {/Helvetica cf} 2 16 0 1.50 1912 144 label -0 1.00 1576 -192 1576 512 2472 512 2472 -192 4 polygon -1.00 0 -664 224 dot -pgsave restore showpage - -%%Trailer -XCIRCsave restore -%%EOF diff --git a/tutorial/pcb/LED b/tutorial/pcb/LED deleted file mode 100755 index dcfdb16..0000000 --- a/tutorial/pcb/LED +++ /dev/null @@ -1,1794 +0,0 @@ -# release: pcb 1.7.0.ALPHA -# date: Sat Jan 16 20:06:58 1999 -# user: root (root) -# host: localhost - -PCB("" 3500 3300) - -Grid(5 0 0 0) -Cursor(65 880 4) -Flags(0x000001d0) -Groups("4,5,6,c:1,2,3,s:8:7:") -Styles("Signal,10,40,20:Power,25,60,35:Fat,40,60,35:Skinny,8,36,20") - -Symbol(' ' 18) -( -) -Symbol('!' 12) -( - SymbolLine(0 35 0 40 8) - SymbolLine(0 0 0 25 8) -) -Symbol('"' 12) -( - SymbolLine(0 0 0 10 8) - SymbolLine(10 0 10 10 8) -) -Symbol('#' 12) -( - SymbolLine(0 25 20 25 8) - SymbolLine(0 15 20 15 8) - SymbolLine(15 10 15 30 8) - SymbolLine(5 10 5 30 8) -) -Symbol('$' 12) -( - SymbolLine(15 5 20 10 8) - SymbolLine(5 5 15 5 8) - SymbolLine(0 10 5 5 8) - SymbolLine(0 10 0 15 8) - SymbolLine(0 15 5 20 8) - SymbolLine(5 20 15 20 8) - SymbolLine(15 20 20 25 8) - SymbolLine(20 25 20 30 8) - SymbolLine(15 35 20 30 8) - SymbolLine(5 35 15 35 8) - SymbolLine(0 30 5 35 8) - SymbolLine(10 0 10 40 8) -) -Symbol('%' 12) -( - SymbolLine(0 5 0 10 8) - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 10 0 8) - SymbolLine(10 0 15 5 8) - SymbolLine(15 5 15 10 8) - SymbolLine(10 15 15 10 8) - SymbolLine(5 15 10 15 8) - SymbolLine(0 10 5 15 8) - SymbolLine(0 40 40 0 8) - SymbolLine(35 40 40 35 8) - SymbolLine(40 30 40 35 8) - SymbolLine(35 25 40 30 8) - SymbolLine(30 25 35 25 8) - SymbolLine(25 30 30 25 8) - SymbolLine(25 30 25 35 8) - SymbolLine(25 35 30 40 8) - SymbolLine(30 40 35 40 8) -) -Symbol('&' 12) -( - SymbolLine(0 35 5 40 8) - SymbolLine(0 5 0 15 8) - SymbolLine(0 5 5 0 8) - SymbolLine(0 25 15 10 8) - SymbolLine(5 40 10 40 8) - SymbolLine(10 40 20 30 8) - SymbolLine(0 15 25 40 8) - SymbolLine(5 0 10 0 8) - SymbolLine(10 0 15 5 8) - SymbolLine(15 5 15 10 8) - SymbolLine(0 25 0 35 8) -) -Symbol(''' 12) -( - SymbolLine(0 10 10 0 8) -) -Symbol('(' 12) -( - SymbolLine(0 35 5 40 8) - SymbolLine(0 5 5 0 8) - SymbolLine(0 5 0 35 8) -) -Symbol(')' 12) -( - SymbolLine(0 0 5 5 8) - SymbolLine(5 5 5 35 8) - SymbolLine(0 40 5 35 8) -) -Symbol('*' 12) -( - SymbolLine(0 10 20 30 8) - SymbolLine(0 30 20 10 8) - SymbolLine(0 20 20 20 8) - SymbolLine(10 10 10 30 8) -) -Symbol('+' 12) -( - SymbolLine(0 20 20 20 8) - SymbolLine(10 10 10 30 8) -) -Symbol(',' 12) -( - SymbolLine(0 50 10 40 8) -) -Symbol('-' 12) -( - SymbolLine(0 20 20 20 8) -) -Symbol('.' 12) -( - SymbolLine(0 40 5 40 8) -) -Symbol('/' 12) -( - SymbolLine(0 35 30 5 8) -) -Symbol('0' 12) -( - SymbolLine(0 35 5 40 8) - SymbolLine(0 5 0 35 8) - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 15 0 8) - SymbolLine(15 0 20 5 8) - SymbolLine(20 5 20 35 8) - SymbolLine(15 40 20 35 8) - SymbolLine(5 40 15 40 8) - SymbolLine(0 30 20 10 8) -) -Symbol('1' 12) -( - SymbolLine(5 40 15 40 8) - SymbolLine(10 0 10 40 8) - SymbolLine(0 10 10 0 8) -) -Symbol('2' 12) -( - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 20 0 8) - SymbolLine(20 0 25 5 8) - SymbolLine(25 5 25 15 8) - SymbolLine(0 40 25 15 8) - SymbolLine(0 40 25 40 8) -) -Symbol('3' 12) -( - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 15 0 8) - SymbolLine(15 0 20 5 8) - SymbolLine(20 5 20 35 8) - SymbolLine(15 40 20 35 8) - SymbolLine(5 40 15 40 8) - SymbolLine(0 35 5 40 8) - SymbolLine(5 20 20 20 8) -) -Symbol('4' 12) -( - SymbolLine(0 20 20 0 8) - SymbolLine(0 20 25 20 8) - SymbolLine(20 0 20 40 8) -) -Symbol('5' 12) -( - SymbolLine(0 0 20 0 8) - SymbolLine(0 0 0 20 8) - SymbolLine(0 20 5 15 8) - SymbolLine(5 15 15 15 8) - SymbolLine(15 15 20 20 8) - SymbolLine(20 20 20 35 8) - SymbolLine(15 40 20 35 8) - SymbolLine(5 40 15 40 8) - SymbolLine(0 35 5 40 8) -) -Symbol('6' 12) -( - SymbolLine(15 0 20 5 8) - SymbolLine(5 0 15 0 8) - SymbolLine(0 5 5 0 8) - SymbolLine(0 5 0 35 8) - SymbolLine(0 35 5 40 8) - SymbolLine(15 20 20 25 8) - SymbolLine(0 20 15 20 8) - SymbolLine(5 40 15 40 8) - SymbolLine(15 40 20 35 8) - SymbolLine(20 25 20 35 8) -) -Symbol('7' 12) -( - SymbolLine(0 40 25 15 8) - SymbolLine(25 0 25 15 8) - SymbolLine(0 0 25 0 8) -) -Symbol('8' 12) -( - SymbolLine(0 35 5 40 8) - SymbolLine(0 25 0 35 8) - SymbolLine(0 25 5 20 8) - SymbolLine(5 20 15 20 8) - SymbolLine(15 20 20 25 8) - SymbolLine(20 25 20 35 8) - SymbolLine(15 40 20 35 8) - SymbolLine(5 40 15 40 8) - SymbolLine(0 15 5 20 8) - SymbolLine(0 5 0 15 8) - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 15 0 8) - SymbolLine(15 0 20 5 8) - SymbolLine(20 5 20 15 8) - SymbolLine(15 20 20 15 8) -) -Symbol('9' 12) -( - SymbolLine(0 40 20 20 8) - SymbolLine(20 5 20 20 8) - SymbolLine(15 0 20 5 8) - SymbolLine(5 0 15 0 8) - SymbolLine(0 5 5 0 8) - SymbolLine(0 5 0 15 8) - SymbolLine(0 15 5 20 8) - SymbolLine(5 20 20 20 8) -) -Symbol(':' 12) -( - SymbolLine(0 15 5 15 8) - SymbolLine(0 25 5 25 8) -) -Symbol(';' 12) -( - SymbolLine(0 40 10 30 8) - SymbolLine(10 15 10 20 8) -) -Symbol('<' 12) -( - SymbolLine(0 20 10 10 8) - SymbolLine(0 20 10 30 8) -) -Symbol('=' 12) -( - SymbolLine(0 15 20 15 8) - SymbolLine(0 25 20 25 8) -) -Symbol('>' 12) -( - SymbolLine(0 10 10 20 8) - SymbolLine(0 30 10 20 8) -) -Symbol('?' 12) -( - SymbolLine(10 20 10 25 8) - SymbolLine(10 35 10 40 8) - SymbolLine(0 5 0 10 8) - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 15 0 8) - SymbolLine(15 0 20 5 8) - SymbolLine(20 5 20 10 8) - SymbolLine(10 20 20 10 8) -) -Symbol('A' 12) -( - SymbolLine(0 5 0 40 8) - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 20 0 8) - SymbolLine(20 0 25 5 8) - SymbolLine(25 5 25 40 8) - SymbolLine(0 20 25 20 8) -) -Symbol('B' 12) -( - SymbolLine(0 40 20 40 8) - SymbolLine(20 40 25 35 8) - SymbolLine(25 25 25 35 8) - SymbolLine(20 20 25 25 8) - SymbolLine(5 20 20 20 8) - SymbolLine(5 0 5 40 8) - SymbolLine(0 0 20 0 8) - SymbolLine(20 0 25 5 8) - SymbolLine(25 5 25 15 8) - SymbolLine(20 20 25 15 8) -) -Symbol('C' 12) -( - SymbolLine(5 40 20 40 8) - SymbolLine(0 35 5 40 8) - SymbolLine(0 5 0 35 8) - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 20 0 8) -) -Symbol('D' 12) -( - SymbolLine(5 0 5 40 8) - SymbolLine(20 0 25 5 8) - SymbolLine(25 5 25 35 8) - SymbolLine(20 40 25 35 8) - SymbolLine(0 40 20 40 8) - SymbolLine(0 0 20 0 8) -) -Symbol('E' 12) -( - SymbolLine(0 20 15 20 8) - SymbolLine(0 40 20 40 8) - SymbolLine(0 0 0 40 8) - SymbolLine(0 0 20 0 8) -) -Symbol('F' 12) -( - SymbolLine(0 0 0 40 8) - SymbolLine(0 0 20 0 8) - SymbolLine(0 20 15 20 8) -) -Symbol('G' 12) -( - SymbolLine(20 0 25 5 8) - SymbolLine(5 0 20 0 8) - SymbolLine(0 5 5 0 8) - SymbolLine(0 5 0 35 8) - SymbolLine(0 35 5 40 8) - SymbolLine(5 40 20 40 8) - SymbolLine(20 40 25 35 8) - SymbolLine(25 25 25 35 8) - SymbolLine(20 20 25 25 8) - SymbolLine(10 20 20 20 8) -) -Symbol('H' 12) -( - SymbolLine(0 0 0 40 8) - SymbolLine(25 0 25 40 8) - SymbolLine(0 20 25 20 8) -) -Symbol('I' 12) -( - SymbolLine(0 0 10 0 8) - SymbolLine(5 0 5 40 8) - SymbolLine(0 40 10 40 8) -) -Symbol('J' 12) -( - SymbolLine(0 0 15 0 8) - SymbolLine(15 0 15 35 8) - SymbolLine(10 40 15 35 8) - SymbolLine(5 40 10 40 8) - SymbolLine(0 35 5 40 8) -) -Symbol('K' 12) -( - SymbolLine(0 0 0 40 8) - SymbolLine(0 20 20 0 8) - SymbolLine(0 20 20 40 8) -) -Symbol('L' 12) -( - SymbolLine(0 0 0 40 8) - SymbolLine(0 40 20 40 8) -) -Symbol('M' 12) -( - SymbolLine(0 0 0 40 8) - SymbolLine(0 0 15 15 8) - SymbolLine(15 15 30 0 8) - SymbolLine(30 0 30 40 8) -) -Symbol('N' 12) -( - SymbolLine(0 0 0 40 8) - SymbolLine(0 0 0 5 8) - SymbolLine(0 5 25 30 8) - SymbolLine(25 0 25 40 8) -) -Symbol('O' 12) -( - SymbolLine(0 5 0 35 8) - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 15 0 8) - SymbolLine(15 0 20 5 8) - SymbolLine(20 5 20 35 8) - SymbolLine(15 40 20 35 8) - SymbolLine(5 40 15 40 8) - SymbolLine(0 35 5 40 8) -) -Symbol('P' 12) -( - SymbolLine(5 0 5 40 8) - SymbolLine(0 0 20 0 8) - SymbolLine(20 0 25 5 8) - SymbolLine(25 5 25 15 8) - SymbolLine(20 20 25 15 8) - SymbolLine(5 20 20 20 8) -) -Symbol('Q' 12) -( - SymbolLine(0 5 0 35 8) - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 15 0 8) - SymbolLine(15 0 20 5 8) - SymbolLine(20 5 20 35 8) - SymbolLine(15 40 20 35 8) - SymbolLine(5 40 15 40 8) - SymbolLine(0 35 5 40 8) - SymbolLine(10 30 20 40 8) -) -Symbol('R' 12) -( - SymbolLine(0 0 20 0 8) - SymbolLine(20 0 25 5 8) - SymbolLine(25 5 25 15 8) - SymbolLine(20 20 25 15 8) - SymbolLine(5 20 20 20 8) - SymbolLine(5 0 5 40 8) - SymbolLine(5 20 25 40 8) -) -Symbol('S' 12) -( - SymbolLine(20 0 25 5 8) - SymbolLine(5 0 20 0 8) - SymbolLine(0 5 5 0 8) - SymbolLine(0 5 0 15 8) - SymbolLine(0 15 5 20 8) - SymbolLine(5 20 20 20 8) - SymbolLine(20 20 25 25 8) - SymbolLine(25 25 25 35 8) - SymbolLine(20 40 25 35 8) - SymbolLine(5 40 20 40 8) - SymbolLine(0 35 5 40 8) -) -Symbol('T' 12) -( - SymbolLine(0 0 20 0 8) - SymbolLine(10 0 10 40 8) -) -Symbol('U' 12) -( - SymbolLine(0 0 0 35 8) - SymbolLine(0 35 5 40 8) - SymbolLine(5 40 15 40 8) - SymbolLine(15 40 20 35 8) - SymbolLine(20 0 20 35 8) -) -Symbol('V' 12) -( - SymbolLine(0 0 0 30 8) - SymbolLine(0 30 10 40 8) - SymbolLine(10 40 20 30 8) - SymbolLine(20 0 20 30 8) -) -Symbol('W' 12) -( - SymbolLine(0 0 0 40 8) - SymbolLine(0 40 15 25 8) - SymbolLine(15 25 30 40 8) - SymbolLine(30 0 30 40 8) -) -Symbol('X' 12) -( - SymbolLine(0 0 0 5 8) - SymbolLine(0 5 25 30 8) - SymbolLine(25 30 25 40 8) - SymbolLine(0 30 0 40 8) - SymbolLine(0 30 25 5 8) - SymbolLine(25 0 25 5 8) -) -Symbol('Y' 12) -( - SymbolLine(0 0 0 5 8) - SymbolLine(0 5 10 15 8) - SymbolLine(10 15 20 5 8) - SymbolLine(20 0 20 5 8) - SymbolLine(10 15 10 40 8) -) -Symbol('Z' 12) -( - SymbolLine(0 0 25 0 8) - SymbolLine(25 0 25 5 8) - SymbolLine(0 30 25 5 8) - SymbolLine(0 30 0 40 8) - SymbolLine(0 40 25 40 8) -) -Symbol('[' 12) -( - SymbolLine(0 0 5 0 8) - SymbolLine(0 0 0 40 8) - SymbolLine(0 40 5 40 8) -) -Symbol('\' 12) -( - SymbolLine(0 5 30 35 8) -) -Symbol(']' 12) -( - SymbolLine(0 0 5 0 8) - SymbolLine(5 0 5 40 8) - SymbolLine(0 40 5 40 8) -) -Symbol('^' 12) -( - SymbolLine(0 5 5 0 8) - SymbolLine(5 0 10 5 8) -) -Symbol('_' 12) -( - SymbolLine(0 40 20 40 8) -) -Symbol('a' 12) -( - SymbolLine(15 20 20 25 8) - SymbolLine(5 20 15 20 8) - SymbolLine(0 25 5 20 8) - SymbolLine(0 25 0 35 8) - SymbolLine(0 35 5 40 8) - SymbolLine(20 20 20 35 8) - SymbolLine(20 35 25 40 8) - SymbolLine(5 40 15 40 8) - SymbolLine(15 40 20 35 8) -) -Symbol('b' 12) -( - SymbolLine(0 0 0 40 8) - SymbolLine(0 35 5 40 8) - SymbolLine(5 40 15 40 8) - SymbolLine(15 40 20 35 8) - SymbolLine(20 25 20 35 8) - SymbolLine(15 20 20 25 8) - SymbolLine(5 20 15 20 8) - SymbolLine(0 25 5 20 8) -) -Symbol('c' 12) -( - SymbolLine(5 20 20 20 8) - SymbolLine(0 25 5 20 8) - SymbolLine(0 25 0 35 8) - SymbolLine(0 35 5 40 8) - SymbolLine(5 40 20 40 8) -) -Symbol('d' 12) -( - SymbolLine(20 0 20 40 8) - SymbolLine(15 40 20 35 8) - SymbolLine(5 40 15 40 8) - SymbolLine(0 35 5 40 8) - SymbolLine(0 25 0 35 8) - SymbolLine(0 25 5 20 8) - SymbolLine(5 20 15 20 8) - SymbolLine(15 20 20 25 8) -) -Symbol('e' 12) -( - SymbolLine(5 40 20 40 8) - SymbolLine(0 35 5 40 8) - SymbolLine(0 25 0 35 8) - SymbolLine(0 25 5 20 8) - SymbolLine(5 20 15 20 8) - SymbolLine(15 20 20 25 8) - SymbolLine(0 30 20 30 8) - SymbolLine(20 30 20 25 8) -) -Symbol('f' 10) -( - SymbolLine(5 5 5 40 8) - SymbolLine(5 5 10 0 8) - SymbolLine(10 0 15 0 8) - SymbolLine(0 20 10 20 8) -) -Symbol('g' 12) -( - SymbolLine(15 20 20 25 8) - SymbolLine(5 20 15 20 8) - SymbolLine(0 25 5 20 8) - SymbolLine(0 25 0 35 8) - SymbolLine(0 35 5 40 8) - SymbolLine(5 40 15 40 8) - SymbolLine(15 40 20 35 8) - SymbolLine(0 50 5 55 8) - SymbolLine(5 55 15 55 8) - SymbolLine(15 55 20 50 8) - SymbolLine(20 20 20 50 8) -) -Symbol('h' 12) -( - SymbolLine(0 0 0 40 8) - SymbolLine(0 25 5 20 8) - SymbolLine(5 20 15 20 8) - SymbolLine(15 20 20 25 8) - SymbolLine(20 25 20 40 8) -) -Symbol('i' 10) -( - SymbolLine(0 10 0 15 8) - SymbolLine(0 25 0 40 8) -) -Symbol('j' 10) -( - SymbolLine(5 10 5 15 8) - SymbolLine(5 25 5 50 8) - SymbolLine(0 55 5 50 8) -) -Symbol('k' 12) -( - SymbolLine(0 0 0 40 8) - SymbolLine(0 25 15 40 8) - SymbolLine(0 25 10 15 8) -) -Symbol('l' 10) -( - SymbolLine(0 0 0 35 8) - SymbolLine(0 35 5 40 8) -) -Symbol('m' 12) -( - SymbolLine(5 25 5 40 8) - SymbolLine(5 25 10 20 8) - SymbolLine(10 20 15 20 8) - SymbolLine(15 20 20 25 8) - SymbolLine(20 25 20 40 8) - SymbolLine(20 25 25 20 8) - SymbolLine(25 20 30 20 8) - SymbolLine(30 20 35 25 8) - SymbolLine(35 25 35 40 8) - SymbolLine(0 20 5 25 8) -) -Symbol('n' 12) -( - SymbolLine(5 25 5 40 8) - SymbolLine(5 25 10 20 8) - SymbolLine(10 20 15 20 8) - SymbolLine(15 20 20 25 8) - SymbolLine(20 25 20 40 8) - SymbolLine(0 20 5 25 8) -) -Symbol('o' 12) -( - SymbolLine(0 25 0 35 8) - SymbolLine(0 25 5 20 8) - SymbolLine(5 20 15 20 8) - SymbolLine(15 20 20 25 8) - SymbolLine(20 25 20 35 8) - SymbolLine(15 40 20 35 8) - SymbolLine(5 40 15 40 8) - SymbolLine(0 35 5 40 8) -) -Symbol('p' 12) -( - SymbolLine(5 25 5 55 8) - SymbolLine(0 20 5 25 8) - SymbolLine(5 25 10 20 8) - SymbolLine(10 20 20 20 8) - SymbolLine(20 20 25 25 8) - SymbolLine(25 25 25 35 8) - SymbolLine(20 40 25 35 8) - SymbolLine(10 40 20 40 8) - SymbolLine(5 35 10 40 8) -) -Symbol('q' 12) -( - SymbolLine(20 25 20 55 8) - SymbolLine(15 20 20 25 8) - SymbolLine(5 20 15 20 8) - SymbolLine(0 25 5 20 8) - SymbolLine(0 25 0 35 8) - SymbolLine(0 35 5 40 8) - SymbolLine(5 40 15 40 8) - SymbolLine(15 40 20 35 8) -) -Symbol('r' 12) -( - SymbolLine(5 25 5 40 8) - SymbolLine(5 25 10 20 8) - SymbolLine(10 20 20 20 8) - SymbolLine(0 20 5 25 8) -) -Symbol('s' 12) -( - SymbolLine(5 40 20 40 8) - SymbolLine(20 40 25 35 8) - SymbolLine(20 30 25 35 8) - SymbolLine(5 30 20 30 8) - SymbolLine(0 25 5 30 8) - SymbolLine(0 25 5 20 8) - SymbolLine(5 20 20 20 8) - SymbolLine(20 20 25 25 8) - SymbolLine(0 35 5 40 8) -) -Symbol('t' 10) -( - SymbolLine(5 0 5 35 8) - SymbolLine(5 35 10 40 8) - SymbolLine(0 15 10 15 8) -) -Symbol('u' 12) -( - SymbolLine(0 20 0 35 8) - SymbolLine(0 35 5 40 8) - SymbolLine(5 40 15 40 8) - SymbolLine(15 40 20 35 8) - SymbolLine(20 20 20 35 8) -) -Symbol('v' 12) -( - SymbolLine(0 20 0 30 8) - SymbolLine(0 30 10 40 8) - SymbolLine(10 40 20 30 8) - SymbolLine(20 20 20 30 8) -) -Symbol('w' 12) -( - SymbolLine(0 20 0 35 8) - SymbolLine(0 35 5 40 8) - SymbolLine(5 40 10 40 8) - SymbolLine(10 40 15 35 8) - SymbolLine(15 20 15 35 8) - SymbolLine(15 35 20 40 8) - SymbolLine(20 40 25 40 8) - SymbolLine(25 40 30 35 8) - SymbolLine(30 20 30 35 8) -) -Symbol('x' 12) -( - SymbolLine(0 20 20 40 8) - SymbolLine(0 40 20 20 8) -) -Symbol('y' 12) -( - SymbolLine(0 20 0 35 8) - SymbolLine(0 35 5 40 8) - SymbolLine(20 20 20 50 8) - SymbolLine(15 55 20 50 8) - SymbolLine(5 55 15 55 8) - SymbolLine(0 50 5 55 8) - SymbolLine(5 40 15 40 8) - SymbolLine(15 40 20 35 8) -) -Symbol('z' 12) -( - SymbolLine(0 20 20 20 8) - SymbolLine(0 40 20 20 8) - SymbolLine(0 40 20 40 8) -) -Symbol('{' 12) -( - SymbolLine(5 5 10 0 8) - SymbolLine(5 5 5 15 8) - SymbolLine(0 20 5 15 8) - SymbolLine(0 20 5 25 8) - SymbolLine(5 25 5 35 8) - SymbolLine(5 35 10 40 8) -) -Symbol('|' 12) -( - SymbolLine(0 0 0 40 8) -) -Symbol('}' 12) -( - SymbolLine(0 0 5 5 8) - SymbolLine(5 5 5 15 8) - SymbolLine(5 15 10 20 8) - SymbolLine(5 25 10 20 8) - SymbolLine(5 25 5 35 8) - SymbolLine(0 40 5 35 8) -) -Symbol('~' 12) -( - SymbolLine(0 25 5 20 8) - SymbolLine(5 20 10 20 8) - SymbolLine(10 20 15 25 8) - SymbolLine(15 25 20 25 8) - SymbolLine(20 25 25 20 8) -) -Via(2075 1455 50 30 28 "" 0x12120002) -Via(1790 1570 50 30 28 "" 0x12120002) -Via(1450 1575 50 30 28 "" 0x12120002) -Via(1070 1265 50 30 28 "" 0x00000002) -Via(1520 2495 50 30 28 "" 0x00000002) -Via(465 3015 110 30 110 "" 0x0000000a) -Via(1605 2660 50 30 28 "" 0x00000002) -Via(1985 1300 50 30 28 "" 0x00000002) -Via(465 605 110 30 110 "" 0x0000000a) -Via(2965 595 110 30 110 "" 0x0000000a) -Via(2965 3005 110 30 110 "" 0x0000000a) -Via(1185 2660 50 30 28 "" 0x00000002) - -Element(0x00000000 "3 TERM BLOCK" "J2" "DK ED1602-ND" 1695 2925 -590 76 0 150 0x00000000) -( - Pin(0 0 110 30 140 48 "1" "1" 0x00000001) - Pin(-194 0 110 30 140 48 "2" "2" 0x00000001) - Pin(-388 0 110 30 140 48 "3" "3" 0x00000001) - ElementLine (-388 160 -388 140 10) - ElementLine (-194 160 -194 140 10) - ElementLine (0 160 0 140 10) - ElementLine (81 -170 101 -170 10) - ElementLine (81 -190 81 -170 10) - ElementLine (101 -190 81 -190 10) - ElementLine (-509 -170 -489 -170 10) - ElementLine (-509 -190 -509 -170 10) - ElementLine (-489 -190 -509 -190 10) - ElementLine (101 -200 101 160 10) - ElementLine (-489 -200 101 -200 10) - ElementLine (-489 160 -489 -200 10) - ElementLine (101 160 -489 160 10) - ) - -Element(0x00000000 "RS422 Transciever" "U6" "LTC490" 1005 895 -505 -55 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "Vcc" "1" 0x00000101) - Pin(0 -100 60 30 90 28 "R" "2" 0x00000001) - Pin(0 -200 60 30 90 28 "D" "3" 0x00000001) - Pin(0 -300 60 30 90 28 "GND" "4" 0x00000001) - Pin(-300 -300 60 30 90 28 "Y" "5" 0x00000001) - Pin(-300 -200 60 30 90 28 "Z" "6" 0x00000001) - Pin(-300 -100 60 30 90 28 "B" "7" 0x00000001) - Pin(-300 0 60 30 90 28 "A" "8" 0x00000001) - ElementLine (50 50 50 -350 10) - ElementLine (50 -350 -350 -350 10) - ElementLine (-350 -350 -350 50 10) - ElementLine (50 50 -100 50 10) - ElementLine (-200 50 -350 50 10) - ElementArc (-150 50 50 50 180 180 10) - ) - -Element(0x00000000 "PIC16C54A" "U5" "PIC16C54" 1195 860 465 80 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "RA2" "1" 0x00000101) - Pin(100 0 60 30 90 28 "RA3" "2" 0x00000001) - Pin(200 0 60 30 90 28 "RTCC" "3" 0x00000001) - Pin(300 0 60 30 90 28 "/MCLR" "4" 0x00000001) - Pin(400 0 60 30 90 28 "Vss" "5" 0x00000001) - Pin(500 0 60 30 90 28 "RB0" "6" 0x00000001) - Pin(600 0 60 30 90 28 "RB1" "7" 0x00000001) - Pin(700 0 60 30 90 28 "RB2" "8" 0x00000001) - Pin(800 0 60 30 90 28 "RB3" "9" 0x00000001) - Pin(800 -300 60 30 90 28 "RB4" "10" 0x00000001) - Pin(700 -300 60 30 90 28 "RB5" "11" 0x00000001) - Pin(600 -300 60 30 90 28 "RB6" "12" 0x00000001) - Pin(500 -300 60 30 90 28 "RB7" "13" 0x00000001) - Pin(400 -300 60 30 90 28 "Vdd" "14" 0x00000001) - Pin(300 -300 60 30 90 28 "OSC2/CLKOUT" "15" 0x00000001) - Pin(200 -300 60 30 90 28 "OSC1/CLKIN" "16" 0x00000001) - Pin(100 -300 60 30 90 28 "RA0" "17" 0x00000001) - Pin(0 -300 60 30 90 28 "RA1" "18" 0x00000001) - ElementLine (-50 50 850 50 10) - ElementLine (850 50 850 -350 10) - ElementLine (850 -350 -50 -350 10) - ElementLine (-50 50 -50 -100 10) - ElementLine (-50 -200 -50 -350 10) - ElementArc (-50 -150 50 50 90 180 10) - ) - -Element(0x00000000 "SMD Cap" "C17" "" 2155 815 -90 -329 0 150 0x00000000) -( - Pin(0 0 80 30 110 35 "1" "1" 0x00000001) - Pin(0 -200 80 30 110 35 "2" "2" 0x00000001) - ElementLine (-50 50 50 50 10) - ElementLine (50 50 50 -250 10) - ElementLine (50 -250 -50 -250 10) - ElementLine (-50 -250 -50 50 10) - ) - -Element(0x00000000 "SMD 0805" "C13" "" 2525 1510 -30 45 0 150 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(0 -90 0 -90 60 30 90 "2" "2" 0x00000100) - ElementLine (-35 -125 -35 35 10) - ElementLine (35 -125 -35 -125 10) - ElementLine (35 35 35 -125 10) - ElementLine (-35 35 35 35 10) - ) - -Element(0x00000010 "SMD 0805" "C16" "" 1080 1355 -15 -115 0 150 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(90 0 90 0 60 30 90 "2" "2" 0x00000100) - ElementLine (125 -35 -35 -35 10) - ElementLine (125 35 125 -35 10) - ElementLine (-35 35 125 35 10) - ElementLine (-35 -35 -35 35 10) - ) - -Element(0x00000000 "SMD 0805" "C14" "" 1175 1690 -195 20 0 150 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(0 90 0 90 60 30 90 "2" "2" 0x00000100) - ElementLine (35 125 35 -35 10) - ElementLine (-35 125 35 125 10) - ElementLine (-35 -35 -35 125 10) - ElementLine (35 -35 -35 -35 10) - ) - -Element(0x00000000 "SMD Cap" "C15" "" 1280 1785 65 -174 0 150 0x00000000) -( - Pin(0 0 80 30 110 35 "1" "1" 0x02000001) - Pin(0 -200 80 30 110 35 "2" "2" 0x00000001) - ElementLine (-50 50 50 50 10) - ElementLine (50 50 50 -250 10) - ElementLine (50 -250 -50 -250 10) - ElementLine (-50 -250 -50 50 10) - ) - -Element(0x00000010 "SMD 0805" "C10" "" 2095 1310 -190 -60 0 150 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(90 0 90 0 60 30 90 "2" "2" 0x00000100) - ElementLine (125 -35 -35 -35 10) - ElementLine (125 35 125 -35 10) - ElementLine (-35 35 125 35 10) - ElementLine (-35 -35 -35 35 10) - ) - -Element(0x00000000 "SMD Cap" "C12" "" 2345 1320 -35 -129 0 150 0x00000000) -( - Pin(0 0 80 30 110 35 "1" "1" 0x00000001) - Pin(200 0 80 30 110 35 "2" "2" 0x02020001) - ElementLine (-50 -50 -50 50 10) - ElementLine (-50 50 250 50 10) - ElementLine (250 50 250 -50 10) - ElementLine (250 -50 -50 -50 10) - ) - -Element(0x00000000 "R 0.25W" "R13" "100" 1130 1435 230 65 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x00000101) - Pin(400 0 60 30 90 28 "2" "2" 0x10000001) - ElementLine (100 -50 300 -50 10) - ElementLine (300 -50 300 50 10) - ElementLine (300 50 100 50 10) - ElementLine (100 50 100 -50 10) - ElementLine (40 0 100 0 10) - ElementLine (300 0 360 0 10) - ) - -Element(0x00000000 "R 0.25W" "R14" "100" 1105 1075 -265 60 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x00000001) - Pin(-400 0 60 30 90 28 "2" "2" 0x00000001) - ElementLine (-100 50 -300 50 10) - ElementLine (-300 50 -300 -50 10) - ElementLine (-300 -50 -100 -50 10) - ElementLine (-100 -50 -100 50 10) - ElementLine (-40 0 -100 0 10) - ElementLine (-300 0 -360 0 10) - ) - -Element(0x00000000 "R 0.5W" "R11" "" 2815 1700 60 -90 0 150 0x00000000) -( - Pin(0 0 85 30 115 48 "1" "1" 0x00000101) - Pin(0 -800 85 30 115 48 "2" "2" 0x00000001) - ElementLine (0 -60 0 -115 10) - ElementLine (-115 -115 115 -115 10) - ElementLine (115 -115 115 -685 10) - ElementLine (115 -685 -115 -685 10) - ElementLine (-115 -685 -115 -115 10) - ElementLine (0 -685 0 -750 10) - ) - -Element(0x00000000 "TK11950" "U3" "5.0V" 2235 1510 -139 -2 0 150 0x00000000) -( - Pad(-7 0 8 0 24 30 54 "NOISE BYPASS" "1" 0x00000100) - Pad(-7 37 8 37 24 30 54 "CONTROL" "2" 0x00000100) - Pad(-7 75 8 75 24 30 54 "RESET OUT" "3" 0x00000100) - Pad(119 75 134 75 24 30 54 "VO" "4" 0x00000100) - Pad(119 37 134 37 24 30 54 "GND" "5" 0x00000100) - Pad(119 0 134 0 24 30 54 "VIN" "6" 0x00000100) - ElementLine (0 -22 0 -34 10) - ElementLine (0 -34 132 -34 10) - ElementLine (132 -34 132 -22 10) - ElementLine (0 96 0 108 10) - ElementLine (0 108 132 108 10) - ElementLine (132 108 132 96 10) - ElementLine (13 -24 119 -24 10) - ) - -Element(0x00000000 "TK11950" "U4" "5.0V" 1180 1590 -254 -132 0 150 0x00000000) -( - Pad(7 0 -8 0 24 30 54 "NOISE BYPASS" "1" 0x00000100) - Pad(7 -37 -8 -37 24 30 54 "CONTROL" "2" 0x00000100) - Pad(7 -75 -8 -75 24 30 54 "RESET OUT" "3" 0x00000100) - Pad(-119 -75 -134 -75 24 30 54 "VO" "4" 0x00000100) - Pad(-119 -37 -134 -37 24 30 54 "GND" "5" 0x00000100) - Pad(-119 0 -134 0 24 30 54 "VIN" "6" 0x00000100) - ElementLine (0 22 0 34 10) - ElementLine (0 34 -132 34 10) - ElementLine (-132 34 -132 22 10) - ElementLine (0 -96 0 -108 10) - ElementLine (0 -108 -132 -108 10) - ElementLine (-132 -108 -132 -96 10) - ElementLine (-13 24 -119 24 10) - ) - -Element(0x00000000 "SMD 0805" "C5" "" 1495 1315 -225 -30 0 150 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(-90 0 -90 0 60 30 90 "2" "2" 0x00000100) - ElementLine (-125 35 35 35 10) - ElementLine (-125 -35 -125 35 10) - ElementLine (35 -35 -125 -35 10) - ElementLine (35 35 35 -35 10) - ) - -Element(0x00000010 "SMD 0805" "C11" "" 2270 1420 -260 -30 0 150 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(-90 0 -90 0 60 30 90 "2" "2" 0x00000100) - ElementLine (-125 35 35 35 10) - ElementLine (-125 -35 -125 35 10) - ElementLine (35 -35 -125 -35 10) - ElementLine (35 35 35 -35 10) - ) - -Element(0x00000000 "SMD Cap" "C9" "" 2030 1185 -145 -40 0 150 0x00000000) -( - Pin(0 0 80 30 110 35 "1" "1" 0x20200001) - Pin(200 0 80 30 110 35 "2" "2" 0x02020001) - ElementLine (0 45 0 50 10) - ElementLine (0 50 200 50 10) - ElementLine (200 50 200 45 10) - ElementLine (200 -45 200 -50 10) - ElementLine (200 -50 0 -50 10) - ElementLine (0 -50 0 -45 10) - ) - -Element(0x00000000 "R 0.25W" "R7" "100" 1655 2065 150 -30 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x02000001) - Pin(400 0 60 30 90 28 "2" "2" 0x02020001) - ElementLine (100 -50 300 -50 10) - ElementLine (300 -50 300 50 10) - ElementLine (300 50 100 50 10) - ElementLine (100 50 100 -50 10) - ElementLine (40 0 100 0 10) - ElementLine (300 0 360 0 10) - ) - -Element(0x00000000 "SMD Cap" "C8" "" 2030 1075 65 -124 0 150 0x00000000) -( - Pin(0 0 80 30 110 35 "1" "1" 0x20200001) - Pin(200 0 80 30 110 35 "2" "2" 0x02020001) - ElementLine (-50 -50 -50 50 10) - ElementLine (-50 50 250 50 10) - ElementLine (250 50 250 -50 10) - ElementLine (250 -50 -50 -50 10) - ) - -Element(0x00000000 "SMD Cap" "C7" "" 1530 1075 -370 -144 0 150 0x00000000) -( - Pin(0 0 80 30 110 35 "1" "1" 0x20200001) - Pin(-200 0 80 30 110 35 "2" "2" 0x10100001) - ElementLine (50 50 50 -50 10) - ElementLine (50 -50 -250 -50 10) - ElementLine (-250 -50 -250 50 10) - ElementLine (-250 50 50 50 10) - ) - -Element(0x00000000 "SMD Cap" "C2" "" 1945 1845 65 -19 0 150 0x00000000) -( - Pin(0 0 80 30 110 35 "1" "1" 0x02000101) - Pin(-200 0 80 30 110 35 "2" "2" 0x02000001) - ElementLine (50 50 50 -50 10) - ElementLine (50 -50 -250 -50 10) - ElementLine (-250 -50 -250 50 10) - ElementLine (-250 50 50 50 10) - ) - -Element(0x00000000 "SMD Cap" "C6" "" 1530 1185 -335 -30 0 150 0x00000000) -( - Pin(0 0 80 30 110 35 "1" "1" 0x20200001) - Pin(-200 0 80 30 110 35 "2" "2" 0x10100001) - ElementLine (0 -45 0 -50 10) - ElementLine (0 -50 -200 -50 10) - ElementLine (-200 -50 -200 -45 10) - ElementLine (-200 45 -200 50 10) - ElementLine (-200 50 0 50 10) - ElementLine (0 50 0 45 10) - ) - -Element(0x00000000 "SMD Cap" "C1" "" 1490 1950 -40 71 0 150 0x00000000) -( - Pin(0 0 80 30 110 35 "1" "1" 0x00000101) - Pin(0 -200 80 30 110 35 "2" "2" 0x02000001) - ElementLine (-50 50 50 50 10) - ElementLine (50 50 50 -250 10) - ElementLine (50 -250 -50 -250 10) - ElementLine (-50 -250 -50 50 10) - ) - -Element(0x00000000 "R 0.25W" "R6" "100" 2375 1680 65 115 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x02000101) - Pin(0 400 60 30 90 28 "2" "2" 0x02000001) - ElementLine (50 100 50 300 10) - ElementLine (50 300 -50 300 10) - ElementLine (-50 300 -50 100 10) - ElementLine (-50 100 50 100 10) - ElementLine (0 40 0 100 10) - ElementLine (0 300 0 360 10) - ) - -Element(0x00000000 "R 0.25W" "R8" "100" 2270 1680 -30 245 1 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x02000101) - Pin(0 400 60 30 90 28 "2" "2" 0x02000001) - ElementLine (50 100 50 300 10) - ElementLine (50 300 -50 300 10) - ElementLine (-50 300 -50 100 10) - ElementLine (-50 100 50 100 10) - ElementLine (0 40 0 100 10) - ElementLine (0 300 0 360 10) - ) - -Element(0x00000000 "R 0.25W" "R5" "100" 1375 1750 -170 175 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x00000101) - Pin(0 400 60 30 90 28 "2" "2" 0x00000001) - ElementLine (50 100 50 300 10) - ElementLine (50 300 -50 300 10) - ElementLine (-50 300 -50 100 10) - ElementLine (-50 100 50 100 10) - ElementLine (0 40 0 100 10) - ElementLine (0 300 0 360 10) - ) - -Element(0x00000000 "R 0.25W" "R9" "100" 1655 2170 125 -25 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x02000001) - Pin(400 0 60 30 90 28 "2" "2" 0x02020001) - ElementLine (100 -50 300 -50 10) - ElementLine (300 -50 300 50 10) - ElementLine (300 50 100 50 10) - ElementLine (100 50 100 -50 10) - ElementLine (40 0 100 0 10) - ElementLine (300 0 360 0 10) - ) - -Element(0x00000000 "R 0.25W" "R10" "100" 2160 1675 -30 275 1 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x02000101) - Pin(0 400 60 30 90 28 "2" "2" 0x02020001) - ElementLine (50 100 50 300 10) - ElementLine (50 300 -50 300 10) - ElementLine (-50 300 -50 100 10) - ElementLine (-50 100 50 100 10) - ElementLine (0 40 0 100 10) - ElementLine (0 300 0 360 10) - ) - -Element(0x00000000 "ADC12138CIMSA" "U2" "ADC12138" 1630 1690 105 -449 0 150 0x00000000) -( - Pad(0 30 0 -30 12 30 42 "CH0" "1" 0x00000100) - Pad(26 30 26 -30 12 30 42 "CH1" "2" 0x00000100) - Pad(51 30 51 -30 12 30 42 "CH2" "3" 0x00000100) - Pad(77 30 77 -30 12 30 42 "CH3" "4" 0x00000100) - Pad(102 30 102 -30 12 30 42 "CH4" "5" 0x00000100) - Pad(128 30 128 -30 12 30 42 "CH5" "6" 0x00000100) - Pad(154 30 154 -30 12 30 42 "CH6" "7" 0x00000100) - Pad(179 30 179 -30 12 30 42 "CH7" "8" 0x00000100) - Pad(205 30 205 -30 12 30 42 "COM" "9" 0x00000100) - Pad(230 30 230 -30 12 30 42 "MuOut1" "10" 0x00000100) - Pad(256 30 256 -30 12 30 42 "A/Din1" "11" 0x00000100) - Pad(281 30 281 -30 12 30 42 "MuxOut2" "12" 0x00000100) - Pad(307 30 307 -30 12 30 42 "A/Din2" "13" 0x00000100) - Pad(333 30 333 -30 12 30 42 "DGND" "14" 0x00000100) - Pad(333 -350 333 -290 12 30 42 "VA+" "15" 0x00000100) - Pad(307 -350 307 -290 12 30 42 "Vref-" "16" 0x00000100) - Pad(281 -350 281 -290 12 30 42 "Vref+" "17" 0x00000100) - Pad(256 -350 256 -290 12 30 42 "AGND" "18" 0x00000100) - Pad(230 -350 230 -290 12 30 42 "PD" "19" 0x00000100) - Pad(205 -350 205 -290 12 30 42 "EOC" "20" 0x00000100) - Pad(179 -350 179 -290 12 30 42 "~CONV" "21" 0x00000100) - Pad(154 -350 154 -290 12 30 42 "~CS" "22" 0x00000100) - Pad(128 -350 128 -290 12 30 42 "DO" "23" 0x00000100) - Pad(102 -350 102 -290 12 30 42 "DI" "24" 0x00000100) - Pad(77 -350 77 -290 12 30 42 "SCLK" "25" 0x00000100) - Pad(51 -350 51 -290 12 30 42 "CCLK" "26" 0x00000100) - Pad(26 -350 26 -290 12 30 42 "~DOR" "27" 0x00000100) - Pad(0 -350 0 -290 12 30 42 "VD+" "28" 0x00000100) - ElementLine (0 -70 0 -70 30) - ElementLine (-12 -54 -37 -54 10) - ElementLine (-37 -54 -37 -266 10) - ElementLine (-37 -266 -12 -266 10) - ElementLine (343 -54 370 -54 10) - ElementLine (370 -54 370 -266 10) - ElementLine (370 -266 343 -266 10) - ) - -Element(0x00000000 "R 0.25W" "R4" "100" 1615 1955 130 -35 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x00000101) - Pin(400 0 60 30 90 28 "2" "2" 0x02000001) - ElementLine (100 -50 300 -50 10) - ElementLine (300 -50 300 50 10) - ElementLine (300 50 100 50 10) - ElementLine (100 50 100 -50 10) - ElementLine (40 0 100 0 10) - ElementLine (300 0 360 0 10) - ) - -Element(0x00000010 "SMD 0805" "C4" "" 2070 2390 -25 -180 0 115 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(0 -90 0 -90 60 30 90 "2" "2" 0x00000100) - ElementLine (-35 -125 -35 35 10) - ElementLine (35 -125 -35 -125 10) - ElementLine (35 35 35 -125 10) - ElementLine (-35 35 35 35 10) - ) - -Element(0x00000000 "R 0.25W" "R1" "100" 2180 2625 -35 -145 1 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x00000101) - Pin(0 -400 60 30 90 28 "2" "2" 0x02000001) - ElementLine (-50 -100 -50 -300 10) - ElementLine (-50 -300 50 -300 10) - ElementLine (50 -300 50 -100 10) - ElementLine (50 -100 -50 -100 10) - ElementLine (0 -40 0 -100 10) - ElementLine (0 -300 0 -360 10) - ) - -Element(0x00000000 "R 0.25W" "R2" "100" 2400 2625 60 -100 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x00000101) - Pin(0 -400 60 30 90 28 "2" "2" 0x02000001) - ElementLine (-50 -100 -50 -300 10) - ElementLine (-50 -300 50 -300 10) - ElementLine (50 -300 50 -100 10) - ElementLine (50 -100 -50 -100 10) - ElementLine (0 -40 0 -100 10) - ElementLine (0 -300 0 -360 10) - ) - -Element(0x00000000 "LM13700" "U1" "LM13700" 1955 2285 -475 -130 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "Iabc1" "1" 0x02000101) - Pin(-100 0 60 30 90 28 "Dbias1" "2" 0x00000001) - Pin(-200 0 60 30 90 28 "In+1" "3" 0x00000001) - Pin(-300 0 60 30 90 28 "In-1" "4" 0x00000001) - Pin(-400 0 60 30 90 28 "Out1" "5" 0x00000001) - Pin(-500 0 60 30 90 28 "V-" "6" 0x00000001) - Pin(-600 0 60 30 90 28 "BufIn1" "7" 0x00000001) - Pin(-700 0 60 30 90 28 "BufOut1" "8" 0x00000001) - Pin(-700 300 60 30 90 28 "BufOut2" "9" 0x00000001) - Pin(-600 300 60 30 90 28 "BufIn2" "10" 0x00000001) - Pin(-500 300 60 30 90 28 "V+" "11" 0x00000001) - Pin(-400 300 60 30 90 28 "Out2" "12" 0x00000001) - Pin(-300 300 60 30 90 28 "In-2" "13" 0x00000001) - Pin(-200 300 60 30 90 28 "In+2" "14" 0x00000001) - Pin(-100 300 60 30 90 28 "Dbias2" "15" 0x00000001) - Pin(0 300 60 30 90 28 "Iabc2" "16" 0x00000001) - ElementLine (50 -50 -750 -50 10) - ElementLine (-750 -50 -750 350 10) - ElementLine (-750 350 50 350 10) - ElementLine (50 -50 50 100 10) - ElementLine (50 200 50 350 10) - ElementArc (50 150 50 50 270 180 10) - ) - -Element(0x00000000 "R 0.25W" "R3" "100" 2290 2625 -30 -135 1 150 0x00000000) -( - Pin(0 0 60 30 90 28 "1" "1" 0x00000101) - Pin(0 -400 60 30 90 28 "2" "2" 0x02000001) - ElementLine (-50 -100 -50 -300 10) - ElementLine (-50 -300 50 -300 10) - ElementLine (50 -300 50 -100 10) - ElementLine (50 -100 -50 -100 10) - ElementLine (0 -40 0 -100 10) - ElementLine (0 -300 0 -360 10) - ) - -Element(0x00000000 "SMD 0805" "C3" "" 2075 2510 -40 140 0 150 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(0 90 0 90 60 30 90 "2" "2" 0x00000100) - ElementLine (35 125 35 -35 10) - ElementLine (-35 125 35 125 10) - ElementLine (-35 -35 -35 125 10) - ElementLine (35 -35 -35 -35 10) - ) - -Element(0x00000000 "CTX169" "X1" "20 MHz" 2330 910 425 -215 0 150 0x00000000) -( - Pin(0 -60 60 30 90 28 "NC" "1" 0x00000101) - Pin(300 -60 60 30 90 28 "GND" "2" 0x00000001) - Pin(300 -360 60 30 90 28 "OUT" "3" 0x00000001) - Pin(0 -360 60 30 90 28 "Vdd" "4" 0x00000001) - ElementLine (-110 50 -110 -410 10) - ElementLine (-60 -460 350 -460 10) - ElementLine (400 -410 400 0 10) - ElementLine (350 50 -110 50 10) - ElementArc (-60 -410 50 50 270 90 10) - ElementArc (350 -410 50 50 180 90 10) - ElementArc (350 0 50 50 90 90 10) - ) - -Element(0x00000000 "SMD Cap" "C21" "" 2565 1070 -50 61 0 150 0x00000000) -( - Pin(0 0 80 30 110 35 "1" "1" 0x00000001) - Pin(-200 0 80 30 110 35 "2" "2" 0x02020001) - ElementLine (50 50 50 -50 10) - ElementLine (50 -50 -250 -50 10) - ElementLine (-250 -50 -250 50 10) - ElementLine (-250 50 50 50 10) - ) - -Element(0x00000000 "SMD 0805" "C20" "" 2665 2375 -115 55 0 150 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(-90 0 -90 0 60 30 90 "2" "2" 0x00000100) - ElementLine (-125 35 35 35 10) - ElementLine (-125 -35 -125 35 10) - ElementLine (35 -35 -125 -35 10) - ElementLine (35 35 35 -35 10) - ) - -Element(0x00000000 "SMD 0805" "C19" "" 2785 2375 -20 55 0 150 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(90 0 90 0 60 30 90 "2" "2" 0x00000100) - ElementLine (125 -35 -35 -35 10) - ElementLine (125 35 125 -35 10) - ElementLine (-35 35 125 35 10) - ElementLine (-35 -35 -35 35 10) - ) - -Element(0x00000000 "SMD 0805" "C18" "" 2665 1800 155 -20 0 150 0x00000000) -( - Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) - Pad(90 0 90 0 60 30 90 "2" "2" 0x00000100) - ElementLine (125 -35 -35 -35 10) - ElementLine (125 35 125 -35 10) - ElementLine (-35 35 125 35 10) - ElementLine (-35 -35 -35 35 10) - ) - -Element(0x00000000 "AMP 745781-4" "J3" "A2100-ND" 820 1610 -125 837 0 150 0x00000000) -( - Pin(0 432 80 30 110 42 "1" "1" 0x00000101) - Pin(0 324 80 30 110 42 "2" "2" 0x00000001) - Pin(0 216 80 30 110 42 "3" "3" 0x00000001) - Pin(0 108 80 30 110 42 "4" "4" 0x00000001) - Pin(0 0 80 30 110 42 "5" "5" 0x00000001) - Pin(-112 378 80 30 110 42 "6" "6" 0x00000001) - Pin(-112 270 80 30 110 42 "7" "7" 0x00000001) - Pin(-112 162 80 30 110 42 "8" "8" 0x00000001) - Pin(-112 54 80 30 110 42 "9" "9" 0x00000001) - Pin(-56 -276 120 30 150 120 "MOUNT HOLE" "10" 0x00000009) - Pin(-56 708 120 30 150 120 "MOUNT HOLE" "11" 0x00000009) - ElementLine (-317 -390 58 -390 10) - ElementLine (-317 -138 -317 -390 10) - ElementLine (-433 455 -434 -22 10) - ElementLine (-317 823 -317 571 10) - ElementLine (58 823 -317 823 10) - ElementLine (58 -390 58 823 10) - ElementArc (-375 -138 58 58 90 90 10) - ElementArc (-375 -22 58 58 270 90 10) - ElementArc (-375 455 58 58 0 90 10) - ElementArc (-375 571 58 58 180 90 10) - ) - -Element(0x00000000 "3 TERM BLOCK" "J1" "DK ED1602-ND" 2285 2925 140 51 0 150 0x00000000) -( - Pin(0 0 110 30 140 48 "1" "1" 0x00000001) - Pin(-194 0 110 30 140 48 "2" "2" 0x00000001) - Pin(-388 0 110 30 140 48 "3" "3" 0x00000001) - ElementLine (-388 160 -388 140 10) - ElementLine (-194 160 -194 140 10) - ElementLine (0 160 0 140 10) - ElementLine (81 -170 101 -170 10) - ElementLine (81 -190 81 -170 10) - ElementLine (101 -190 81 -190 10) - ElementLine (-509 -170 -489 -170 10) - ElementLine (-509 -190 -509 -170 10) - ElementLine (-489 -190 -509 -190 10) - ElementLine (101 -200 101 160 10) - ElementLine (-489 -200 101 -200 10) - ElementLine (-489 160 -489 -200 10) - ElementLine (101 160 -489 160 10) - ) - -Element(0x00000000 "OP-AMP" "U7" "LTC1152" 2575 1925 380 200 0 150 0x00000000) -( - Pin(0 0 60 30 90 28 "SHDN" "1" 0x02000101) - Pin(0 100 60 30 90 28 "-IN" "2" 0x02000001) - Pin(0 200 60 30 90 28 "+IN" "3" 0x02000001) - Pin(0 300 60 30 90 28 "V-" "4" 0x02020001) - Pin(300 300 60 30 90 28 "COMP" "5" 0x02000001) - Pin(300 200 60 30 90 28 "OUT" "6" 0x02000001) - Pin(300 100 60 30 90 28 "V+" "7" 0x02000001) - Pin(300 0 60 30 90 28 "CP" "8" 0x02000001) - ElementLine (-50 -50 -50 350 10) - ElementLine (-50 350 350 350 10) - ElementLine (350 350 350 -50 10) - ElementLine (-50 -50 100 -50 10) - ElementLine (200 -50 350 -50 10) - ElementArc (150 -50 50 50 0 180 10) - ) - -Element(0x00000000 "R 0.5W" "R12" "" 1035 1935 -205 700 0 150 0x00000000) -( - Pin(0 0 85 30 115 48 "1" "1" 0x00000101) - Pin(0 800 90 30 120 48 "2" "2" 0x00000001) - ElementLine (0 60 0 115 10) - ElementLine (115 115 -115 115 10) - ElementLine (-115 115 -115 685 10) - ElementLine (-115 685 115 685 10) - ElementLine (115 685 115 115 10) - ElementLine (0 685 0 750 10) - ) -Rat(1187 1553 0 1061 1553 0 0x00000010) -Rat(1045 1820 1 1175 1780 0 0x00000010) -Rat(1330 1185 1 1405 1315 0 0x00000010) -Rat(2075 1455 1 2180 1420 0 0x00000010) -Rat(2180 1420 0 2185 1310 0 0x00000010) -Rat(2228 1547 0 2354 1547 0 0x00000010) -Layer(1 "solder") -( - Line(1945 1015 1945 1260 15 30 0x00000000) - Line(1615 1960 1555 1960 10 30 0x00000000) - Line(1185 2230 1185 2655 15 30 0x00000000) - Line(705 795 890 980 15 30 0x00000000) - Line(1405 955 1485 875 15 30 0x00000000) - Line(1005 695 1140 560 15 30 0x00000000) - Line(1005 795 1135 665 15 30 0x00000000) - Line(705 895 705 1075 15 30 0x00000000) - Line(1125 1435 1005 1315 15 30 0x00000000) - Line(1005 1235 1065 1175 15 30 0x00000000) - Line(1010 980 1105 1075 15 30 0x00000000) - Line(1345 955 1405 955 15 30 0x00000000) - Line(1065 1175 1125 1175 15 30 0x00000000) - Line(1190 665 1295 560 15 30 0x00000000) - Line(1375 1750 1375 2040 15 30 0x00000000) - Line(1605 2435 1605 2660 10 30 0x00000000) - Line(1655 2285 1520 2420 15 30 0x00000000) - Line(1375 2040 1185 2230 15 30 0x00000000) - Line(1135 665 1190 665 15 30 0x00000000) - Line(1105 1075 970 1210 15 30 0x00000000) - Line(890 980 1010 980 15 30 0x00000000) - Line(2460 965 1995 965 15 30 0x00000000) - Line(1855 2285 1855 2585 15 30 0x00000000) - Line(970 1210 970 1568 15 30 0x00000000) - Line(1520 2420 1520 2495 15 30 0x00000000) - Line(1755 2285 1605 2435 10 30 0x00000000) - Line(1995 965 1945 1015 15 30 0x00000000) - Line(1005 1315 1005 1235 15 30 0x00000000) - Line(2565 1070 2460 965 15 30 0x00000000) - Line(1945 1260 1985 1300 15 30 0x00000000) - Line(1125 1175 1345 955 15 30 0x00000000) - Line(2400 2625 2290 2625 10 30 0x00000000) - Line(970 1568 820 1718 15 30 0x00000000) - Line(1140 560 1195 560 15 30 0x00000000) - Line(1555 1960 1555 2285 10 30 0x00000000) - Text(525 2805 0 120 "LED (BACK)" 0x00000080) -) -Layer(2 "GND-solder") -( - Line(820 2045 920 2145 35 30 0x00000040) - Line(930 1820 930 1932 30 30 0x00000000) - Line(1280 1585 1045 1820 30 30 0x00000000) - Line(1045 1820 930 1820 30 30 0x00000000) - Line(930 1932 820 2042 30 30 0x00000000) - Line(2155 815 2120 780 40 30 0x00000000) - Line(1675 780 1595 860 40 30 0x00000000) - Line(2630 850 2535 755 40 30 0x00000000) - Line(2120 780 1675 780 40 30 0x00000000) - Line(2215 755 2155 815 40 30 0x00000000) - Line(2535 755 2215 755 40 30 0x00000000) - Polygon(0x00000010) - ( - (1125 2635) (1125 2235) (1330 2030) (1330 1705) (1430 1705) - (1430 1635) (1400 1635) (1400 1560) (1240 1720) (1115 1845) - (1115 2010) (1030 2010) (895 2145) (895 2635) - ) - Polygon(0x00000010) - ( - (1430 1885) (1570 1885) (1670 1885) (1670 2000) (1590 2000) - (1590 2235) (1925 2235) (1925 2525) (2645 2525) (2645 1250) - (2405 1250) (2405 1340) (2370 1375) (2320 1375) (2285 1340) - (2285 1305) (2300 1290) (2300 1290) (2300 1135) (2430 1135) - (2430 1005) (2090 1005) (2090 1280) (2000 1370) (2000 1515) - (1370 1515) (1370 1640) (1430 1640) - ) - Polygon(0x00000010) - ( - (2635 1250) (2635 1615) (2895 1615) (2895 1785) (2750 1785) - (2750 2520) (2975 2520) (2975 1250) - ) -) -Layer(3 "Vcc-solder") -( - Line(1455 2780 2695 2780 35 30 0x00000000) - Line(1035 2735 1445 2735 45 30 0x00000000) - Line(2340 1195 2815 1195 30 30 0x00000000) - Line(2815 1195 2815 900 30 30 0x00000000) - Line(1530 1180 1530 1435 30 30 0x00000000) - Line(1070 1265 1525 1265 35 30 0x00000000) - Line(1145 765 1395 765 35 30 0x00000000) - Line(1010 900 1145 765 35 30 0x00000000) - Line(1395 765 1595 565 35 30 0x00000000) - Line(2155 615 2110 660 40 30 0x00000000) - Line(1695 660 1595 560 40 30 0x00000000) - Line(2330 550 2155 615 45 30 0x00000000) - Line(2110 660 1695 660 40 30 0x00000000) - Line(2340 1315 2340 1195 30 30 0x00000000) - Line(2695 1700 2810 1700 30 30 0x00000000) - Line(1455 2585 1355 2285 45 30 0x00000000) - Line(1455 2590 1455 2780 35 30 0x00000000) - Line(2695 2780 2695 1700 30 30 0x00000000) -) -Layer(4 "component") -( - Line(685 2450 585 2350 35 30 0x00000000) - Line(2975 1480 2565 1070 15 30 0x00000000) - Line(2975 2025 2975 1480 15 30 0x00000000) - Line(2875 2125 2975 2025 15 30 0x00000000) - Line(980 1270 980 1774 15 30 0x00000000) - Line(585 1787 708 1664 35 30 0x00000000) - Line(2675 2125 2575 2025 15 30 0x00000000) - Line(2120 2285 2180 2225 15 30 0x00000000) - Line(2055 720 2055 895 10 30 0x00000000) - Line(1835 1285 1835 1340 10 30 0x00000000) - Line(1860 1261 1835 1285 10 30 0x00000000) - Line(1860 1035 1860 1261 10 30 0x00000000) - Line(2090 655 2090 910 10 30 0x00000000) - Line(1995 560 2090 655 10 30 0x00000000) - Line(1809 1263 1809 1340 10 30 0x00000000) - Line(1829 1244 1809 1263 10 30 0x00000000) - Line(1829 1024 1829 1244 10 30 0x00000000) - Line(1991 959 1893 959 10 30 0x00000000) - Line(2235 1500 2235 1475 15 30 0x00000000) - Line(2055 895 1991 959 10 30 0x00000000) - Line(2075 2515 2075 2415 30 30 0x00000000) - Line(1490 1950 1505 1950 10 30 0x00000000) - Line(2075 2415 1520 2415 30 30 0x00000000) - Line(2175 2145 2205 2145 15 30 0x00000000) - Line(1655 1800 1656 1720 10 30 0x00000000) - Line(1490 1950 1490 2150 15 30 0x00000000) - Line(1745 1845 1635 1955 15 30 0x00000000) - Line(1775 1780 1707 1780 10 30 0x00000000) - Line(1655 2170 1945 2170 15 30 0x00000000) - Line(1950 2285 2070 2285 15 30 0x00000000) - Line(1655 2170 1635 2150 15 30 0x00000000) - Line(1655 2065 1835 1885 15 30 0x00000000) - Line(2015 1955 2255 1955 15 30 0x00000000) - Line(2180 2625 2290 2625 15 30 0x00000000) - Line(2075 2615 1985 2615 15 30 0x00000000) - Line(2125 2585 2290 2420 10 30 0x00000000) - Line(2205 2145 2270 2080 15 30 0x00000000) - Line(1315 2225 1255 2285 15 30 0x00000000) - Line(1855 2285 1795 2225 15 30 0x00000000) - Line(2125 2615 2125 2585 10 30 0x00000000) - Line(2495 2530 2400 2625 15 30 0x00000000) - Line(1795 2225 1315 2225 15 30 0x00000000) - Line(1520 2415 1455 2285 30 30 0x00000000) - Line(2440 2110 2345 2205 15 30 0x00000000) - Line(1490 1750 1600 1750 10 30 0x00000000) - Line(2075 2615 2125 2615 10 30 0x00000000) - Line(2875 1800 2755 1800 15 30 0x00000000) - Line(1635 2150 1375 2150 15 30 0x00000000) - Line(1835 1840 1775 1780 10 30 0x00000000) - Line(2000 2225 2095 2225 15 30 0x00000000) - Line(1732 1750 1732 1720 10 30 0x00000000) - Line(1911 1720 1937 1720 10 30 0x00000000) - Line(1985 1300 1937 1300 10 30 0x00000000) - Line(2015 985 1909 985 10 30 0x00000000) - Line(1860 1720 1886 1720 10 30 0x00000000) - Line(1745 1845 1681 1845 10 30 0x00000000) - Line(1950 1840 1835 1840 15 30 0x00000000) - Line(1707 1780 1707 1720 10 30 0x00000000) - Line(1681 1845 1681 1720 10 30 0x00000000) - Line(1122 2585 1122 2740 15 30 0x00000000) - Line(2070 2285 2120 2285 15 30 0x00000000) - Line(1490 1750 1375 1750 15 30 0x00000000) - Line(1950 1840 2015 1955 15 30 0x00000000) - Line(1635 1955 1615 1955 10 30 0x00000000) - Line(2160 1750 1732 1750 10 30 0x00000000) - Line(2160 1675 2440 1955 15 30 0x00000000) - Line(2160 1680 2160 1750 10 30 0x00000000) - Line(1945 2170 2000 2225 15 30 0x00000000) - Line(1505 1950 1655 1800 10 30 0x00000000) - Line(1190 1595 1190 1675 15 30 0x00000000) - Line(1190 1510 1190 1435 15 30 0x00000000) - Line(1190 1435 1130 1435 15 30 0x00000000) - Line(1695 860 1695 1276 10 30 0x00000000) - Line(1795 860 1732 923 10 30 0x00000000) - Line(1797 1015 1797 1225 10 30 0x00000000) - Line(1995 860 1927 927 10 30 0x00000000) - Line(1495 560 1646 711 10 30 0x00000000) - Line(1657 973 1657 1279 10 30 0x00000000) - Line(1657 1279 1681 1303 10 30 0x00000000) - Line(1681 1303 1681 1340 10 30 0x00000000) - Line(1927 927 1885 927 10 30 0x00000000) - Line(1895 860 1758 997 10 30 0x00000000) - Line(1732 923 1732 1340 10 30 0x00000000) - Line(1893 959 1829 1024 10 30 0x00000000) - Line(1646 962 1657 973 10 30 0x00000000) - Line(1797 1225 1784 1239 10 30 0x00000000) - Line(1646 711 1646 962 10 30 0x00000000) - Line(1895 560 2055 720 10 30 0x00000000) - Line(1885 927 1797 1015 10 30 0x00000000) - Line(2090 910 2015 985 10 30 0x00000000) - Line(1985 2615 1955 2585 15 30 0x00000000) - Line(1758 997 1758 1340 10 30 0x00000000) - Line(1707 1288 1707 1340 10 30 0x00000000) - Line(2235 1475 2275 1435 15 30 0x00000000) - Line(1909 985 1860 1035 10 30 0x00000000) - Line(1005 1195 1005 895 35 30 0x00000000) - Line(1060 1255 1005 1195 35 30 0x00000000) - Line(585 2350 585 1787 35 30 0x00000000) - Line(705 595 875 765 15 30 0x00000000) - Line(795 785 795 1155 15 30 0x00000000) - Line(2555 475 1480 475 15 30 0x00000000) - Line(2630 550 2555 475 15 30 0x00000000) - Line(1455 2285 1290 2450 35 30 0x00000000) - Line(875 765 875 1165 15 30 0x00000000) - Line(705 695 795 785 15 30 0x00000000) - Line(980 1774 820 1934 15 30 0x00000000) - Line(705 1075 635 1145 15 30 0x00000000) - Line(2290 2420 2290 2225 10 30 0x00000000) - Line(1480 475 1395 560 15 30 0x00000000) - Line(635 1425 820 1610 15 30 0x00000000) - Line(875 1165 980 1270 15 30 0x00000000) - Line(2095 2225 2175 2145 15 30 0x00000000) - Line(1290 2450 685 2450 35 30 0x00000000) - Line(1600 1750 1630 1720 10 30 0x00000000) - Line(1897 2827 1897 2925 15 30 0x00000000) - Line(915 1731 820 1826 15 30 0x00000000) - Line(915 1275 915 1731 15 30 0x00000000) - Line(1755 2585 2091 2925 15 30 0x00000000) - Line(1501 2764 1501 2925 15 30 0x00000000) - Line(1655 2585 1897 2827 15 30 0x00000000) - Line(1182 2525 1122 2585 15 30 0x00000000) - Line(1520 2495 1490 2525 15 30 0x00000000) - Line(1490 2525 1182 2525 15 30 0x00000000) - Line(1605 2660 1501 2764 15 30 0x00000000) - Line(1185 2655 1485 2655 15 30 0x00000000) - Line(1485 2655 1555 2585 15 30 0x00000000) - Line(1122 2740 1307 2925 15 30 0x00000000) - Line(2255 1955 2375 2075 15 30 0x00000000) - Line(2440 1955 2440 2110 15 30 0x00000000) - Line(2345 2865 2285 2925 15 30 0x00000000) - Line(2345 2205 2345 2865 15 30 0x00000000) - Line(2785 2215 2785 2375 15 30 0x00000000) - Line(795 1155 915 1275 15 30 0x00000000) - Line(2875 2225 2875 2375 15 30 0x00000000) - Line(1784 1239 1784 1340 10 30 0x00000000) - Line(2575 2125 2495 2215 15 30 0x00000000) - Line(2665 2375 2785 2375 15 30 0x00000000) - Line(2575 2225 2575 2375 15 30 0x00000000) - Line(2495 2215 2495 2530 15 30 0x00000000) - Line(2875 1925 2875 1800 15 30 0x00000000) - Line(2875 2125 2785 2215 15 30 0x00000000) - Line(1937 1300 1937 1340 10 30 0x00000000) - Line(2875 2125 2675 2125 15 30 0x00000000) - Line(635 1145 635 1425 15 30 0x00000000) - Line(1835 1885 1835 1840 15 30 0x00000000) - Line(1695 1276 1707 1288 10 30 0x00000000) - Text(2515 2705 0 140 "LED rev 1" 0x00000000) -) -Layer(5 "GND-component") -( - Line(1505 950 1595 860 30 30 0x00000000) - Line(1440 950 1505 950 30 30 0x00000000) - Line(2220 1545 2155 1545 20 30 0x00000000) - Line(2515 1350 2515 1415 30 30 0x00000000) - Line(1200 1350 1230 1350 35 30 0x00000000) - Line(1860 1395 1860 1430 10 30 0x00000000) - Line(1965 1495 1965 1635 25 30 0x00000000) - Line(1855 1495 1965 1495 25 30 0x00000000) - Line(1835 1665 1835 1625 10 30 0x00000000) - Line(1885 1395 1885 1460 10 30 0x00000000) - Line(1965 1660 1965 1635 10 30 0x00000000) - Line(1810 1665 1810 1630 10 30 0x00000000) - Line(1785 1660 1785 1625 10 30 0x00000000) - Line(1760 1625 1760 1660 10 30 0x00000000) - Line(1280 1580 1280 1490 25 30 0x00000000) - Line(1195 1555 1280 1555 20 30 0x00000000) - Line(2545 1320 2515 1350 30 30 0x00000000) - Line(1005 595 1085 595 30 30 0x00000000) - Line(1085 595 1085 955 30 30 0x00000000) - Line(1085 955 1145 1015 30 30 0x00000000) - Line(1145 1015 1245 1015 30 30 0x00000000) - Arc(1445 995 45 45 30 30 270 90 0x00000000) - Polygon(0x00000010) - ( - (2250 1535) (2270 1535) (2270 1485) (2325 1485) (2325 1535) - (2345 1535) (2345 1560) (2325 1560) (2325 1630) (2160 1630) - (2160 1610) (2270 1610) (2270 1560) (2250 1560) - ) - Polygon(0x00000010) - ( - (1995 1470) (1880 1470) (1880 1450) (2015 1450) (2015 1365) - (2160 1365) (2160 1330) (2195 1330) (2195 1425) (2160 1460) - (2160 1630) (2070 1630) (2070 1720) (1995 1720) - ) - Polygon(0x00000010) - ( - (1370 1635) (1930 1635) (1930 1525) (1370 1525) - ) - Polygon(0x00000010) - ( - (1865 1510) (1225 1510) (1225 995) (1415 995) (1415 1255) - (1365 1255) (1365 1365) (1605 1365) (1605 1415) (1865 1415) - ) - Polygon(0x00000000) - ( - (1360 1295) (1390 1295) (1390 1335) (1360 1335) - ) - Polygon(0x00000010) - ( - (1070 1565) (1090 1565) (1090 1810) (1150 1810) (1150 1765) - (1125 1740) (1125 1640) (1145 1640) (1145 1565) (1165 1565) - (1165 1540) (1145 1540) (1145 1485) (1090 1485) (1090 1540) - (1070 1540) - ) -) -Layer(6 "Vcc-component") -( - Line(1045 1870 1045 1935 25 30 0x00000000) - Line(708 2155 708 1988 40 30 0x00000000) - Line(2575 1925 2490 2010 25 30 0x00000000) - Line(1630 1340 1630 1250 10 30 0x00000000) - Line(1910 1430 1965 1430 10 30 0x00000000) - Line(1910 1395 1910 1430 10 30 0x00000000) - Line(1200 2355 1000 2155 35 30 0x00000000) - Line(2575 1925 2485 1835 25 30 0x00000000) - Line(1070 1265 1070 1330 25 30 0x00000000) - Line(2360 1500 2360 1315 25 30 0x00000000) - Line(2445 1250 2445 1675 30 30 0x00000000) - Line(2100 1250 2445 1250 30 30 0x00000000) - Line(1910 1340 1910 1250 10 30 0x00000000) - Line(1965 1430 1965 1400 10 30 0x00000000) - Line(2375 1585 2440 1585 25 30 0x00000000) - Line(2665 1835 2575 1925 30 30 0x00000000) - Line(1120 1875 1190 1875 20 30 0x00000000) - Line(1045 1595 1045 1875 20 30 0x00000000) - Line(1045 1875 1120 1875 20 30 0x00000000) - Line(2875 2025 2675 2025 25 30 0x00000000) - Line(1285 2355 1200 2355 35 30 0x00000000) - Line(1355 2285 1285 2355 35 30 0x00000000) - Line(2675 2025 2575 1925 25 30 0x00000000) - Line(1000 2155 708 2155 40 30 0x00000000) - Line(1060 1510 1060 1375 25 30 0x00000000) - Line(1190 1875 1280 1785 20 30 0x00000000) - Line(2490 2010 2490 2135 25 30 0x00000000) - Line(2450 1510 2495 1510 35 30 0x00000000) - Line(2485 1835 2485 1680 25 30 0x00000000) - Line(2485 1680 2375 1680 25 30 0x00000000) - Line(2665 1800 2665 1835 30 30 0x00000000) - Line(2375 1680 2270 1680 30 30 0x00000000) - Line(2490 2135 2400 2225 25 30 0x00000000) - Polygon(0x00000000) - ( - (1500 1255) (1530 1255) (1530 1295) (1500 1295) - ) - Polygon(0x00000010) - ( - (1445 1255) (1635 1255) (1635 995) (1635 995) (1635 995) - (1635 995) (1635 995) (1445 995) - ) - Polygon(0x00000010) - ( - (1885 1260) (2120 1260) (2120 1005) (1921 1003) (1885 1039) - ) - Polygon(0x00000000) - ( - (2080 1250) (2110 1250) (2110 1295) (2080 1295) - ) -) -Layer(7 "unused") -( -) -Layer(8 "unused") -( - Line(3135 3225 345 3225 35 30 0x00000000) - Line(3135 210 3135 3225 35 30 0x00000000) - Line(345 210 3135 210 35 30 0x00000000) - Line(345 3225 345 210 35 30 0x00000000) -) -Layer(9 "silk") -( -) -Layer(10 "silk") -( - Text(2210 3120 0 115 "ANODE" 0x00000400) - Text(1855 3125 0 115 "-Y" 0x00000400) - Text(2045 3130 0 115 "+Y" 0x00000400) - Text(1255 3125 0 115 "-X" 0x00000400) - Text(1455 3125 0 115 "+X" 0x00000400) - Text(525 295 0 280 "FLARE GENESIS" 0x00000400) - Text(435 2815 0 165 "LED Interface" 0x00000400) - Text(1885 285 0 295 "harry eaton" 0x00000400) -) diff --git a/tutorial/pcb/LED.NET b/tutorial/pcb/LED.NET deleted file mode 100755 index eb9f8a2..0000000 --- a/tutorial/pcb/LED.NET +++ /dev/null @@ -1,47 +0,0 @@ -AGND C8-2 C9-2 C10-2 C11-2 C12-2 C13-2 C20-2 C21-2 R7-2 R9-2 \ - R10-2 U2-6 U2-7 U2-8 U2-9 U2-18 U3-2 U3-5 U7-4 -DGND C5-2 C6-2 C7-2 C14-2 C15-2 C16-2 C17-1 J3-1 U2-14 U2-19 \ - U4-2 U4-5 U5-5 U6-4 X1-2 -Minus12V C3-1 C4-1 J3-9 U1-6 -Plus12V J3-6 R11-1 R12-2 U1-7 U1-11 -S00001 C8-1 C9-1 C10-1 C13-1 C18-1 R2-2 R6-1 R8-1 U2-15 U2-17 \ - U3-4 U7-1 U7-7 -SIG10 Skinny U1-2 U1-8 U1-15 -SIG41 Power C3-2 R3-2 U1-16 -SIG43 C4-2 R1-2 U1-1 -SIG49 C2-1 R4-2 R6-2 R7-1 U2-4 -SIG50 C2-2 R4-1 U1-5 U2-3 -SIG51 C1-1 R5-2 R8-2 R9-1 U2-2 -SIG52 C1-2 R5-1 U1-12 U2-1 -SIG87 U2-10 U2-11 -SIG88 U2-12 U2-13 -SIG91 C19-1 C20-1 C21-1 U2-16 U7-2 U7-6 -SIG100 U2-21 U5-11 -SIG101 U2-20 U5-10 -SIG124 J2-3 U1-4 -SIG125 J2-2 U1-3 -SIG127 J1-2 U1-14 -SIG139 C11-1 U3-1 -SIG146 C12-1 R11-2 U3-6 -SIG150 C15-1 R12-1 U4-6 -SIG155 C14-1 U4-1 -SIG191 U5-16 X1-3 -SIG241 U2-26 U5-15 -SIG252 R13-1 U4-3 U5-4 -SIG258 U5-18 U6-3 -SIG259 U5-17 U6-2 -SIG285 J3-4 R14-1 U6-7 -SIG286 J3-5 R14-2 U6-8 -SIG291 U2-22 U5-9 -SIG292 U2-23 U5-8 -SIG293 U2-24 U5-7 -SIG294 U2-25 U5-6 -SIG296 J3-2 U6-5 -SIG297 J3-3 U6-6 -SIG310 J1-1 R10-1 U2-5 -SIG311 J1-3 U1-13 -SIG321 C5-1 C6-1 C7-1 C16-1 C17-2 R13-2 U2-28 U4-4 U5-14 U6-1 \ - X1-4 -SIG338 R1-1 R2-1 R3-1 U7-3 -SIG341 C18-2 U7-8 -SIG343 C19-2 U7-5 diff --git a/tutorial/pcb/bridge.pcb b/tutorial/pcb/bridge.pcb deleted file mode 100644 index dc79211..0000000 --- a/tutorial/pcb/bridge.pcb +++ /dev/null @@ -1,6 +0,0 @@ -V- T1-2 -V+ T1-1 -int5 T1-3 rectifier1/D4-1 rectifier1/D3-2 -int6 T1-4 rectifier1/D2-1 rectifier1/D1-2 -Vout rectifier1/D3-1 rectifier1/D1-1 C2-1 C1-1 -GND rectifier1/D4-2 rectifier1/D2-2 C2-2 C1-2 diff --git a/tutorial/pcb/flare_objects.gif b/tutorial/pcb/flare_objects.gif Binary files differdeleted file mode 100644 index d2938ed..0000000 --- a/tutorial/pcb/flare_objects.gif +++ /dev/null diff --git a/tutorial/pcb/pic_instance.gif b/tutorial/pcb/pic_instance.gif Binary files differdeleted file mode 100644 index eb6ae04..0000000 --- a/tutorial/pcb/pic_instance.gif +++ /dev/null diff --git a/tutorial/pcb/pic_object.gif b/tutorial/pcb/pic_object.gif Binary files differdeleted file mode 100644 index 5ba2733..0000000 --- a/tutorial/pcb/pic_object.gif +++ /dev/null diff --git a/tutorial/pcb/powersup.pcb b/tutorial/pcb/powersup.pcb deleted file mode 100644 index 15da12b..0000000 --- a/tutorial/pcb/powersup.pcb +++ /dev/null @@ -1,10 +0,0 @@ -NET1 power_supply1/T1-3 power_supply1/rectifier1/D4-1 \ - power_supply1/rectifier1/D3-2 -NET2 power_supply1/T1-4 power_supply1/rectifier1/D2-1 \ - power_supply1/rectifier1/D1-2 -In+ power_supply1/T1-1 -In- power_supply1/T1-2 -Out power_supply1/rectifier1/D3-1 power_supply1/rectifier1/D1-1 \ - power_supply1/C2-1 power_supply1/C1-1 R1-1 -GND power_supply1/rectifier1/D4-2 power_supply1/rectifier1/D2-2 \ - power_supply1/C2-2 power_supply1/C1-2 R1-2 diff --git a/tutorial/psfiles/analoglib1.lps b/tutorial/psfiles/analoglib1.lps deleted file mode 100644 index 9ac56dd..0000000 --- a/tutorial/psfiles/analoglib1.lps +++ /dev/null @@ -1,238 +0,0 @@ -%! PostScript set of library objects for XCircuit -% Version: 2.0 -% Library name is: analoglib -% Author: Tim Edwards <tim@stravinsky.jhuapl.edu> -% - -% XCircuitLib library objects - -/arrowhead { -% -12 -32 24 36 bbox -begingate -8 -28 beginpath -3 -18 3 -15 0 0 curveto --3 -15 -3 -18 -8 -28 curveto --2 -26 2 -26 -8 -28 curveto -249 1.00 endpath -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 - -/capacitor { -% -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 -32 -6 32 -6 2 polygon -1.000 0.000 0.000 scb -(c.1) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -(c.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -sce -(spice:C%i %pc.1 %pc.2 %v"1.0"%v"p") {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel -(sim:c %pc.1 %pc.2) {/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 - -/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 - -/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 - -/inductor { -% -14 -64 164 112 bbox -(1.0) (m) 2 beginparm -% fundamental -1 1.00 20 -28 20 -44 0 -48 0 -24 spline -1 1.00 -20 -20 -20 -32 0 -28 0 -24 spline -1 1.00 -20 32 20 16 0 12 0 36 spline -1 1.00 20 12 20 -4 0 -8 0 16 spline -1 1.00 20 -8 20 -24 0 -28 0 -4 spline -1 1.00 -20 20 -20 -8 0 12 0 16 spline -1 1.00 -20 0 -20 -12 0 -8 0 -4 spline -1 1.00 0 -48 0 -64 2 polygon -1 1.00 0 36 0 48 2 polygon -1.000 0.000 0.000 scb -(l.1) {/Times-Roman 1.000 cf} 2 9 0 0 48 pinlabel -(l.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -sce -(spice:L%i %pl.1 %pl.2 %v"1.0"%v"m") {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel -(sim:l %pl.1 %pl.2) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel -(H) v2 {hS} v1 {/Helvetica 1.000 cf} 5 20 0 32 0 label -endgate -} def - -/vsource { -% -32 -64 139 128 bbox -(5) 1 beginparm -% fundamental -1.00 0 0 0 source -(+) {/Symbol 1.000 cf} 2 5 0 0 18 label -(-) {/Symbol 1.000 cf} 2 5 0 0 -18 label -1.000 0.000 0.000 scb -(v.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -(v.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -sce -(spice:V%i %pv.m %pv.p %v"5") {/Helvetica 1.000 cf} 2 20 0 -96 -160 infolabel -(V) {hS} v1 {/Helvetica 1.000 cf} 4 20 0 48 0 label -endgate -} def - -/isource { -% -32 -64 163 128 bbox -(1) (m) 2 beginparm -% fundamental -1.00 0 0 0 source -1 0.75 0 20 0 -8 2 polygon -0.80 180 0 -20 arrowhead -1.000 0.000 0.000 scb -(i.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -(i.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -sce -(spice:I%i %pi.m %pi.p %v"1"%v"m") {/Times-Roman 1.000 cf} 2 20 0 -96 -160 infolabel -(A) v2 {hS} v1 {/Helvetica 1.000 cf} 5 20 0 48 0 label -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 - -/nmos { -% -64 -64 161 128 bbox -(3) (2) 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 -(spice:M%i %pD %pG %pS GND nmos W=%v"3" L=%v"2") {/Times-Roman 1.000 cf} 2 4 0 -244 -139 infolabel -(sim:n %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel -v1 (W=) {/Helvetica 1.000 cf} 3 20 0 16 16 label -v2 (L=) {/Helvetica 1.000 cf} 3 20 0 16 -16 label -endgate -} def - -/pmos { -% -64 -64 161 128 bbox -(3) (2) 2 beginparm -% fundamental -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) {/Helvetica 1.000 cf} 2 9 0 0 64 pinlabel -(D) {/Helvetica 1.000 cf} 2 13 0 0 -64 pinlabel -(G) {/Helvetica 1.000 cf} 2 7 0 -64 0 pinlabel -sce -(spice:M%i %pD %pG %pS Vdd pmos W=%v"3" L=%v"2") {/Times-Roman 1.000 cf} 2 4 0 -196 -139 infolabel -(sim:p %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -196 -187 infolabel -v1 (W=) {/Helvetica 1.000 cf} 3 20 0 16 16 label -v2 (L=) {/Helvetica 1.000 cf} 3 20 0 16 -16 label -endgate -} def - -/npn { -% -64 -64 73 128 bbox -begingate -% fundamental -1 1.00 -48 0 -64 0 2 polygon -1 1.00 -48 48 -48 -48 2 polygon -1 1.00 0 48 -48 22 2 polygon -1 1.00 0 48 0 64 2 polygon -1 1.00 0 -48 -48 -22 2 polygon -1 1.00 0 -48 0 -64 2 polygon -1.00 240 0 -48 arrowhead -1.000 0.000 0.000 scb -(C) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -(B) {/Times-Roman 1.000 cf} 2 7 0 -64 0 pinlabel -(E) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -sce -(spice:Q%i %pC %pB %pE npn) {/Times-Roman 1.000 cf} 2 4 0 -244 -139 infolabel -(sim:b %pB %pE %pC) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel -endgate -} def - -/pnp { -% -64 -64 64 128 bbox -begingate -% fundamental -1 1.00 -48 0 -64 0 2 polygon -1 1.00 -48 48 -48 -48 2 polygon -1 1.00 0 48 -48 22 2 polygon -1 1.00 0 48 0 64 2 polygon -1 1.00 0 -48 -48 -22 2 polygon -1 1.00 0 -48 0 -64 2 polygon -1.00 120 -48 22 arrowhead -1.000 0.000 0.000 scb -(C) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -(B) {/Times-Roman 1.000 cf} 2 7 0 -64 0 pinlabel -(E) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -sce -(spice:Q%i %pC %pB %pE pnp) {/Times-Roman 1.000 cf} 2 4 0 -244 -139 infolabel -endgate -} def - -% EndLib diff --git a/tutorial/psfiles/analoglib2.lps b/tutorial/psfiles/analoglib2.lps deleted file mode 100644 index c8050c2..0000000 --- a/tutorial/psfiles/analoglib2.lps +++ /dev/null @@ -1,235 +0,0 @@ -%! PostScript set of library objects for XCircuit -% Version: 2.0 -% Library name is: analoglib2 -% Author: R. Timothy Edwards <tim@stravinsky.jhuapl.edu> -% - -% XCircuitLib library objects -/capacitor { -% -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 -32 -6 32 -6 2 polygon -1.000 0.000 0.000 scb -(c.1) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -(c.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -sce -mark v2 v1 (spice:C%i %pc.1 %pc.2 ) {/Times-Roman 1.000 cf} ctmk 4 0 -208 -160 infolabel -(sim:c %pc.1 %pc.2) {/Times-Roman 1.000 cf} 2 4 0 -208 -208 infolabel -mark (F) v2 {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 48 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 -mark v2 v1 (spice:C%i %pt %pb ) {/Times-Roman 1.000 cf} ctmk 4 0 -208 -160 infolabel -(sim:e %pt %pb %pb) {/Times-Roman 1.000 cf} 2 4 0 -208 -208 infolabel -mark (F) v2 {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 48 0 label -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 -mark v2 v1 (spice:R%i %pr.1 %pr.2 ) {/Times-Roman 1.000 cf} ctmk 4 0 -208 -160 infolabel -(sim:r %pr.1 %pr.2) {/Times-Roman 1.000 cf} 2 4 0 -208 -208 infolabel -mark (W) {/Symbol 1.000 cf} v2 {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 32 0 label -endgate -} def - -/inductor { -% -14 -64 164 112 bbox -(1.0) (m) 2 beginparm -% fundamental -1 1.00 20 -28 20 -44 0 -48 0 -24 spline -1 1.00 -20 -20 -20 -32 0 -28 0 -24 spline -1 1.00 20 32 20 16 0 12 0 36 spline -1 1.00 20 12 20 -4 0 -8 0 16 spline -1 1.00 20 -8 20 -24 0 -28 0 -4 spline -1 1.00 -20 20 -20 8 0 12 0 16 spline -1 1.00 -20 0 -20 -12 0 -8 0 -4 spline -1 1.00 0 -48 0 -64 2 polygon -1 1.00 0 36 0 48 2 polygon -1.000 0.000 0.000 scb -(l.1) {/Times-Roman 1.000 cf} 2 9 0 0 48 pinlabel -(l.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -sce -mark v2 v1 (spice:L%i %pl.1 %pl.2 ) {/Times-Roman 1.000 cf} ctmk 4 0 -208 -160 infolabel -(sim:l %pl.1 %pl.2) {/Times-Roman 1.000 cf} 2 4 0 -208 -208 infolabel -mark (H) v2 {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 32 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 - -/vsource { -% -32 -64 139 128 bbox -(5) 1 beginparm -% fundamental -1.00 0 0 0 source -(+) {/Symbol 1.000 cf} 2 5 0 0 18 label -(-) {/Symbol 1.000 cf} 2 5 0 0 -18 label -1.000 0.000 0.000 scb -(v.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -(v.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -sce -mark v1 (spice:V%i %pv.m %pv.p ) {/Helvetica 1.000 cf} ctmk 20 0 -96 -160 infolabel -mark (V) {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 48 0 label -endgate -} def - -/arrowhead { -% -12 -32 24 36 bbox -begingate -8 -28 beginpath -3 -18 3 -15 0 0 curveto --3 -15 -3 -18 -8 -28 curveto --2 -26 2 -26 8 -28 curveto -249 1.00 endpath -endgate -} def - -/isource { -% -32 -64 163 128 bbox -(1) (m) 2 beginparm -% fundamental -1.00 0 0 0 source -1 0.75 0 20 0 -8 2 polygon -0.80 180 0 -20 arrowhead -1.000 0.000 0.000 scb -(i.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -(i.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -sce -mark v2 v1 (spice:I%i %pi.m %pi.p ) {/Times-Roman 1.000 cf} ctmk 20 0 -96 -160 infolabel -mark (A) v2 {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 48 0 label -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 -mark (\)) v4 v3 ( ) v1 ( ) v2 (spice:V%i %ps.m %ps.p SIN\() {/Helvetica 1.000 cf} ctmk 20 0 -336 -160 infolabel -mark (offset) {ss} (V) {hS} v2 {/Helvetica 1.000 cf} ctmk 20 0 48 0 label -mark (p-p) {ss} (V) {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 48 48 label -mark (Hz) v4 {hS} v3 {/Helvetica 1.000 cf} ctmk 20 0 48 -48 label -endgate -} def - -/nmos { -% -64 -64 161 128 bbox -(3) (2) (nmos) 3 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 -mark v2 ( L=) v1 ( W=) v3 (spice:M%i %pD %pG %pS GND ) {/Times-Roman 1.000 cf} ctmk 4 0 -244 -139 infolabel -(sim:n %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel -mark v1 (W=) {/Helvetica 1.000 cf} ctmk 20 0 16 16 label -mark v2 (L=) {/Helvetica 1.000 cf} ctmk 20 0 16 -16 label -endgate -} def - -/pmos { -% -64 -64 161 128 bbox -(3) (2) (pmos) 3 beginparm -% fundamental -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) {/Helvetica 1.000 cf} 2 9 0 0 64 pinlabel -(D) {/Helvetica 1.000 cf} 2 13 0 0 -64 pinlabel -(G) {/Helvetica 1.000 cf} 2 7 0 -64 0 pinlabel -sce -mark v2 ( L=) v1 ( W=) v3 (spice:M%i %pD %pG %pS Vdd ) {/Times-Roman 1.000 cf} ctmk 4 0 -196 -139 infolabel -(sim:p %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -196 -187 infolabel -mark v1 (W=) {/Helvetica 1.000 cf} ctmk 20 0 16 16 label -mark v2 (L=) {/Helvetica 1.000 cf} ctmk 20 0 16 -16 label -endgate -} def - -/npn { -% -64 -64 72 128 bbox -(npn) 1 beginparm -% fundamental -1 1.00 -48 0 -64 0 2 polygon -1 1.00 -48 48 -48 -48 2 polygon -1 1.00 0 48 -48 22 2 polygon -1 1.00 0 48 0 64 2 polygon -1 1.00 0 -48 -48 -22 2 polygon -1 1.00 0 -48 0 -64 2 polygon -1.00 240 0 -48 arrowhead -1.000 0.000 0.000 scb -(C) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -(B) {/Times-Roman 1.000 cf} 2 7 0 -64 0 pinlabel -(E) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -sce -mark v1 (spice:Q%i %pC %pB %pE ) {/Times-Roman 1.000 cf} ctmk 4 0 -244 -139 infolabel -(sim:b %pB %pE %pC) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel -endgate -} def - -/pnp { -% -64 -64 72 128 bbox -(pnp) 1 beginparm -% fundamental -1 1.00 -48 0 -64 0 2 polygon -1 1.00 -48 48 -48 -48 2 polygon -1 1.00 0 48 -48 22 2 polygon -1 1.00 0 48 0 64 2 polygon -1 1.00 0 -48 -48 -22 2 polygon -1 1.00 0 -48 0 -64 2 polygon -1.00 120 -48 22 arrowhead -1.000 0.000 0.000 scb -(C) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -(B) {/Times-Roman 1.000 cf} 2 7 0 -64 0 pinlabel -(E) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -sce -mark v1 (spice:Q%i %pC %pB %pE ) {/Times-Roman 1.000 cf} ctmk 4 0 -244 -139 infolabel -endgate -} def - - -% EndLib diff --git a/tutorial/psfiles/bridge.ps b/tutorial/psfiles/bridge.ps deleted file mode 100644 index 392f5ed..0000000 --- a/tutorial/psfiles/bridge.ps +++ /dev/null @@ -1,370 +0,0 @@ -%!PS-Adobe-3.0 -%%Title: ~/tmp/tutorial/bridge -%%Creator: Xcircuit v2.3 -%%CreationDate: Wed Jul 18 11:20:21 2001 -%%Pages: 1 -%%BoundingBox: 114 302 498 490 -%%DocumentNeededResources: font Helvetica font Times-Roman font Times-RomanISO -%%+ font HelveticaISO font Symbol -%%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 - -/Times-Roman findfont dup length dict begin -{1 index /FID ne {def} {pop pop} ifelse} forall -/Encoding ISOLatin1Encoding def currentdict end -/Times-RomanISO exch definefont pop - -/Helvetica findfont dup length dict begin -{1 index /FID ne {def} {pop pop} ifelse} forall -/Encoding ISOLatin1Encoding def currentdict end -/HelveticaISO exch definefont pop - -% XCircuit output starts here. - -/inductor { -% -14 -64 29 112 bbox -begingate -1 1.00 20 -28 20 -44 0 -48 0 -24 spline -1 1.00 -20 -20 -20 -32 0 -28 0 -24 spline -1 1.00 20 32 20 16 0 12 0 36 spline -1 1.00 20 12 20 -4 0 -8 0 16 spline -1 1.00 20 -8 20 -24 0 -28 0 -4 spline -1 1.00 -20 20 -20 8 0 12 0 16 spline -1 1.00 -20 0 -20 -12 0 -8 0 -4 spline -1 1.00 0 -48 0 -64 2 polygon -1 1.00 0 36 0 48 2 polygon -1.000 0.000 0.000 scb -(l.1) {/Times-Roman cf} 2 9 0 1.00 0 48 pinlabel -(l.2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel -sce -(spice:L%i %pl.1 %pl.2 1.0U) {/Times-Roman cf} 2 0 0 1.00 -208 -160 infolabel -sce -(sim:l %pl.1 %pl.2) {/Times-Roman cf} 2 0 0 1.00 -208 -208 infolabel -endgate -} def - -/Transformer { -% -62 -64 108 112 bbox -(?) 1 beginparm -1.00 0 -48 0 inductor -1 1.00 -16 48 -16 -64 2 polygon -1 1.00 0 48 0 -64 2 polygon -1.00 180 32 -16 inductor -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 25 0 1.00 -48 48 pinlabel -(2) {/Helvetica cf} 2 29 0 1.00 -48 -64 pinlabel -(3) {/Helvetica cf} 2 25 0 1.00 32 48 pinlabel -(4) {/Helvetica cf} 2 29 0 1.00 32 -64 pinlabel -sce -mark v1 (pcb:T) {/Times-Roman cf} ctmk 20 0 1.00 -96 -160 infolabel -endgate -} def - -/circle { -% -6 -12 28 24 bbox -% trivial -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 cf} 2 4 0 1.00 16 0 pinlabel -(out) {/Times-Roman cf} 2 7 0 1.00 0 0 pinlabel -endgate -} def - -/Diode { -% -18 -48 36 96 bbox -(?) 1 beginparm -248 1.00 -18 -16 0 16 18 -16 3 polygon -1 1.00 0 -48 0 -16 2 polygon -1 1.00 0 48 0 16 2 polygon -1 1.00 -18 16 18 16 2 polygon -1.000 0.000 0.000 scb -(1) {/Times-Roman cf} 2 9 0 1.00 0 48 pinlabel -(2) {/Times-Roman cf} 2 13 0 1.00 0 -48 pinlabel -sce -mark v1 (pcb:D) {/Helvetica cf} ctmk 20 0 1.00 -64 -144 infolabel -mark ( %p1 %p2 diode) v1 (spice:D) {/Times-Roman cf} ctmk 4 0 1.00 -64 -192 -endgate -} def - -/rectifier { -% -112 -48 192 192 bbox -begingate -1.00 315 -64 96 Diode -1.00 225 32 96 Diode -1.00 225 -64 0 Diode -1.00 315 32 0 Diode -1 1.00 -30 130 -16 144 -2 130 3 polygon -1 1.00 66 62 80 48 66 34 3 polygon -1 1.00 -2 -34 -16 -48 -30 -34 3 polygon -1 1.00 -98 34 -112 48 -98 62 3 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 - -/jumper { -% -4 -14 18 28 bbox -% trivial -begingate -1 1.00 0 0 10 -90.00 90.00 xcarc -1 1.00 0 10 0 16 2 polygon -1 1.00 0 -10 0 -16 2 polygon -1.000 0.000 0.000 scb -(a) {/Times-Roman cf} 2 1 0 1.00 0 16 pinlabel -(a) {/Times-Roman cf} 2 13 0 1.00 0 -16 pinlabel -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 - -/Capacitor { -% -32 -64 186 128 bbox -(1.0) (p) (?) 3 beginparm -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 -32 -6 32 -6 2 polygon -1.000 0.000 0.000 scb -(1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel -(2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel -sce -mark v2 v1 ( %p1 %p2 ) v3 (spice:C) {/Times-RomanISO cf} ctmk 4 0 1.00 -208 --160 infolabel -sce -(sim:c %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel -mark (F) v2 {hS} v1 {/Times-RomanISO cf} ctmk 20 0 1.00 48 0 label -sce -mark v3 (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel -endgate -} def - -/Polarized { -% -32 -64 176 128 bbox -(1.0) (p) (?) 3 beginparm -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 -(1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel -(2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel -sce -mark v2 v1 ( %p1 %p2 ) v3 (spice:C) {/Times-RomanISO cf} ctmk 4 0 1.00 -208 --160 infolabel -sce -(sim:e %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel -mark (F) v2 {hS} v1 {/Times-RomanISO cf} ctmk 20 0 1.00 48 0 label -sce -mark v3 (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel -endgate -} def - -%%Page: 1 1 -%%PageOrientation: Portrait -/pgsave save def bop -% 529 953 offsets -1.0000 inchscale -2.6000 setlinewidth - -1.00 0 497 1065 Transformer -1 1.00 449 1113 449 1193 401 1193 3 polygon -1 1.00 449 1001 449 937 401 937 3 polygon -1.00 -1 401 1193 circle -1.00 -1 401 937 circle -1.000 0.000 0.000 scb -(+) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 385 1193 pinlabel -(-) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 385 937 pinlabel -sce -1.00 0 785 1017 rectifier -1 1.00 529 1113 529 1193 769 1193 769 1161 4 polygon -1 1.00 529 1001 529 937 769 937 769 969 4 polygon -1.00 0 769 969 dot -1.00 0 769 1161 dot -1 1.00 673 1065 641 1065 641 953 3 polygon -1 1.00 641 921 641 873 1201 873 3 polygon -1 1.00 865 1065 1201 1065 2 polygon -1 1.00 961 1065 961 1033 2 polygon -1 1.00 1041 1065 1041 1033 2 polygon -1 1.00 961 905 961 873 2 polygon -1 1.00 1041 905 1041 873 2 polygon -1.00 0 1041 873 dot -1.00 0 961 873 dot -1.00 0 961 1065 dot -1.00 0 1041 1065 dot -1.00 0 865 1065 dot -1.00 0 673 1065 dot -1.00 -1 641 937 jumper -1.00 0 641 873 gnd -1.00 0 641 873 dot -1.00 0 1201 873 circle -1.00 0 1201 1065 circle -1.000 0.000 0.000 scb -(Vout) {0 -80 Kn} {/Helvetica cf} 3 28 0 1.00 1217 1065 pinlabel -sce -(+) {/Symbol cf} 2 20 0 1.00 1249 1065 label -(-) {/Symbol cf} 2 20 0 1.00 1249 873 label -(Bridge Rectifier) {/Helvetica cf} 2 24 0 1.00 369 1273 label -1.00 -1 961 969 [(1.0) (\265) ] Capacitor -1.00 0 1041 969 [(10) (\265) ] Polarized -(1N914) {hS} (\327) {hS} (4) {/HelveticaISO cf} 6 24 0 1.00 849 1145 label -pgsave restore showpage - -%%Trailer -XCIRCsave restore -%%EOF diff --git a/tutorial/psfiles/buses.ps b/tutorial/psfiles/buses.ps deleted file mode 100644 index 76b21a7..0000000 --- a/tutorial/psfiles/buses.ps +++ /dev/null @@ -1,245 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: buses -%%Creator: Xcircuit v2.3 -%%CreationDate: Mon Nov 5 11:36:02 2001 -%%Pages: 1 -%%BoundingBox: 68 68 712 496 -%%DocumentNeededResources: font Helvetica font Helvetica-Oblique -%%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 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 -/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 { 4 index 32 and 0 ne hlevel 0 eq or { /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. - -/dbus1 { -% -608 0 1216 42 bbox -begingate -1.000 0.000 0.000 scb -(d[3]) {/Helvetica cf} 2 23 0 1.00 -608 -64 pinlabel -(d[2]) {/Helvetica cf} 2 23 0 1.00 -608 -32 pinlabel -(d[1]) {/Helvetica cf} 2 23 0 1.00 -608 0 pinlabel -(d[0]) {/Helvetica cf} 2 23 0 1.00 -608 32 pinlabel -(d[3]) {/Helvetica cf} 2 20 0 1.00 608 -64 pinlabel -(d[2]) {/Helvetica cf} 2 20 0 1.00 608 -32 pinlabel -(d[1]) {/Helvetica cf} 2 20 0 1.00 608 0 pinlabel -(d[0]) {/Helvetica cf} 2 20 0 1.00 608 32 pinlabel -sce -(data bus) {/Helvetica cf} 2 17 0 1.00 -64 16 label -1 1.00 -608 0 608 0 2 polygon -endgate -} def - -/chip1 { -% -96 -96 192 192 bbox -(?) 1 beginparm -0 1.00 -96 -96 -96 96 96 96 96 -96 4 polygon -( data ) {/Helvetica cf} 2 23 0 1.00 96 0 label -1.000 0.000 0.000 scb -(p0) {/Helvetica cf} 2 20 0 1.00 96 48 pinlabel -(p1) {/Helvetica cf} 2 20 0 1.00 96 16 pinlabel -(p2) {/Helvetica cf} 2 20 0 1.00 96 -16 pinlabel -(p3) {/Helvetica cf} 2 20 0 1.00 96 -48 pinlabel -sce -mark v1 (Chip ) {/Helvetica cf} ctmk 21 0 1.00 0 64 label -endgate -} def - -/arrowhead { -% -12 -32 24 36 bbox -% trivial -begingate -8 -28 beginpath -3 -18 3 -15 0 0 curveto --3 -15 -3 -18 -8 -28 curveto --2 -26 2 -26 8 -28 curveto -249 1.00 endpath -endgate -} def - -/arrow { -% -12 -40 24 80 bbox -% trivial -begingate -1 0.80 0 -40 0 20 2 polygon -1.00 0 0 40 arrowhead -endgate -} def - -%%Page: 1 1 -%%PageOrientation: Portrait -/pgsave save def bop -% 1152 692 offsets -1.0000 inchscale -2.6000 setlinewidth - -1 1.00 288 756 288 884 672 884 672 756 4 polygon -1 1.00 352 1012 352 884 608 884 608 1012 4 polygon -1 1.00 432 1012 432 884 752 884 752 756 4 polygon -1 1.00 224 1012 224 884 864 884 864 756 4 polygon -1 2.00 224 884 864 884 2 polygon -1 1.00 1312 1108 1312 980 1728 980 1728 596 1888 596 5 polygon -1 1.00 1408 1108 1408 980 1728 980 1728 692 1888 692 5 polygon -1 1.00 1584 964 1600 996 2 polygon -(2) {/Helvetica cf} 2 17 0 1.00 1584 996 label -1.000 0.000 0.000 scb -(b\(1\)) {/Helvetica cf} 2 17 0 1.00 1312 1108 pinlabel -(b\(2\)) {/Helvetica cf} 2 17 0 1.00 1408 1108 pinlabel -(a[0]) {/Helvetica cf} 2 17 0 1.00 224 1012 pinlabel -(a[1]) {/Helvetica cf} 2 17 0 1.00 352 1012 pinlabel -(a[2]) {/Helvetica cf} 2 17 0 1.00 432 1012 pinlabel -(a[3]) {/Helvetica cf} 2 29 0 1.00 288 756 pinlabel -sce -1.00 0 1024 340 dbus1 -1.00 0 320 324 [(1) ] chip1 -1.00 -1 1728 324 [(2) ] chip1 -(Three styles of buses in xcircuit) {ul} {/Helvetica cf} 3 21 0 1.00 992 1300 -label -(1\) \252standard\272 method) {/Helvetica cf} 2 16 0 1.00 192 1172 label -(" to see actual pins.) {/Helvetica cf} (Options->Show Pin Positions) -{/Helvetica-Oblique cf} (2\) \252sneaky\272 method. Use ") {/Helvetica cf} 6 -16 0 1.00 224 500 label -1.00 120 448 388 arrow -(real pin position \(normally not seen\)) {/Helvetica cf} 2 16 0 0.80 496 420 -label -1.00 60 992 308 arrow -(named the same.) {CR} (Pins on either end are) {CR} (The bus is a subcircuit.) -{/Helvetica cf} 6 28 0 0.80 1040 276 label -pgsave restore showpage - -%%Trailer -XCIRCsave restore -%%EOF diff --git a/tutorial/psfiles/dff.ps b/tutorial/psfiles/dff.ps deleted file mode 100644 index a15ffed..0000000 --- a/tutorial/psfiles/dff.ps +++ /dev/null @@ -1,228 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: dff -%%Creator: Xcircuit v2.5 -%%CreationDate: Tue Dec 18 16:50:59 2001 -%%Pages: 1 -%%BoundingBox: 68 68 371 229 -%%DocumentNeededResources: font Helvetica font Times-Roman -%%EndComments -%%BeginProlog -% -% PostScript prolog for output from xcircuit -% Version: 2.4 -% -% 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.4 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 neg /rotval exch def - /just exch def just 16 and 0 gt {gsave rotval rotate 0 1 dtransform - gsave pagemat setmatrix idtransform exch grestore 1 0 dtransform - gsave pagemat setmatrix idtransform exch grestore dup abs 1e-9 lt - {pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse grestore {-1 /rotval - rotval neg def /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse - exch -1e-9 lt {-1 /rotval rotval neg def /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 1 0 dtransform exch atan rotate - {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 rotval rotate Kn currentpoint - translate /showflag 1 def /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 { 4 index 32 and 0 ne hlevel 0 eq or { /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 neg rotate dup abs 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. - -/quadnand { -% -64 -48 128 96 bbox -(?) (1) (1) (2) (3) 5 beginparm -1 1.00 0 -48 -64 -48 -64 48 0 48 4 polygon -1 1.00 56 0 8 0.00 360.00 xcarc -1 1.00 0 0 48 -90.00 90.00 xcarc -1.000 0.000 0.000 scb -mark v5 {/Times-Roman cf} ctmk 4 0 1.00 64 0 pinlabel -mark v3 {/Times-Roman cf} ctmk 7 0 1.00 -64 32 pinlabel -mark v4 {/Times-Roman cf} ctmk 7 0 1.00 -64 -32 pinlabel -sce -mark v2 (-) v1 (pcb:U) {/Helvetica cf} ctmk 20 0 1.00 -80 -96 infolabel -mark v2 (7400-) {/Helvetica cf} ctmk 21 0 0.50 -8 0 label -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 - -/circle { -% -6 -12 28 24 bbox -% trivial -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 cf} 2 4 0 1.00 16 0 pinlabel -(out) {/Times-Roman cf} 2 7 0 1.00 0 0 pinlabel -endgate -} def - -%%Page: 1 1 -%%PageOrientation: Portrait -/pgsave save def bop -% 978 336 offsets -1.0000 inchscale -2.6000 setlinewidth - -1.00 0 450 240 [(?) (4) (12) (13) (11) ] quadnand -1.00 0 450 432 [(?) (3) (9) (10) (8) ] quadnand -1.00 0 770 432 [(?) (2) (4) (5) (6) ] quadnand -1.00 0 770 240 [(?) (1) (1) (2) (3) ] quadnand -1 1.00 834 240 882 240 882 288 674 352 674 400 706 400 6 polygon -1 1.00 834 432 882 432 882 384 674 320 674 272 706 272 6 polygon -1 1.00 386 464 306 464 2 polygon -1 1.00 386 208 306 208 2 polygon -1.00 0 882 432 dot -1.00 0 882 240 dot -1.00 0 914 432 circle -1.00 0 914 240 circle --1.00 0 306 464 circle --1.00 0 306 208 circle -1 1.00 882 432 914 432 2 polygon -1 1.00 882 240 914 240 2 polygon -1 1.00 706 464 594 464 562 432 514 432 4 polygon -1 1.00 706 208 594 208 562 240 514 240 4 polygon -1 1.00 546 432 546 336 354 336 354 272 386 272 5 polygon -1 1.00 386 400 322 400 322 208 3 polygon -1.00 0 322 208 dot -1.00 0 546 432 dot -1.000 0.000 0.000 scb -(Q) {/Helvetica cf} 2 20 0 1.00 930 432 pinlabel -(Q) {ol} {/Helvetica cf} 3 20 0 1.00 930 240 pinlabel -(D) {/Helvetica cf} 2 23 0 1.00 290 464 pinlabel -(CLK) {/Helvetica cf} 2 23 0 1.00 290 208 pinlabel -sce -(D-FF implementation in 7400 IC) {/Helvetica cf} 2 17 0 1.00 594 576 label -pgsave restore showpage - -%%Trailer -XCIRCsave restore -%%EOF diff --git a/tutorial/psfiles/filter.ps b/tutorial/psfiles/filter.ps deleted file mode 100644 index deb06e5..0000000 --- a/tutorial/psfiles/filter.ps +++ /dev/null @@ -1,260 +0,0 @@ -%%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. - -/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 diff --git a/tutorial/psfiles/integrator.ps b/tutorial/psfiles/integrator.ps deleted file mode 100644 index c290875..0000000 --- a/tutorial/psfiles/integrator.ps +++ /dev/null @@ -1,327 +0,0 @@ -%%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. - -/nmos { -% -64 -64 64 128 bbox -begingate -% 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 -(spice:M%i %pD %pG %pS GND nmos) {/Times-Roman 1.000 cf} 2 4 0 -244 -139 infolabel -(sim:n %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel -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 - -/pmos { -% -64 -64 64 128 bbox -begingate -% fundamental -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) {/Helvetica 1.000 cf} 2 9 0 0 64 pinlabel -(D) {/Helvetica 1.000 cf} 2 13 0 0 -64 pinlabel -(G) {/Helvetica 1.000 cf} 2 7 0 -64 0 pinlabel -(spice:M%i %pD %pG %pS Vdd pmos) {/Times-Roman 1.000 cf} 2 4 0 -196 -139 infolabel -(sim:p %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -196 -187 infolabel -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 - -/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 - -%%Page: wramp 1 -%%PageOrientation: Portrait -/pgsave save def bop -% 454 416 offsets -1.0000 inchscale -2.6000 setlinewidth - -1.00 0 406 480 nmos -1.00 -1 502 480 nmos -1 1.00 406 416 502 416 2 polygon -1.00 0 454 352 nmos -1.00 0 454 288 gnd -1.00 0 406 608 pmos -1.00 -1 502 608 pmos -1.00 0 406 672 vdd -1.00 0 502 672 vdd -1.00 0 742 608 pmos -1.00 -1 166 608 pmos -1 1.00 230 608 342 608 2 polygon -1 1.00 566 608 678 608 2 polygon -1 1.00 614 608 614 544 502 544 3 polygon -1 1.00 406 544 294 544 294 608 3 polygon -1.00 0 166 672 vdd -1.00 0 742 672 vdd -1.00 0 742 192 nmos -1.00 -1 166 192 nmos -1 1.00 166 256 166 544 2 polygon -1 1.00 742 544 742 256 2 polygon -1 1.00 742 448 806 448 2 polygon -1.00 0 166 128 gnd -1.00 0 742 128 gnd -1 1.00 678 192 230 192 2 polygon -1 1.00 166 256 294 256 294 192 3 polygon -1.00 0 294 192 dot -1.00 0 166 256 dot -1.00 0 454 416 dot -1.00 0 294 608 dot -1.00 0 406 544 dot -1.00 0 502 544 dot -1.00 0 614 608 dot -1.00 0 742 448 dot -1.00 0 566 480 circle -1.00 -1 342 480 circle -1.00 -1 390 352 circle -1.00 0 806 448 circle -1.000 0.000 0.000 scb -(in.p) {/Helvetica 1.000 cf} 2 20 0 582 480 pinlabel -(in.m) {/Helvetica 1.000 cf} 2 23 0 326 480 pinlabel -(bias) {/Helvetica 1.000 cf} 2 23 0 374 352 pinlabel -(out) {/Helvetica 1.000 cf} 2 20 0 822 448 pinlabel -sce -pgsave restore showpage - -/wramp { -% -80 -80 160 160 bbox -begingate -0 1.00 -80 -80 -80 80 48 24 48 -24 4 polygon -1 1.00 0 -80 0 -45 2 polygon -1 1.00 48 0 80 0 2 polygon -(-) {/Symbol 1.000 cf} 2 5 0 -61 50 label -(+) {/Symbol 1.000 cf} 2 5 0 -61 -46 label -1.000 0.000 0.000 scb -(in.m) {/Times-Roman 1.000 cf} 2 7 0 -80 48 pinlabel -(in.p) {/Times-Roman 1.000 cf} 2 7 0 -80 -48 pinlabel -(out) {/Times-Roman 1.000 cf} 2 4 0 80 0 pinlabel -(bias) {/Times-Roman 1.000 cf} 2 13 0 0 -80 pinlabel -sce -endgate -} def - -/capacitor { -% -32 -64 64 128 bbox -begingate -% 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 -32 -6 32 -6 2 polygon -1.000 0.000 0.000 scb -(c.1) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel -(c.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel -(spice:C%i %pc.1 %pc.2 1.0P) {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel -(sim:c %pc.1 %pc.2) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel -sce -endgate -} def - -%%Page: 2 2 -%%PageOrientation: Portrait -/pgsave save def bop -% 294 390 offsets -1.0000 inchscale -2.6000 setlinewidth - -1.00 0 310 390 wramp -1 1.00 230 438 198 438 198 518 422 518 422 390 5 polygon -1 1.00 390 390 454 390 2 polygon -1.00 0 422 390 dot -1.00 0 454 390 circle -1.00 -1 166 342 circle -1.00 -271 310 310 circle -1.000 0.000 0.000 scb -(Bias) {/Helvetica 1.000 cf} 2 29 0 310 294 pinlabel -sce -1 1.00 166 342 230 342 2 polygon -1.000 0.000 0.000 scb -(Input) {/Helvetica 1.000 cf} 2 23 0 150 342 pinlabel -(Output) {/Helvetica 1.000 cf} 2 20 0 470 390 pinlabel -sce -(Integrator) {/Helvetica 1.000 cf} 2 25 0 294 582 label -1.00 0 422 326 capacitor -1.00 0 422 262 gnd -pgsave restore showpage - -%%Trailer -XCIRCsave restore -%%EOF diff --git a/tutorial/psfiles/powersup.ps b/tutorial/psfiles/powersup.ps deleted file mode 100644 index d568156..0000000 --- a/tutorial/psfiles/powersup.ps +++ /dev/null @@ -1,429 +0,0 @@ -%!PS-Adobe-3.0 -%%Title: powersup -%%Creator: Xcircuit v2.3 -%%CreationDate: Wed Jul 18 14:38:19 2001 -%%Pages: 2 -%%BoundingBox: 118 314 494 478 -%%DocumentNeededResources: font Helvetica font Times-Roman font Times-RomanISO -%%+ font HelveticaISO font Symbol -%%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 - -/Times-Roman findfont dup length dict begin -{1 index /FID ne {def} {pop pop} ifelse} forall -/Encoding ISOLatin1Encoding def currentdict end -/Times-RomanISO exch definefont pop - -/Helvetica findfont dup length dict begin -{1 index /FID ne {def} {pop pop} ifelse} forall -/Encoding ISOLatin1Encoding def currentdict end -/HelveticaISO exch definefont pop - -% XCircuit output starts here. - -/inductor { -% -14 -64 29 112 bbox -begingate -1 1.00 20 -28 20 -44 0 -48 0 -24 spline -1 1.00 -20 -20 -20 -32 0 -28 0 -24 spline -1 1.00 20 32 20 16 0 12 0 36 spline -1 1.00 20 12 20 -4 0 -8 0 16 spline -1 1.00 20 -8 20 -24 0 -28 0 -4 spline -1 1.00 -20 20 -20 8 0 12 0 16 spline -1 1.00 -20 0 -20 -12 0 -8 0 -4 spline -1 1.00 0 -48 0 -64 2 polygon -1 1.00 0 36 0 48 2 polygon -1.000 0.000 0.000 scb -(l.1) {/Times-Roman cf} 2 9 0 1.00 0 48 pinlabel -(l.2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel -sce -(spice:L%i %pl.1 %pl.2 1.0U) {/Times-Roman cf} 2 0 0 1.00 -208 -160 infolabel -sce -(sim:l %pl.1 %pl.2) {/Times-Roman cf} 2 0 0 1.00 -208 -208 infolabel -endgate -} def - -/Transformer { -% -62 -64 108 112 bbox -(?) 1 beginparm -1.00 0 -48 0 inductor -1 1.00 -16 48 -16 -64 2 polygon -1 1.00 0 48 0 -64 2 polygon -1.00 180 32 -16 inductor -1.000 0.000 0.000 scb -(1) {/Helvetica cf} 2 25 0 1.00 -48 48 pinlabel -(2) {/Helvetica cf} 2 29 0 1.00 -48 -64 pinlabel -(3) {/Helvetica cf} 2 25 0 1.00 32 48 pinlabel -(4) {/Helvetica cf} 2 29 0 1.00 32 -64 pinlabel -sce -mark v1 (pcb:T) {/Times-Roman cf} ctmk 20 0 1.00 -96 -160 infolabel -endgate -} def - -/circle { -% -6 -12 28 24 bbox -% trivial -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 cf} 2 4 0 1.00 16 0 pinlabel -(out) {/Times-Roman cf} 2 7 0 1.00 0 0 pinlabel -endgate -} def - -/diode { -% -18 -48 36 96 bbox -(?) 1 beginparm -248 1.00 -18 -16 0 16 18 -16 3 polygon -1 1.00 0 -48 0 -16 2 polygon -1 1.00 0 48 0 16 2 polygon -1 1.00 -18 16 18 16 2 polygon -1.000 0.000 0.000 scb -(1) {/Times-Roman cf} 2 9 0 1.00 0 48 pinlabel -(2) {/Times-Roman cf} 2 13 0 1.00 0 -48 pinlabel -sce -mark v1 (pcb:D) {/Helvetica cf} ctmk 20 0 1.00 -64 -144 infolabel -endgate -} def - -/rectifier { -% -112 -48 192 192 bbox -begingate -1.00 315 -64 96 diode -1.00 225 32 96 diode -1.00 225 -64 0 diode -1.00 315 32 0 diode -1 1.00 -30 130 -16 144 -2 130 3 polygon -1 1.00 66 62 80 48 66 34 3 polygon -1 1.00 -2 -34 -16 -48 -30 -34 3 polygon -1 1.00 -98 34 -112 48 -98 62 3 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 - -/jumper { -% -4 -14 18 28 bbox -% trivial -begingate -1 1.00 0 0 10 -90.00 90.00 xcarc -1 1.00 0 10 0 16 2 polygon -1 1.00 0 -10 0 -16 2 polygon -1.000 0.000 0.000 scb -(a) {/Times-Roman cf} 2 1 0 1.00 0 16 pinlabel -(a) {/Times-Roman cf} 2 13 0 1.00 0 -16 pinlabel -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 - -/Capacitor { -% -32 -64 186 128 bbox -(1.0) (p) (?) 3 beginparm -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 -32 -6 32 -6 2 polygon -1.000 0.000 0.000 scb -(1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel -(2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel -sce -mark v2 v1 ( %p1 %p2 ) v3 (spice:C) {/Times-RomanISO cf} ctmk 4 0 1.00 -208 --160 infolabel -sce -(sim:c %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel -mark (F) v2 {hS} v1 {/Times-RomanISO cf} ctmk 20 0 1.00 48 0 label -sce -mark v3 (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel -endgate -} def - -/Polarized { -% -32 -64 176 128 bbox -(1.0) (p) (?) 3 beginparm -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 -(1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel -(2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel -sce -mark v2 v1 ( %p1 %p2 ) v3 (spice:C) {/Times-RomanISO cf} ctmk 4 0 1.00 -208 --160 infolabel -sce -(sim:e %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel -mark (F) v2 {hS} v1 {/Times-RomanISO cf} ctmk 20 0 1.00 48 0 label -sce -mark v3 (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel -endgate -} def - -%%Page: power_supply 1 -%%PageOrientation: Portrait -/pgsave save def bop -% power_supply is_symbol -% 529 953 offsets -1.0000 inchscale -2.6000 setlinewidth - -1.00 0 497 1065 Transformer -1 1.00 449 1113 449 1193 401 1193 3 polygon -1 1.00 449 1001 449 937 401 937 3 polygon -1.00 -1 401 1193 circle -1.00 -1 401 937 circle -1.000 0.000 0.000 scb -(+) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 385 1193 pinlabel -(-) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 385 937 pinlabel -sce -1.00 0 785 1017 rectifier -1 1.00 529 1113 529 1193 769 1193 769 1161 4 polygon -1 1.00 529 1001 529 937 769 937 769 969 4 polygon -1.00 0 769 969 dot -1.00 0 769 1161 dot -1 1.00 673 1065 641 1065 641 953 3 polygon -1 1.00 641 921 641 873 1201 873 3 polygon -1 1.00 865 1065 1201 1065 2 polygon -1 1.00 961 1065 961 1033 2 polygon -1 1.00 1041 1065 1041 1033 2 polygon -1 1.00 961 905 961 873 2 polygon -1 1.00 1041 905 1041 873 2 polygon -1.00 0 1041 873 dot -1.00 0 961 873 dot -1.00 0 961 1065 dot -1.00 0 1041 1065 dot -1.00 0 865 1065 dot -1.00 0 673 1065 dot -1.00 -1 641 937 jumper -1.00 0 641 873 gnd -1.00 0 641 873 dot -1.00 0 1201 873 circle -1.00 0 1201 1065 circle -1.000 0.000 0.000 scb -(Vout) {0 -80 Kn} {/Helvetica cf} 3 28 0 1.00 1217 1065 pinlabel -sce -(+) {/Symbol cf} 2 20 0 1.00 1249 1065 label -(-) {/Symbol cf} 2 20 0 1.00 1249 873 label -(Bridge Rectifier) {/Helvetica cf} 2 24 0 1.00 369 1273 label -1.00 -1 961 969 [(1.0) (\265) ] Capacitor -1.00 0 1041 969 [(10) (\265) ] Polarized -(1N914) {hS} (\327) {hS} (4) {/HelveticaISO cf} 6 24 0 1.00 849 1145 label -pgsave restore showpage - -/power_supply { -% -224 -208 416 416 bbox -% power_supply is_schematic -begingate -0 1.00 -224 -208 -224 208 192 208 192 -208 4 polygon -(+) {/Symbol cf} (V) {/Helvetica cf} 4 20 0 1.00 -192 112 label -(-) {/Symbol cf} (V) {/Helvetica cf} 4 20 0 1.00 -192 -112 label -1.000 0.000 0.000 scb -(+) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 -224 112 pinlabel -(-) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 -224 -112 pinlabel -sce -(power supply) {CR} (unregulated) {/Helvetica cf} 4 21 0 1.00 -16 16 label -1.000 0.000 0.000 scb -(Vout) {/Helvetica cf} 2 20 0 1.00 192 112 pinlabel -sce -(Vout) {/Helvetica cf} 2 23 0 1.00 160 112 label -endgate -} def - -/Resistor { -% -14 -64 157 128 bbox -(1.0) (k) (?) 3 beginparm -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 -(1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel -(2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel -sce -mark v2 v1 ( %p1 %p2 ) v3 (spice:R) {/Times-Roman cf} ctmk 4 0 1.00 -208 -160 -infolabel -sce -(sim:R %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel -mark (W) {/Symbol cf} v2 {hS} v1 {/Times-Roman cf} ctmk 20 0 1.00 32 0 label -sce -mark v3 (pcb:R) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel -endgate -} def - -%%Page: 2 2 -%%PageOrientation: Portrait -/pgsave save def bop -% 1166 848 offsets -1.0000 inchscale -2.6000 setlinewidth - -1.00 0 782 1056 power_supply -1 1.00 558 1168 414 1168 2 polygon -1 1.00 558 944 414 944 2 polygon -1.00 0 1166 1040 Resistor -1 1.00 974 1168 1166 1168 1166 1104 3 polygon -1.00 0 1166 976 gnd -(AC input) {/Helvetica cf} 2 21 0 1.00 398 1056 label -(+) {/Symbol cf} 2 21 0 1.00 398 1136 label -(-) {/Symbol cf} 2 21 0 1.00 398 976 label -1.00 -1 414 1168 circle -1.00 -1 414 944 circle -pgsave restore showpage - -%%Trailer -XCIRCsave restore -%%EOF diff --git a/tutorial/psfiles/test1.ps b/tutorial/psfiles/test1.ps deleted file mode 100644 index 5cc16f5..0000000 --- a/tutorial/psfiles/test1.ps +++ /dev/null @@ -1,154 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Title: test1 -%%Creator: Xcircuit v2.0 -%%CreationDate: Mon May 24 11:14:54 1999 -%%Pages: 1 -%%BoundingBox: 68 68 214 118 -%%DocumentNeededResources: font Times-Italic font Times-Roman -%%EndComments -%%BeginProlog -% -% PostScript prolog for output from xcircuit -% Version: 2.0 -% -% Electrical circuit (and otherwise general) drawing program -% -% Written by Tim Edwards 8/5/93--8/8/97 (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 2 mul 1 add copy 0 exch - { exch exec exch stringwidth pop add } 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 { { exec show } 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 { /pspc 20 def label /pspc 0 def } def -/pinglobal { pinlabel } def - -/begingate { gsave translate 0 0 moveto dup 0 lt {neg 1 sub -1 1 scale} if - rotate dup scale /pinlabel { pop pop pop pop 2 mul {pop} repeat} - def } bind def -/beginparm { -1 1 {1 add -1 roll def} for begingate } bind def -/endgate { grestore /pinlabel { /pspc 20 def - label /pspc 0 def } def } bind 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 - -/Symbol-Oblique /Symbol .167 fontslant - -% XCircuit output starts here. - -%%Page: 1 1 -%%PageOrientation: Portrait -/pgsave save def bop -% 448 96 offsets -1.0000 inchscale -2.6000 setlinewidth - -(\)) {qS} () {/Times-Roman 1.000 cf} (t) {/Times-Italic 1.000 cf} () {ns} (c) -{ss} () {/Times-Italic 1.000 cf} (pw) {/Symbol-Oblique 1.000 cf} (\) = sin\(2) -{/Times-Roman 1.000 cf} (x) {/Times-Italic 1.000 cf} (\() -{/Times-Roman 1.000 cf} () {qS} (f) {/Times-Italic 1.000 cf} -12 4 0 224 256 label -0 1.00 192 192 192 304 560 304 560 192 4 polygon -pgsave restore showpage - -%%Trailer -XCIRCsave restore -%%EOF diff --git a/tutorial/tutorial.html b/tutorial/tutorial.html deleted file mode 100644 index 421047b..0000000 --- a/tutorial/tutorial.html +++ /dev/null @@ -1,803 +0,0 @@ -<HTML> -<HEAD> - <STYLE type="text/css"> - H1 {color: maroon} - H2 {color: #007090} - H3 {color: #0050b0} - A.head {color: #0060a0} - </STYLE> -</HEAD> -<TITLE>XCircuit Tutorial Page</TITLE> -<BODY BACKGROUND=../giffiles/blpaper.gif> -<CENTER> -<A HREF=../xctitle.ps><IMG ALIGN=middle SRC=../xctitle.gif -ALT="The XCircuit Tutorial"></A> -<H1>The XCircuit Tutorial</H1> -</CENTER> -<HR> -<H2>Table of Contents</H2> -<UL> - <LI> <A HREF="#Download">Download</A> Download the tutorial - <LI> <A HREF="#Start">Getting Started</A> Introduction - <LI> <A HREF="#Task1">Task 1</A> Running XCircuit - <LI> <A HREF="#Task2">Task 2</A> Change an option from the menu - <LI> <A HREF="#Task3">Task 3</A> Draw a line - <LI> <A HREF="#Task4">Task 4</A> Move an object - <LI> <A HREF="#Task5">Task 5</A> Change the properties of a polygon - <LI> <A HREF="#Task6">Task 6</A> Change the page - <LI> <A HREF="#Task7">Task 7</A> Select an object from the user library - <LI> <A HREF="#Task8">Task 8</A> Use a keyboard macro to create an arc - <LI> <A HREF="#Task9">Task 9</A> Zooming and panning - <LI> <A HREF="#Task10">Task 10</A> Selection of multiple objects - <LI> <A HREF="#Task11">Task 11</A> Saving a file - <LI> <A HREF="#Task12">Task 12</A> Loading a file - <LI> <A HREF="#Task13">Task 13</A> Entering Text - <LI> <A HREF="#Task14">Task 14</A> Making curves and paths - <LI> <A HREF="#Task15">Task 15</A> Dealing with over/under arrangement of elements - <LI> <A HREF="#Task16">Task 16</A> Making user-defined objects - <LI> <A HREF="#Task17">Task 17</A> Editing objects and elements - <LI> <A HREF="#Task18">Task 18</A> Generating complex geometric shapes - <LI> <A HREF="#Task19">Task 19</A> Investigating other <B>xcircuit</B> commands - <LI> <A HREF=tutorial2.html>Schematic Capture Tutorial</A> - <LI> <A HREF=../features.html><B>xcircuit</B> list of features</A> - <LI> <A HREF=../trouble.html>Troubleshooting <B>xcircuit</B></A> -</UL> - -<H2><A NAME="Download">Download</A></H2> - -This download is the tar'd image of everything in the tutorial subdirectory, -including both the standard tutorial and the schematic capture tutorial. -Note that when untar'd, this will expand into a directory tree with top-level -directory named "tutorial". <P> - -<BLOCKQUOTE> - <BLOCKQUOTE> - <TABLE border="1" frame="box" rules="none" width="90%" cellspacing="0" - cellpadding="5" bgcolor="#ffffcc"> - <TBODY> - <TR> - <TD> File </TD> <TD> Revision </TD> <TD> Size </TD> <TD> Date </TD> - </TR> - <TR> - <TD> <A HREF=../tutorial.tar.gz>tutorial.tar.gz</A> </TD> - <TD> 1 </TD> - <TD> (432KB) </TD> - <TD> January 28, 2003 </TD> - </TR> - </TBODY> - </TABLE> - </BLOCKQUOTE> -</BLOCKQUOTE> - -<H2><A NAME="Start">Getting started</A></H2> -Welcome to xcircuit, the circuit drawing program by Tim Edwards. In order to -get the most out of this page, you should have already downloaded, compiled, -and installed the xcircuit program and its libraries. <P> - -<H3><A NAME="Task1">Task 1: Run the program</A></H3> -First, start xcircuit without any parameters: <TT>xcircuit</TT> <P> - -<IMG SRC=giffiles/tut1.gif><P> -The features of the xcircuit window are as follows: -<OL> - <LI> Along the top of the screen are buttons for pull-down menus called "File", - "Edit", "Text", "Options", and "Window". - <LI> At the top, beside the menu buttons, is a welcome message in the message - window telling you the version number of the program (Version 2.0). - <LI> On the bottom left is a message window telling you that you are currently - editing "Page 1". - <LI> On the rest of the bottom is a message window telling you that xcircuit - has just loaded the library "/usr/local/lib/xcircuit/builtins.lps" (this - may be in a different directory if xcircuit has not been installed in the - default directories). This message will disappear after about 10 seconds. - <LI> At the left and along the bottom are two <B>scrollbars</B> which report the - position of the drawing relative to the main window, and can be used - to reposition the drawing by clicking on the bar with any mouse button. - <I>Note:</I> Due to the length of time necessary to refresh the drawing - window, the scrollbars cannot be "dragged". - <LI> In the center is a white <B>drawing area</B> with lightly-colored grid and - axis lines. -</OL> -There are two types of mouse button-pushing used in xcircuit. When a button -is pushed and released quickly, I will call it <B>"tapping"</B>. When a button -is pushed and held down, I will call it a <B>"pressing"</B>. Since pressing -a button is usually performed in order to move objects around on the screen, -I will sometimes refer to it as <B>"dragging"</B> the object. <P> -<I>Note:</I> Xcircuit does <B>not</B> use double-clicking. - -<H3><A NAME="Task2">Task 2: Change an option from the menu</A></H3> -Acquaint yourself with the arrangement of menu buttons and pulldown menus. -<OL> - <LI> Press the button labeled "Options" with <B>mouse button 1</B> and hold down - the button while you drag the cursor around with the mouse. - <LI> Keeping the mouse button pressed down, move down to the "Elements" button. - Each button will highlight as you pass through it. - <LI> Put the cursor on top of the arrow icon at the right side of the "Elements" - button. You should see a secondary menu titled "Elements" pop up. The - title is the topmost entry of the menu. It has no function and does not - highlight when the cursor is overtop it. - <LI> Keep moving down to the "Color" button and again move the cursor over - the arrow icon. The third and final menu of colors will pop up. Note - that one item, "Inherit Color" has a check mark on it. The check mark - denotes that this entry is the <I>current default color</I>. - <LI> Move down to the purple color button and release the mouse button there. - The menus will disappear. You have just changed the default drawing - color to purple. - <LI> Repeat the procedure up to step 4. When you enter the "color" menu you - will see that the purple color button is now checked, showing that - purple is the default drawing color. -</OL> -Throughout the tutorial I will refer to the menu items using the pulldown -hierarchy, with an arrow ("->") wherever you need to go to a submenu. So -the "Inherit Color" menu item would be referred to as -"Options->Elements->Color->Inherit Color". - -<H3><A NAME="Task3">Task 3: Draw a line</A></H3> -Now that you understand the function of the menu buttons, it's time to learn -how to draw something. The simplest and most common thing to draw in xcircuit -is a polygon. -<OL> - <LI> Tap <B>mouse button 1</B> anywhere in the drawing area and release it - immediately. If you wait too long to release the button, xcircuit will - interpret it as trying to "grab" an element on the screen, and nothing - will happen (because there aren't any elements yet to grab). - <LI> Move the cursor around the screen. A purple line (because you chose - purple to be the default color in Task 2) will appear between the - origin point and will track with the cursor. - <LI> Tap <B>mouse button 1</B> again to finish a line segment. A new line - will begin at the point the first one left off. Do this several times - to form a polygon. Finish the polygon by tapping <B>mouse button 2</B>. - <LI> Repeat steps 1 through 3 but finish by tapping <B>mouse button 3</B>. - The line you have just created will disappear. You have just - <B>cancelled</B> the operation. -</OL> - -<IMG SRC=giffiles/poly1.gif ALIGN=CENTER> A purple polygon <P> - -For most operations in xcircuit, tapping <B>mouse button 1</B> will begin or -continue an operation, tapping <B>mouse button 2</B> will finish it, and -tapping <B>mouse button 3</B> will cancel it. The behavior can be slightly -different depending on the circumstance, and the behavior for <B>pressing</B> -buttons 1 and 2 is very different, as demonstrated in Tasks 4 and 5. - -<H3><A NAME="Task4">Task 4: Move an object</A></H3> -<B>mouse button 1</B> does have one very different function than that described -in the last task. It can be used to "grab" hold of an object for moving. -<OL> - <LI> Press <B>mouse button 1</B> close to a line of the polygon you just - drew. Hold down the button. The line should turn gold colored, - indicating that it has been "selected". If instead nothing happens, - then the cursor is too far away from the line. Releasing the button - releases the object. - <LI> Try grabbing and releasing the polygon from different distances to get - a feel for how close you must be to the object in order to grab it. - <LI> Now grab the polygon, and with the mouse button held down, move the - cursor across the screen. The polygon will follow the cursor. This - is how you move an object in xcircuit. -</OL> - -<H3><A NAME="Task5">Task 5: Change the properties of a polygon</A></H3> -<B>mouse button 2</B> also has a selection funtion; in fact, it has two of -them. In the normal drawing mode, it can be used to select objects for editing -or changing properties. In this task you will use <B>mouse button 2</B> to -select the polygon you just created in order to make it a dashed line. -<OL> - <LI> Select the object by tapping <B>mouse button 2</B> with the cursor near - to the object. The object will turn gold, indicating that it has been - selected. - <LI> Tap <B>mouse button 3</B>, and the selection will be canceled. - <LI> Investigate the other form of selection by pressing <B>mouse button 2</B> - starting below and to the left of the polygon, and dragging the cursor - to the top and right of the polygon. A green box will follow the - movement of the cursor. - <LI> When the box completely surrounds <I>at least one</I> of the endpoints - of any line segment of the polygon, release the button. The polygon - should be selected. - <LI> Click <B>mouse button 3</B> to deselect the object. - <LI> Repeat steps 3 through 5, noting that if no endpoint of the polygon - is contained within the <B>select box</B>, then the polygon will not - be selected. - <LI> Select the polygon but do not deselect it. - <LI> Go to the "Options->Elements->Border" submenu and select option - "Dashed". When you release the button, the polygon will be drawn - in dashed lines, and it will no longer be selected. - <LI> Experiment with the different Colors, Fill-styles, and Border-styles - available in the menus. Some of the many varieties are shown below. -</OL> - -<IMG SRC=giffiles/poly2.gif ALIGN=TOP> More purple polygons. <BR> Top left: original. - Top right: dashed. <BR> Center left: closed. Center right: stippled - (50% stipple). <BR> Bottom left: opaque stippled. Bottom right: - filled solid. <P> - -<H3><A NAME="Task6">Task 6: Change the page</A></H3> -Xcircuit has multiple pages. There are two ways to change the current -drawing page, from a keyboard macro convenience function, or from the -menu. -<OL> - <LI> Select the menu item "Window->Goto Page->Page 2". The polygon - you just drew on Page 1 will disappear, and you will be on a - clean page, with the bottom left-hand window saying that you - are editing "Page 2". - <LI> Go back to Page 1 using the keyboard macro: With the cursor - in the drawing area, press the "1" key. You will be back on - page one. - <LI> Keys "1" through "9" and "0" will get you instantly to pages - 1 through 10, respectively. - <LI> End this task on Page 2, which is currently empty. -</OL> - -<H3><A NAME="Task7">Task 7: Select an object from the user library</A></H3> -Another common task in xcircuit is to grab an object from the object -library and place it on the drawing. -<OL> - <LI> Select the "Window->Show Library" button from the menu, or press the - "l" (that's "ell" as in "library") key in the drawing window. Note - that the menu button has - "(l)" written after "Show Library", indicating that the <B>keyboard - macro</B> "l" has the same function as the menu button. Generally, - keyboard macros, once memorized, are more convenient to use than - their menu button counterparts. Almost always, the letter or symbol - used for the macro is meaningful and easy to remember (like "a" for - "arc", "s" for "spline", "p" for "pan", "c" for "copy", etc.). - <LI> A page will appear, showing a number of circuit objects in the - built-in object library. - <LI> Grab one object by moving the cursor over top it and pressing and - holding <B>mouse button 1</B>. As soon as the button is pressed, - the object library will disappear, and you will be dragging the - object around Page 2, from which you called up the library. When - you release the button, the object will be deselected. Place it - away from the polygon you drew in the previous tasks. - <LI> Select the object by tapping on it with <B>mouse button 2</B>. - Try changing the border style to dashed. You will see that - nothing happens. This is because object instances from the - library are <I>made up of</I> basic elements like polygons, - arcs, and splines, but they are <B>composite</B> objects which - do not have properties like "Fill-style" and "Border-style". - However, object instances do have the property of color, and - also the property "size" which simple elements like the polygon - do not have. - <LI> Select the object again (if you have not already done so), and - then select the menu item "Options->Elements->Object Size". - <LI> A window will pop up asking you for an object size. Place the - cursor somewhere inside the popup window and change the default - size of "1.00" to "1.5". - <LI> Press the "Okay" button. The popup window will disappear and - the object will now be 1.5 times its original size (that is - to say, its length and width will each be 1.5 times their - previous value). -</OL> - -<CENTER> -<IMG SRC=giffiles/lib1.gif> <BR>Part of the default circuits built-in library. <P> -</CENTER> - -<H3><A NAME="Task8">Task 8: Use a keyboard macro to create an arc</A></H3> -As mentioned above, keyboard macros are generally easier to use than -their menu-button counterparts. You will create an arc in both fashions -to show the difference. -<OL> - <LI> Select the menu item "Edit->Make Arc". - <LI> The information window at the bottom will say "Click button 1 - and drag to create arc". - <LI> Place the cursor where you want the arc center to be and press it. - While holding it down, drag the cursor around the screen. An arc - will follow the cursor. - <LI> Release the mouse button. You will now be editing the angle of the - first endpoint. If you just want a circle, tap <B>mouse button 2</B> - to end. If you keep pressing <B>mouse button 1</B>, you will be - able to edit, in turn, all the properties of the arc such as - endpoint positions and ellipse axis. - <LI> Now, create an arc by tapping the "a" key while the cursor is in the - drawing area. The main difference is that <B>mouse button 1</B> is - not held down while you form the radius of the arc. Otherwise, - the arc can be edited as before. -</OL> - -<IMG SRC=giffiles/arcs1.gif ALIGN=TOP> Some differenct arcs. - <BR> Top left: linewidth of 1.5, first endpoint at 90 degrees. - Top right: closed arc. - <BR> Bottom left: red circle. - Bottom right: blue ellipse. <P> - -<H3><A NAME="Task9">Task 9: Zooming and panning</A></H3> -<OL> - <LI> Pan the screen to be centered on the arc by placing the cursor close to - the center of the arc and tapping the "p" key. - <LI> Pan the screen by selecting menu item "Window->Center Pan" and then - tapping <B>mouse button 1</B> on the point of the drawing area that - you want to be the new center of the screen. - <LI> Tap the "Z" and "z" keys to zoom in and out, or select the menu items - "Window->Zoom In" and "Window->Zoom Out". Note how the scrollbars - on the side and bottom of the screen change with the scale of the - drawing. - <LI> Pan the screen by tapping any mouse button on either of the scrollbars. - Note how this function is similar to the "Pan" function. - <LI> Zoom to a selected area of the screen by making a green selection box - like you did in Task 5, step 3. However, instead of releasing the - button in order to make the selection, type the "Z" key while the - mouse button is still pressed down. The screen area will zoom to - the area of the green box. - <LI> Alternately, choose "Window->Zoom Box" from the menu. Then press - any mouse button and drag to generate the green selection box. When - the button is released, the screen area will zoom to the area of the - green box. -</OL> - -<H3><A NAME="Task10">Task 10: Selection of multiple objects</A></H3> -<OL> - <LI> Clear the current page by choosing the menu item "File->Clear Page". - There is no keyboard macro for this command, to prevent accidental - erasure of the screen (which cannot be undeleted). - <LI> Grab several objects from the library (see Task 7) and place them - on top of each other in the middle of the page. - <LI> Decide on one object which you will move, leaving the others where - they are. - <LI> Now press <B>mouse button 1</B> as if you were going to select the - object you want to move. Because the command is ambiguous---the - program doesn't know which one or ones of the objects you really - want to select---the program will query you one by one for which - objects you want to select. - <LI> One object will turn blue, the cursor will become a question mark, - and the information bar at the bottom will read, for example, - "Click to accetp/reject: 1 of 3" if the program found three - objects under the cursor. Release the mouse button at this - point. - <LI> If the object that you want to select and move is colored blue, - click <B>mouse button 2</B>. If an object that you <I>don't</I> - want to select and move is colored blue, click <B>mouse button - 3</B>. - <LI> When you have chosen or rejected each of the objects, the cursor - will become a circle. You may now press and hold <B>mouse button - 1</B> and continue with the intended move. - <LI> Try this several times to get used to it. -</OL> - -<CENTER> -<IMG SRC=giffiles/select1.gif> <BR> Three objects simultaneously selected. <BR> </CENTER> - The gold-colored gate has already been selected; the program is now prompting - the user for confirmation to add the blue-colored object to the selection. <P> -<CENTER> -<IMG SRC=giffiles/select2.gif> <BR> Message window when selecting multiple objects. -</CENTER><P> - -<H3><A NAME="Task11">Task 11: Saving a file</A></H3> -Since the main purpose of xcircuit is to create publishable-quality picutures, -it is necessary to understand a little bit about the PostScript output which -it writes. First I will show you how to save and load a file. - -<OL> - <LI> Choose a page which you have been drawing on, or create a drawing to - save. - <LI> Select the menu item "File->Write Xcircuit PS". You will get a popup - window that looks like the figure below. <BR> - <IMG SRC=giffiles/save1.gif ALIGN=CENTER><BR>The file properties popup window. - <LI> If you tap the button labeled "Write". You will get a message in the - bottom message window saying "Warning: Enter a new name". Nothing - has been written at this point. - <LI> Change the filename. Move the cursor over the window containing the - filename. Delete the current file name and type in a new one. - When you are done, either hit the <TT>RETURN</TT> key or tap the - button labeled "Okay" (both actions have the same effect). - <LI> <I>Important note:</I> If the name has <B>no</B> extension, an - extension "<TT>.ps</TT>" will automatically be added when the file - is written. If an extension, for instance "<TT>.eps</TT>", is written - in the filename, then it will be used. - <LI> When you change the filename, the page label will be changed to - match the filename, and the bottom left-hand message window will - now say "Editing: " followed by the page label name, followed by - the page number in parentheses. <BR> - <IMG SRC=giffiles/save2.gif ALIGN=CENTER><BR>Changes to scale and filename. - <LI> If the filename you chose already exists on the disk, the button - which previously was labeled "Write File" will now say "Overwrite - File", the computer will beep, and the bottom message window will - say "Warning: File exists". - <LI> Tap the button labeled "Close". The window disappears; because - you did not tap the "Write File" button, nothing was written, - although the filename change has been registered. - <LI> Select "File->Write Xcircuit PS" again to bring the window back. - This time, tap the "Write File" button. The file will be written - to the disk current directory, and the button which previously - said "Close" will now say "Done". - <LI> The file which has just been saved is already in a PostScript format. - You may view it with any PostScript previewer (ghostview is recommended). -</OL> - -<H3><A NAME="Task12">Task 12: Loading a file</A></H3> - -<OL> - <LI> Go to a new, unused page. - <LI> Select menu item "File->Read Xcircuit PS". You will get a screen that - looks something like the following: <BR> - <IMG SRC=giffiles/load1.gif ALIGN=CENTER> The load-file popup window. - <LI> If the file list is larger than the window, you may scroll up and down - the list by clicking <B>mouse button 1</B> or <B>2</B> on the - <B>scrollbar</B> at the right side of the window and dragging it up - and down. - <LI> A green box will be drawn around each filename as your cursor passes - over it. - <LI> Find the file that you just saved in the last task. When the green - box is over this filename, tap <B>mouse button 1</B>. The filename - will turn green, and at the same time will be copied into the - text edit box. - <LI> Tap the "Okay" button to load the file. - <LI> If you do not wish to use the scrolling menu, you may type the filename, - with or without the "<TT>.ps</TT>" extension, in the text edit box, - followed by the <TT>RETURN</TT> key or tapping the "Okay" button. - <LI> Selecting a directory name in the file list box, including "../" for - the directory one level up, will go to that directory. Entering a - directory name in the text edit box followed by the <TT>RETURN</TT> - key will also go to that directory. - <LI> If you know where the <B>xcircuit</B> source is kept, then select the - "File->Read Xcircuit PS", go to the source directory, go to the - "examples" directory, and load one of the example files, such as - "<TT>vcoblock.ps</TT>". -</OL> - -<H3><A NAME="Task13">Task 13: Entering Text</A></H3> -Xcircuit has a very complicated interface for entering text, which allows -you to change fonts and font styles within a string, make overlines and -underlines, and subscripts and superscripts. <P> - -<OL> - <LI> Go to a new, unused page. - <LI> Let's say you want to type in a fairly complicated expression, like <BR> - "f(x) = sin(2*pi*omega_c*t)" (except with Greek letters, of course). - <LI> If you've read your TeX manual thoroughly, and understand all the finer - points of mathematical equation typesetting (if you haven't, you should), - then you know that all the variables should be in italic type. - <LI> Select menu item "Text->Style->Italic". The default text font is now - italic style. - <LI> Select menu item "Text->Font->Times Roman" if it is not checked already. - The default text font is now Times Italic (Times font + Italic style). - <LI> Select menu item "Text->Make Label" and click on <B>mouse button 1</B> - anywhere in the drawing area. - <LI> Alternately, you can just tap the "<TT>t</TT>" key in the drawing area. - <LI> The green line marks the pointer position, and the "x" marks the - origin (justification) of the text. - <LI> Select menu item "Text->Justification->Middle Justified". You will - see the green "x" move to the center of the line, showing that the - text is vertically centered on its point of origin. - <LI> Alternately, you could type keypad key "6" (on some systems, - Shift-keypad 6) to get center-left justified text. - <LI> Type "<TT>f</TT>". In the bottom message window, the letter "f" and a vertical - bar "|" appear, showing what's in the string relative to the text - cursor. - <LI> Select menu item "Text->Insert->1/4 Space". This is the proper thing to - do for "italic correction", an extra bit of space necessary after an - italic character followed by an upright character, particularly tall - ones such as "f" and "t" which lean leans rather far to the right of - their character bounding boxes. - <LI> Select menu item "Text->Style->Normal". - <LI> Type "<TT>(</TT>" - <LI> Select menu item "Text->Style->Italic". - <LI> Type "<TT>x</TT>" - <LI> Select menu item "Text->Style->Normal". - <LI> Type "<TT>) = sin(2</TT>" - <LI> Select menu item "Text->Style->Italic". - <LI> Select menu item "Text->Font->Symbol". - <LI> Type "\". A page with the 256 character encodings for the - Symbol font will appear, replacing the current page, as - shown in the figure below.<BR> - <CENTER><IMG SRC=giffiles/symbol_enc.gif></CENTER> - <LI> Click on the "pi" symbol. The screen will immediately - return to the original page, with the "pi" added to the - text line. - <LI> Type "\", then click on the "omega" symbol in the encoding - vector. - <LI> Select menu item "Text->Font->Times-Roman" - <LI> Select menu item "Text->Style->Subscript" (or keypad-minus) - <LI> Type "<TT>c</TT>" - <LI> Select menu item "Text->Style->Normalscript" (or keypad-enter) - <LI> Type "<TT>t</TT>" - <LI> Select menu item "Text->Insert->1/4 Space" for another italic - correction. - <LI> Select menu item "Text->Style->Normal". - <LI> Type "<TT>)</TT>" - <LI> Before typing <TT><RETURN></TT> to complete the text, use - the left- and right-arrow keys to move the cursor around inside - the text string. Note how font- and style- changing commands - embedded in the text string can be seen in the message window. - Their position relative to the text cursor is important when - anticipating the effect of deleting (<TT><DELETE></TT> key) - a text command. - <LI> Yes, this is very complicated, but it is also very powerful. -</OL> - -<CENTER><IMG SRC=giffiles/text.gif></CENTER><BR> -Above: The text figure created in the task.<BR> -Below: The <A HREF=psfiles/test1.ps>PostScript output</A> of the same text from xcircuit. -<CENTER><IMG SRC=giffiles/text2.gif></CENTER><BR><BR> - -<I>Typographical Note:</I> ISO-Latin1 encodings define the Greek character "mu" -(µ) to be used for the symbol "micro", which naturally is used often in -circuit schematics. This differs from the Symbol font "mu" in that it matches -the style and properties of the font in which it is defined. Thus, it is -possible to get a Helvetica "mu", a Times-BoldItalic "mu", etc., something -which is virtually impossible to do even in LaTeX<A HREF=footnote.html>(*)</A>. -Due to the font size and style matching, this is always preferable to the -Symbol font "mu". To get the ISO-Latin1 "mu" character, (while entering or -editing text) choose <I>Text->Encoding->ISO-Latin1</I> from the menu, then -either choose <I>Text->Insert->Character</I> or type "\" at the text cursor, -then select the "mu" character from the character array. - -<H3><A NAME="Task14">Task 14: Making curves and paths</A></H3> -Curve drawing is a useful feature of most capable drawing programs. The -concept of <I>paths</I> is a powerful aspect of PostScript which is not -usually found elsewhere. Path definitions are used to create a single -entity out of a string of curves, arc segments, and lines. The resulting -entity has its own color, fill styles, and border styles. - -<OL> - <LI> Go to a new, unused page. - <LI> Type "s" to start a curve (you can think of "s" as standing for - "spline", although these are Bezier curves, not splines, or you - can just think of the curvy "s" shape. The key "c" is reserved - for copying). The first thing you will see is two dotted lines - ending in little "x" marks. These are the curve control points. - <LI> Move the cursor around. Right now you are positioning the - end of the curve but have no control over the control points.<BR> - <IMG SRC=giffiles/spline1.gif> - <LI> Place the curve endpoint. If you are satisfied with the shape - of this curve, you can tap <B>mouse button 2</B> to finish - the curve and quit. However, we'll say that you have more to - do to this curve, so tap <B>mouse button 1</B> instead. - <LI> You get a message saying "Adjust control point", and the cursor - moves overtop the nearest "x" mark. Now when you move the - cursor, you change the shape of the curve. - <LI> Move the control point two grid blocks to the left of where it - started (make the control line horizontal with a length of - 4 grid blocks). <BR> - <IMG SRC=giffiles/spline2.gif> - <LI> Click <B>mouse button 2</B> to finish the curve. - <LI> Now we will make a simple path. But it takes more than one element - to form a path. Put the cursor over the curve and tap the "c" - key. - <LI> When you move the cursor, a copy of the curve will follow you. - <LI> While you are dragging the curve copy, flip it by tapping the - "f" key and then the "F" key (one horizontal plus one vertical - flip). - <LI> Place the curve with its endpoints overtop the original curve. - The result should look like the figure below. - <LI> Select both curves by tapping <B>mouse button 2</B> on top of - each one, or by forming a selection box (see Task 5). - <LI> Tap the "j" key in order to "join" the two curves into a single - path. - <LI> If you now move or select the path, you will find that both - curves act as a single entity. - <LI> Select the path and then select menu item - "Options->Elements->Fill->(black box)". The path will then - become solid black. If you color it blue, it will look something - like the right side of the figure below. -</OL> - -<CENTER><IMG SRC=giffiles/spline3.gif></CENTER><BR> -Curves and paths. Left: The curve has been copied and flipped. -Center: The two curves are placed together and joined into a path. -Right: The path is filled and colored as a single entity. - -<H3><A NAME="Task15">Task 15: Dealing with over/under arrangement of elements</A></H3> - -<OL> - <LI> Clear the current page (menu option "File->Clear Page") or go - to a new, unused page. - <LI> Start a <B>box</B> with the "b" key (this is a convenience for - drawing rectangles and squares). - <LI> Click <B>mouse button 2</B> to finish the box. - <LI> Select the box and choose menu item - "Options->Elements->Fill->(black box)", where the "black box" - is the first menu item in the list. You will now have a black - box. (note that to select the box, the cursor must be near the - <B>edge</B> of the box, not in the middle). - <LI> Select the box again and choose menu item - "Options->Elements->Color->(orange box)". You will now have - a solid, orange box. - <LI> Go to the built-in library ("l" key) and bring back a circuit - object (say, a "nand" gate). - <LI> Place the gate on top of the orange box. - <LI> Make a copy the box ("c" key) and place it beside the first. - <B>mouse button 2</B> ends the copy command. - <LI> You will notice that the library object suddenly disappeared. - This is because the "copy" command moved the orange box - to the end of the drawing list. Because it is drawn <B>after</B> - the library object, the library object is hidden underneath. - <LI> To get the library object on top again, select everything in the - area of the orange box by forming a selection box around the - orange box (<B>mouse button 2</B>). Tap the "X" key (Shift-X) - to <B>exchange</B> the drawing order of the two elements. The - library object will now be visible on top of the orange box. -</OL> - -<CENTER><IMG SRC=giffiles/overunder.gif><BR> -Over- and Under- arrangements of elements. </CENTER> - -<H3><A NAME="Task16">Task 16: Making user-defined objects</A></H3> -One of the most powerful aspects of xcircuit is its ability to deal with -objects on a hierarchical level. Circuits in particular are highly -structured. Often it is desirable to draw a subcircuit and use it -several times. It is much more efficient to draw the subcircuit and -create a <B>user object</B> from it rather than to copy all the -separate elements of the subcircuit every time you want a copy. -This is also true of new circuit components. <P> - -Say we wish to create a new circuit component, a <B>dependent current -source</B>. - -<OL> - <LI> Clear the current page or go to a new page. - <LI> We want the dependent current source to look something like the - independent current source (isource) in the builtin library file. - Go to the library and bring back an "isource" object for reference. - <LI> Draw a polygon, as in Task 3. Make it diamond-shaped and three - grid spaces high, two wide (see the figure below). - <LI> Add a line of height one-half-grid space on the top and bottom - of the diamond. - <LI> Now we will do something unusual. We will grab the arrow from - inside the isource object. Edit the original "isource" object - by placing the cursor over it and typing the ">" key (push - object). The page you were on will disappear, and you will - see only the object "isource". - <LI> Using the multiple-selection mechanism described in Task 10, - select the arrowhead and line in the middle of "isource", but - not the surrounding object. - <LI> Make a copy of these two elements with the "c" key. - <LI> While still dragging around the copy of the arrow, return to - the main page by typing the "<" key (pop object). You will - be returned to the original drawing, still dragging the arrow - with you. - <LI> Place the arrow inside the diamond. - <LI> Using a selection box, select all of the components of the - "dependent current source" object you have just constructed. - <LI> Type the "m" key to make the object out of the selected - components. - <LI> You will get a popup box asking for a name for the object. - Type something obvious like "depsource" or "disource". - Spaces are not allowed (if you use them, they will be - converted to underscores). - <LI> Tap the "Okay" button. Now, if you click on the dependent - source, it will be treated just like one of the builtin - objects. - <LI> Type the "L" key to go to the <B>User Library</B>. You - will see that the new object you created is now located - there. You can click on it to bring back another copy, - just like the builtin objects. -</OL> - -<CENTER><IMG SRC=giffiles/object.gif><BR> -Steps in creating a new user-defined object. </CENTER> - -<H3><A NAME="Task17">Task 17: Editing objects and elements </A></H3> -You briefly edited the built-in "isource" object in the last task, -but did not change anything. In this task, suppose we want to change -the appearance of the "dependent current source" object we made in -the previous task. - -<OL> - <LI> To edit the object, "push" into it using the ">" key, - as you did for the "isource" in the last task. - <LI> Make the polygon shorter. Put the cursor close to the - top of the diamond and type "e" for "edit". - <LI> Use the multiple-selection mechanism to select only the - diamond. - <LI> Now you will be editing the point position. Move the - point down one-half grid space, and tap <B>mouse - button 2</B> to complete the edit. - <LI> Do the same for the bottom point. Where the two ends of - the polygon meet, you will need to adjust both of the - points. - <LI> Extend the lines on the top and bottom to meet the - diamond by editing the endpoints just like you did for - the diamond. - <LI> When you are done, return to the main page by "popping" - out of the object page, using the "<" key. -</OL> - -<CENTER><IMG SRC=giffiles/objedit.gif><BR> -Steps in editing the user-defined object. </CENTER> - -<H3><A NAME="Task18">Task 18: Generating complex geometric shapes</A></H3> -This can be an incredibly useful feature for general drawing. A -wholesale use of it is necessary to create such extravaganzas as -this rendition of the -<A HREF=http://bach.ece.jhu.edu/~tim/pictures/apl_logo3.ps>JHU Applied -Physics Lab's logo</A>. I have made use of something in PostScript -known as a ``path,'' that is, a linked set of lines, arcs, and splines -which together form the boundary of a single object which can be -bordered, filled, colored, etc. In this task, I will show you how -to generate a picture of a solid cylinder, by making a path consisting -of both ellipses and lines. - -<OL> - <LI> Start with a clean page. - <LI> Create an ellipse as follows: - <OL> - <LI> Type macro <B>a</B> to start an arc. - <LI> Drag the arc out to some desired size. - <LI> Click the first mouse button three times (to bypass endpoint - editing and go to ellipse axis editing). The position of - the cursor will move from the side of the circle to the top. - <LI> Drag the ellipse minor axis to the desired size and click - the second mouse button to end. - </OL> </LI> - - <CENTER><IMG SRC=giffiles/path1.gif><BR> - Creating a path object (solid cylinder): top ellipse. </CENTER> - - <LI> The whole ellipse becomes the top of the "cylinder". To make the - bottom of the cylinder: - <OL> - <LI> Copy the first arc and place it well below the first. - <LI> Type macro <B>e</B> to edit (or select edit from the menu - and click on the lower ellipse). - <LI> Immediately type <B>e</B> again or click on the first mouse - button to go to endpoint editing mode. - <LI> Drag the endpoint around to the other side until the - result is the bottom half of an ellipse. Click the - second mouse button to finish. - </OL> </LI> - - <CENTER><IMG SRC=giffiles/path2.gif><BR> - Creating a path object (solid cylinder): bottom (half) ellipse. </CENTER> - - <LI> Draw two lines to create the sides of the cylinder. - <LI> Select the bottom and sides of the cylinder, and type the <B>j</B> key - to "join" these segments into a single "path". - <LI> Select everything. If you (individually) select any component of the - path (either the side lines or the bottom ellipse), the whole path - will be highlighted. - - <LI> Copy (with the <B>c</B> macro) and place the copy to the side. </LI> - - <CENTER><IMG SRC=giffiles/path3.gif><BR> - Creating a path object (solid cylinder): Two cylinder frames. </CENTER> - - <LI> Select the path (lower part) of the rightmost cylinder. - <LI> Choose menu item "Options->Elements->Fill->(black box)". Now - you can see how to create arbitrary filled shapes. </LI> - - <CENTER><IMG SRC=giffiles/path4.gif><BR> - Creating a path object (solid cylinder): Two cylinders, the right one - consisting of a filled path. </CENTER> - - <LI> Finish the cylinder in the following manner: - <OL> - <LI> Color the path shape dark gray. - <LI> Select the ellipse located above the colored cylinder and - perform the same steps to make it filled solid and colored - light gray. - <LI> Use the <B>X</B> keyboard macro to correctly arrange the - elements, with the light gray ellipse on top of the dark - gray path object. - <LI> Place the black wire frame cylinder on the left on top of - the solid cylinder on the right. <I>Hint:</I> Move the - wire frame halfway on top of the solid cylinder, then - arrange the top-to-bottom order of the elements so - that the wire frame ends up on top, then move the - wire frame the rest of the way. - </OL> -</OL> - -<CENTER><IMG SRC=giffiles/path5.gif><BR> -Creating a path object (solid cylinder): Finished cylinder. </CENTER> - - -<H3><A NAME="Task19">Task 19: Investigating other <B>xcircuit</B> commands</A></H3> -By now you should understand the basic user interface of xcircuit and be able -to get around the menus, the drawing area, be able to handle the popup -prompting windows, load and save files, write text, and create polygons, -arcs, curves, paths, and user objects. Of course, we have just touched -the surface of <B>xcircuit</B> capabilities. The list of features below -will help you find out all the things that can be done with the program. <P> - -For help with remembering keyboard macros and their functions, select the -menu item "Options->Help!". You will get a popup window to the right of -the screen which lists all of the available keyboard functions. Tap the -"Done" bottom at the bottom when you no longer need the help menu. <P> - -<HR> -<P><A HREF=../welcome.html><IMG ALIGN=middle SRC=../giffiles/bluebutton.gif - BORDER=0></A> Back to the xcircuit home page. . . -<P><IMG SRC=../giffiles/line1.gif><P> -email: <I>tim@bach.ece.jhu.edu</I> -</BODY> -</HTML> diff --git a/tutorial/tutorial2.html b/tutorial/tutorial2.html deleted file mode 100644 index b2322d7..0000000 --- a/tutorial/tutorial2.html +++ /dev/null @@ -1,1455 +0,0 @@ -<HTML> -<HEAD> - <STYLE type="text/css"> - H1 {color: maroon} - H2 {color: #007090} - H3 {color: #0050b0} - A.head {color: #0060a0} - </STYLE> -</HEAD> -<TITLE>XCircuit Schematic Capture Tutorial Page</TITLE> -<BODY BACKGROUND=../giffiles/blpaper.gif> -<H1><IMG ALIGN=top SRC=../xcicon.gif> The XCircuit Schematic Capture Tutorial</H1> - -<!-- -<HR> -<font color=red> -<IMG SRC=../giffiles/constr.gif ALIGN=middle> -NOTICE: Page still under construction (but almost finished)! -</font> ---> - -<HR> - -<H2>Table of Contents</H2> -<UL> - <LI> <A HREF="#Start">Getting Started</A> - <LI> <A HREF="#Task1">Task1</A> Acquaint yourself with XCircuit - <LI> <A HREF="#Task2">Task2</A> Run the program - <LI> <A HREF="#Task3">Task3</A> Drawing a circuit for SPICE simulation - <LI> <A HREF="#Task4">Task4</A> Introduction to parameters - <LI> <A HREF="#Task5">Task5</A> Drawing a circuit with parameters - <LI> <A HREF="#Task6">Task6</A> Making a new "fundamental" object - <LI> <A HREF="#Task7">Task7</A> A schematic with symbol-less schematics - in the hierarchy - <LI> <A HREF="#Task8">Task8</A> Identifying electrical connections - <LI> <A HREF="#Task9">Task9</A> A symbol on its own schematic - <LI> <A HREF="#Task10">Task10</A> "sim" format and flattened - <LI> <A HREF="#Task11">Task11</A> "pcb" type netlists - <LI> <A HREF="#Task12">Task12</A> Multiple-gate chips in PCB netlists - <LI> <A HREF="#Task13">Task13</A> Modifying netlist formats - <LI> <A HREF="#Task14">Task14</A> Example: A bridge rectifier for a PCB -</UL> - - -<H2><A NAME="Start">Getting started</A></H2> -This tutorial is provided to help users get up and running with the -schematic capture capabilities of xcircuit. -In order to get the most out of this page, you should have already -downloaded, compiled, and installed the xcircuit program and its libraries, -and xcircuit should be compiled with schematic capture capability (on by -default; see the Imakefile for details). <P> - -<BLOCKQUOTE> -<font color=red> IMPORTANT NOTICE: </font> -<font color=green> -It is necessary for you to have the new (version 2.3.3) distribution of xcircuit -compiled <I>and installed</I> to get the correct behavior in the tutorial. -In particular, the PostScript prolog has changed and if the old one is -prepended to the new xcircuit files, the files will not be printable or -viewable from a PostScript previewer. <P> - -There are additional differences between versions 2.1(beta) to version 2.3.3, -mainly in the way symbols and schematics are associated with each other. -The new methods are incorporated into this tutorial. Version 2.3.3 also -corrects some errors in netlist generation, and is generally more stable. -Versions before 2.3.3 will <I>not</I> produce <B>pcb</B>-style netlists -as featured in this tutorial.<P> -</font> -</BLOCKQUOTE> - -<H2><A NAME="Task1">Task 1: Acquaint yourself with XCircuit</A></H2> -If you are not yet familiar with the basic features of xcircuit, I recommend -you to peruse the basic <A HREF=tutorial.html>XCircuit tutorial</A> for -essential features of the program which will not be reiterated here. - -<H2><A NAME="Task2">Task 2: Run the program</A></H2> -XCircuit now starts in schematic capture mode unless explicitly compiled -without the feature. So just start xcircuit as you normally would: -<BLOCKQUOTE> - <B>xcircuit</B> -</BLOCKQUOTE> - -Xcircuit in schematic capture mode will start with a window which -has a menu button for ``Netlist'' and two -buttons at the bottom left-hand corner, one of which is blank and the other -which is colored red and labeled ``Schematic.'' -The bottom buttons can be interpreted to mean that the current page is a -schematic drawing, and this schematic has no corresponding symbol (more -about this later). <P> - -There is a menu button, "Options->Disable (Enable) XSchema", which toggles -the visibility of the ``Netlist'' menu button and the two status buttons at the -bottom. In case you're working on a drawing which has nothing to do with -schematic capture, you might prefer to have the option disabled. This -does not affect the program in any way other than to make the buttons -disappear so that xcircuit looks like the original version without the -schematic capture features. <P> - -<H2><A NAME="Task3">Task 3: Drawing a circuit for SPICE simulation</A></H2> -This task outlines some of the features of xcircuit used to make a simple -circuit. In this and the following tasks, you will create an analog -circuit, an operational amplifier, and make it into a symbol to be used -as a subcircuit of a more general circuit (an integrator). First you will -draw a circuit using simple (default) devices, and later I will show how to -pass parameters to devices, such as width and length of individual MOSFETs. - -<OL> - <LI> Drag the elements which you need from the built-in library to - (a clean) Page 1. Namely, the nMOS, pMOS, Vdd, and GND symbols. <P> - <LI> Duplicate elements (copy (<B>c</B>), flip (<B>f</B>)) as necessary - and connect with lines to produce the following transconductance - amplifier schematic: <BR><BR> - - <CENTER><IMG SRC=giffiles/amp1.gif><BR> - A transconductance amplifier, schematic drawing. </CENTER> <BR> - - <LI> Either drag the "dot" object from the library page or use the - period key ("<B>.</B>") to place connections between the wires - at junctions. This is not strictly necessary, as xcircuit will - deduce connectivity from the T-connections of wires, not from - the "dot" symbols; it is merely a matter of preference depending - on the style with which you like to draw circuits. In the case - of wires crossing at a junction, the dot <I>is</I> necessary - since crossing wires generally do not indicate a connection in - schematic diagrams. You may also use a "jumper" object to - indicate that two crossing wires do not connect although this, - like the use of dots at T-junctions, is a matter of style and - personal preference. <P> - - <LI> Add "circle" connections at the inputs and outputs. Once again, - this is a matter of style; the actual inputs and outputs from - the netlist's point of view will be indicated by pin labels - (see next step). The resulting diagram looks like the following: - <BR><BR> - - <CENTER><IMG SRC=giffiles/amp2.gif><BR> - Same transconductance amplifier, a little fancier style. </CENTER> <BR> - - <LI> Because the amplifier will be a SPICE subcircuit, it is necessary - to tell the netlist generator where the input and output ports - are. For this, you need <I>pin labels</I>. Pin labels differ - from ordinary labels in several ways: By default, they are - colored red (though this can be changed), and are placed with a - slight offset from their marked positions, so the position - marker can be used as a tag to indicate what wire the label is - attached to. Additionally, the marked position is visible on - the drawing, since its exact location with respect to wires is - critical to the resultant netlist. Finally, pin labels only - appear on the top level of the hierarchy. <P> - - To generate the pin label, type key macro (capital) <B>T</B>, or - choose menu item "Netlist->Make Pin". Set justification as - desired and place the "x" marking the pin position over the - "o" of the circle objects, or on top of a wire. The pins in - this amplifier will be labeled "in.m", "in.p", "out", and "bias". - <BR><BR> - - - <CENTER><IMG SRC=giffiles/amp3.gif><BR> - Transconductance amplifier with I/O pins marked. </CENTER> <BR> - - <LI> Now it's time to turn this schematic into a symbol, that is, - to make a symbol which will be used on the top-level drawing - to designate the transconductance amplifier. What we really - want to do is to use the symbol "wramp" (stands for "wide - range (transconductance) amplifier", which is what this is), - from library "avlsi.lps" (part of the distribution), as the - symbol for the schematic you just drew. Go to the built-in - library, then edit the "wramp" symbol from there by placing - the cursor over the "wramp" symbol and typing key macro - "<B>></B>". The result looks like this: <BR><BR> - - <CENTER><IMG SRC=giffiles/wramp1.gif><BR> - Transconductance amplifier symbol from the "avlsi.lps" library. - </CENTER><BR> - - Note that in this picture, the bottom left-hand corner of - the screen says "Symbol" in the button that was, on Page 1, blank, - and the button that used to say "Schematic" is now blank. This - means that this object is a symbol, not a schematic, and it currently - does not have a schematic attached to it. <P> - - Also note that the pin labels marking input/output positions for - <font color=red>in.m</font>, - <font color=red>in.p</font>, - <font color=red>out</font>, and - <font color=red>bias</font> - are invisible on the library page, but become visible when - editing the object, that is, when the library object has been placed - on the top-level page. When the library object is used in a circuit, - the pin labels are again invisible. This way, the drawing doesn't - get cluttered up with nested labels. <P> - - <LI> The procedure to attach the schematic to this symbol is quite - simple. Choose menu item <I>Netlist->Associate With Schematic</I>. - Immediately, you will be taken to the page directory, with the - message "Click on schematic page to associate." With the first - mouse button, click on Page 1 (assuming that's the amplifier - schematic). Instead of the usual behavior on the page directory - (go immediately to the page under the cursor), you will be - returned back to the amplifier symbol edit page. - - Now both buttons appear at the same time, one named "Symbol" and - one named "Schematic". The one named "Schematic" is colored white, - indicated that the current page is the symbol, and that a - schematic exists which is the circuit represented by this symbol. - Press either button, and you will go to the schematic drawing - (back to Page 1). Press either button again, and you will return - to the symbol. The library object "wramp" is now a symbol for - the schematic of Page 1. <P> - - A symbol can be <I>disassociated</I> from its schematic, and - vice versa, by choosing menu item - <I>"Netlist->Disassociate Symbol"</I> or - <I>"Netlist->Disassociate Schematic"</I>. - This menu option will appear only for the appropriate case. - Choose this action from the menu now. Note that the white button - in the lower left-hand corner goes back to being blank. The - library object "wramp" is no longer a symbol for the schematic - of Page 1. <P> - - Association can be initiated both ways. The alternate method is - as follows: Go back to Page 1 (the amplifier schematic). - Choose menu item <I>"Netlist->Associate with Symbol"</I> (note - that this is the same button that used to be "Disassociate"). - You are transported to the library directory, with the instructions - in the message window to "click on the library page, then the - object to associate". <P> - - Click on the first library page (the one containing the wide-range - amplifier symbol "wramp"). Now click on the symbol "wramp". - Now, you will be returned to the original schematic page, and - once again, the buttons in the window's lower-left-hand corner - are red and white, indicating that you are on the schematic page - (red) but can move to the symbol page (white). Alternately to - clicking buttons to move between pages, you can choose menu - item <I>"Netlist->Go To Symbol"</I> (or "Go To Schematic", - as appropriate), or use the "<TT>/</TT>" key macro. Note that - the key macro only works if an association exists (i.e., it will - never create a new schematic or symbol, as described in the next - paragraph, although this was formerly the behavior in xcircuit - version 2.1(beta)). <P> - - The schematic and symbol both do not need to exist before association. - You can associate an existing schematic to a non-existing symbol - or associate an existing symbol to a non-existing schematic by using - the <I>"Netlist->Make Matching Symbol"</I> or - <I>"Netlist->Make Matching Schematic"</I> selection, respectively. - If you are editing a symbol, then you will be transported to the first - blank top-level page. If you are editing a schematic (top-level - page), a new User Library symbol will be generated and you will - be transported there. In either case, the new object will take - the name of its associated object, and all pin labels from the - original will be copied to the new, so that's one less step you - have to do yourself. - - <LI> Now it's time to use the symbol as a subcircuit in a top-level - circuit schematic. Go to Page 2, which will be the top-level - circuit. Draw an integrator as shown below: <BR><BR> - - <CENTER><IMG SRC=giffiles/integrate1.gif><BR> - Simple continuous-time integrator using a transconductance - amplifier. </CENTER> <BR> - - Note that there is a "regular" text label titling the page; - this is made in the usual fashion, using key macro (lowercase) - "<B>t</B>", and therefore is not a pin label. <P> - - There is a one-to-one correspondence between the - pin labels on the schematic and the pin labels on the - corresponding symbol. This is important to make sure that - the wires attaching to the symbol on the top-level schematic - go to the correct destinations in the amplifier's schematic. - It is not an error to have unassigned pins: A pin inside - the schematic may be labeling a net for reference purposes - only. A pin on the symbol which is not used in the - schematic is much less likely, but may, for instance, be - representing an unconnected pin on an IC. <P> - - <LI> Save this page. Call it "integrator". At this point, several - points should be noted: - <UL> - <LI> Two pages were saved instead of one. XCircuit followed - the path of the symbol to its schematic, and saved the - schematic for the amplifier. This becomes a separate - page in the PostScript output. Running "ghostview" or - your favorite PostScript previewer shows the two-page - output. - <LI> Page 1, the page containing the schematic of the amplifier, - regardless of what you called it in the first place (if - anything), was renamed "wramp". - By convention, the schematic and symbol have the same - name, although this does not have to be the case. - <LI> All the pages got saved as "Full Page" and not as - "Encapsulated". For multi-page files, "Encapsulated" - PostScript is not meaningful. Options for positioning - the schematic on the page will probably appear in the - future. - </UL> <P> - - <LI> Go to the top-level schematic page (Page 2, or "integrator"). - From the menu, select "Netlist->Write Spice". The message - label will read "spice netlist saved as integrator.spc". - You can view the file <A HREF=netfiles/integrator.spc>integrator.spc</A> - here. Note in particular that xcircuit has generated a - hierarchical netlist, using the amplifier "wramp" as a - subcircuit. The subcircuit contains parameters which are - its pin labels; the <I>call</I> to the subcircuit has parameters - which are the pin labels given on the top level page. <P> -</OL> - -For reference, the resulting PostScript file can be found here: -<A HREF=psfiles/integrator.ps>integrator.ps</A><P> - -SPICE simulation: Xcircuit provides only the netlist. It can also -provide voltage sources and so forth, which will be described in the -next task. However, it has no concept of "models" and provides no -commands for running analyses. In the example above, the spice file -will need to be edited to insert models for devices "nmos" and "pmos", -Declare a voltage source and value for Vdd, and add commands -for DC operating point determination and transient analysis. <P> - -<H2><A NAME="Task4">Task 4: Introduction to parameters</A></H2> - -One thing you may have noticed about the previous circuit is that you -did not, in fact <I>could not</I> specify a value for the capacitor, -which defaulted in the spice netlist to 1.0pF. And there was no way -to specify a width and length of each nMOS and pMOS device. You might -have guessed: There does exist a way to pass values such as capacitance -to the capacitor object, and width and length to the MOS device objects. <P> - -Here's a brief description of how parameters work:<BR> -Each object contains a list of its parameters, NULL if there are no -parameters. Each item in this list declares what is the <I>type</I> of -parameter (so far, "string" or "integer", with only string types fully -supported at present), a default value for the parameter, and another -list which points to all the locations where the parameter gets -substituted. <P> - -It is important to keep in mind the distinction between an <I>object</I> -and its <I>instantiations</I>. If you are on Page 1 looking at an object -you just dragged back from the library, you are looking at a single -<I>instance</I> of that object. If you use the <B>></B> key to -edit the object, then you are editing the object itself. Normally, -there is no particular need to make the distinction. However, when -using parameters, the object itself will declare the default parameter, -but each instance of the object may contain its own unique value for -that parameter. <P> - -Xcircuit adopts a method for editing parameters in which either the -default value or the instance value may be altered, and which one is -altered depends on <I>what top-level page you came from</I>. The -most obvious way to implement this is that if you edit an object from -one of the library pages, you are assumed to be altering the default -(the object on the library page always displays the default value of -all its parameters). If, instead, you edit the object by getting -there from a top-level page or another object, you are editing the -<I>instance</I>, and changes you make to the parameters will only -affect the value of that instance only. This should be made clear -by the tutorial below. - -<OL> - <LI> Run xcircuit, which should automatically load "analoglib2.lps" - onto library page 2 (since xcircuit version 2.2.0. Otherwise, - load it from the subdirectory "examples" of the source - distribution). - <LI> Go to library page 2 (macro <B>L</B>, click on second page). - You will see a set of - replacement objects for the basic circuit structures "capacitor", - "resistor", "nmos", etc. The main difference between these and - the original objects is that they contain labels indicating - values. <BR><BR> - <CENTER><IMG SRC=giffiles/alib.gif><BR> - The parameterized analog component library. </CENTER> <BR> - - <LI> Select, say, the "Resistor" object and drag it back to Page 1. - <LI> Copy the resistor so you have two resistors on Page 1. - <LI> Edit one of the resistors (<B>></B> key). You will note that, - in addition to pin labels, there are some other strings (called - "info labels") which will be described in detail later. - <LI> Edit the string which reads "1.0 k(Ohm)" (<B>e</B> key macro, or - menu selection <I>Edit->Edit</I>). As you move the - cursor around the string, look at the message window. You will - note that in addition to the usual ASCII characters and string - commands such as font changes, half-space, etc., there is now - an additional embedded command label "Parameter(<I>n</I>)< - <I>text</I>>", where <I>n</I> is the parameter number, and - <I>text</I> is a substring (may be empty) which is the parameter - text. For the resistor, "1.0" is a parameter - describing the value, and "k" is a parameter for the metric - scale prefix. Unlike all other parts of the string, you cannot - delete the parameter delimiter marks (parameters must be - removed from a string with the "Unparameterize" function). - <LI> Replace the substring "1.0" with "20" and replace "k" by "M" - or whatever your favorite resistor value is. Be sure that you - are inside the parameter delimiters when you make the change, - or you will get unexpected results. - <LI> Pop back up to the originating page (<B><</B> key). You will - see that only the resistor which you edited has its values - changed; the other one still has the original (default) values - of "1.0" and "k". - <LI> Go to the library again (<B>L</B> key, then click on the second - page), and from there, edit the - resistor (<B>></B> key). From here, change the value to, say, - "2.0 k". Note that now you are changing the <I>default</I> value, - not an instance value. - <LI> Return to the library page (<B><</B> key). Now the library - object shows the new resistance value, indicating that the - default value was altered. From here, go back to the - originating page (third mouse button). Now you see that the - resistor you altered retained its unique value, but the - resistor you didn't alter changed with the default. <BR> - The rule here is that each instance of an object accepts the - default unless is specifically declares its own unique value. -</OL> - -<BLOCKQUOTE> -<font color=red> How does this work?</font><BR> -<font color=green> -There are already traces of parameterization at work in xcircuit. -Each instance of an object has its own unique value for position, -rotation, color, and scale. These can be thought of as parameters. -Whenever xcircuit draws an object instance, it uses the unique -position, rotation, and scale to alter the 2-D transformation -matrix, then recursively calls the object drawing routine on the -object itself. When parameters are present, xcircuit first looks -up any unique values which the object instance might declare, and -substitutes these values into the object itself. If the instance -does not declare a particular parameter, then xcircuit substitutes -the default value. Then xcircuit recursively calls the drawing -routine on the object. -</font> -</BLOCKQUOTE> - -<H2><A NAME="Task5">Task 5: Drawing a circuit with parameters</A></H2> - -<OL> - <LI> Run xcircuit, as in the last example. - - <LI> Using the parameterized devices from the <TT>analoglib2</TT> - library, create the simple lowpass R-C filter shown below:<BR><BR> - - <CENTER><IMG SRC=giffiles/filter1.gif><BR> - Simple R-C filter. </CENTER> <BR> - - <LI> Now, using what you learned from Task 4, alter the individual - parameter values so that they look like the following:<BR><BR> - - <CENTER><IMG SRC=giffiles/filter2.gif><BR> - Simple R-C filter, with new parameter values. </CENTER> <BR> - - <LI> Choose menu item "File->Write XCircuit PS", and rename the top - page something obvious like "filter". Save it if you like. - - <LI> Choose menu item "Netlist->Write Spice". - You can view the resulting SPICE file - <A HREF=netfiles/filter.spc>filter.spc</A> here. -</OL> <P> - -For reference, the finished PostScript file can be found here: -<A HREF=psfiles/filter.ps>filter.ps</A><P> - -Although there are no MOS devices in this file, as in the previous task, -the SPICE deck will need to be completed with commands for performing -transient analysis and so forth, unless the file is to be used for -netlist comparison purposes only. <P> - -Spice output is determined solely by the ``info labels'' (which are green -by default, and only show up when the object they are in is on the top-level -page), in particular, those that begin with the token ``spice:''. There -are several ``escape sequences'' which have special meaning in this info -label. They begin with the ``%'' character and are summarized below. -Also, string parameters can be inserted directly into the info label, a -process which is described directly after. - -<H3>Info label escape sequences:</H3> -<BLOCKQUOTE> -<DL> - <DT> <TT>%%</TT> - <DD> Inserts the character `%' into the netlist output line. - <DT> <TT>?</TT> - <DD> When a single question mark is parameterized as its - own parameter, it is interpreted in the following way: If the - parser encounters a non-default value (i.e., a number), it uses - that number as the index. Otherwise, it generates a unique sequence - number for the object instance. This method is preferred over the - "%i" escape, as it allows each part number to be individually - assigned, if desired. - <DT> <I>(parameter)</I> - <DD> Any parameter may be inserted into the info - label, and therefore takes the value of either the instance string, - if defined, or else takes the value of the default string. The - question mark (<TT>?</TT>) is a special case (see above). - <DT> <TT>%n</TT> - <DD> Insert the name of the object. - <DT> <TT>%p"name"</TT> - <DD> Insert the name of a pin. The pin name must - be quoted exactly as is the label which defines the pin. The quotes - may be omitted if the name contains no white space and is followed - by white space (if in doubt, just use the quotes). - <DT> <TT>%r</TT> - <DD> Insert a carriage-return into the netlist output line. - Carriage-returns can also be inserted directly into the output - by using Alt-Enter or menu option - <I>"Text->Insert->Carriage Return"</I>. - <DT> <TT>%t</TT> - <DD> Insert a tab into the netlist output line. -</DL> -</BLOCKQUOTE> - -Obsoleted sequences (maintained for backward compatibility): -<BLOCKQUOTE> -<DL> - <DT> <TT>%i</TT> - <DD> Insert a number, in sequence, incrementing each time - a new object instance is visited during netlist compilation. - <DT> <TT>%v"name"</TT> - <DD> Insert the name of a parameter. The parameter - name must be quoted exactly as the label or label segement which - defines the <I>default</I> parameter. Alternately, a parameter - can be inserted directly into the string during text edit mode - using the "Alt-p" key. This is perhaps more intuitive, because the - value shown is either the default or substituted value, as appropriate, - rather than always listing the default value. The library file - <A HREF=../xcircuit/psfiles/analoglib1.lps>analoglib1.lps</A>, - which is available either - at this link or in the source distribution under the "examples" - directory, makes use of the "%v" method. <TT>analoglib2.lps</TT> - makes use of the direct-insertion method. -</DL> -</BLOCKQUOTE> - -<font color=red> <I>Example:</I> </font> -<font color=green> -<BLOCKQUOTE><PRE><TT> -sim:n %pG %pS %pD -</TT></PRE></BLOCKQUOTE> -</font> -<font color=red> -<I>or:</I> -</font> -<font color=green> -<BLOCKQUOTE><PRE><TT> -spice:M%i %pD %pG %pS GND nmos -</TT></PRE></BLOCKQUOTE> -</font> -The top example produces an nMOS transistor line in a "sim" netlist, where -the actual net names inserted into the output file are those which correspond -to the gate, source, and drain pins, respectively. The bottom example does -the same thing for a SPICE netlist file, assuming that the SPICE model will -be called "nmos" (this can be parameterized if more than one model is -required; see paragraph below), and the "%i" sequence ensures that each -transistor gets a different label: M1, M2, M3, and so forth. - -<H3>Inserting string parameters directly into a label:</H3> - -While editing a label, use the key sequence ``Alt-p'' to insert a parameter. -If the object has only one parameter, it will be inserted automatically. If -the object has two or more parameters, xcircuit will prompt for the one to -use (listed by number). Once the copy of the parameter string is in the -label, there is effectively no difference between the copies: making changes -to one automatically changes the other (although the change may not show up -immediately). In general, this method is clearer than using ``%v'', since -the subsituted string appears directly in the info label rather than -referring back to the default string, so ``what you see is what you get.''<P> - -<OL> - <LI> From the default analog library (library page 1), grab the - (unparameterized) object "nmos" and drag - it back to page 1 (or whatever page you're working on). - <LI> Edit the "nmos" object (key "<B>></B>"). - <LI> Use the second mouse button to draw a selection box around the - word ``nmos'' in the first information (green) label. - <LI> The word ``nmos'' will be highlighted; in this selection - mechanism, only that substring of the label has been selected. - <LI> Choose menu option <I>Text->Parameterize</I>. - <LI> Now edit the info label. When you get to the word ``nmos'', - you will notice, as printed in the message field at the bottom - of the xcircuit window, that it is bounded by invisible marker - characters ``Parameter(1)<'' and ``>''. - At this point, the SPICE model is a parameter of the object, - and its default value is ``nmos''. - <LI> Because you entered the object from Page 1 rather than the Library, - what you are editing is the string <I>instance</I>, not the - string <I>default</I>. Change the parameter substring to read - <B>nmos1</B>, indicating an alternate MOS model called ``nmos1'' - (which must be added to the output SPICE file before simulation!). - Make <I>sure</I> that the character "1" comes <I>before</I> the - ">" parameter end marker; otherwise, it is not part of the - parameter, and instead becomes part of the default value. - <LI> Finish editing and return to the calling page (key "<B><</B>"). - <LI> Grab another object ``nmos'' from the library and place it on - Page 1. Edit it (key "<B>></B>"). Note that the parameter - string contains the default value ``nmos''. - <LI> Pop back out to Page 1 and run ``Netlist->Write spice''. The - resulting file is simple and can be included below. <BR><BR> - -<font color=green> -<TT> -Spice circuit Page 1<BR><BR> -M1 net.1 net.2 net.3 GND nmos<BR> -M2 net.4 net.5 net.6 GND nmos1<BR> -.end -</TT> -</font> - -</OL> - -Information labels with embedded parameters are used in the library file -<A HREF=../xcircuit/psfiles/analoglib2.lps>analoglib2.lps</A>. -Note that in most objects -("Capacitor", "Resistor"), the parameterized value is in a string and -therefore shows up as part of the circuit diagram. However, others -("PNP", "NPN", where the SPICE model name is parameterized) have the -parameter only in an information label, where it does not show up on -the top-level page. Yet others ("nMOS", "pMOS") contain both (width -and length values appear on the top-level page and are copied into -the information label, but the name of the SPICE model only appears -in the information label). <P> - -As an addendum to this task, run xcircuit and load the file and generate -a spice circuit which uses two nMOS devices from the "analoglib2" -library page, each instance having a different SPICE model. In -addition, make the widths of the two devices different. - -Note that when more than one string contain the same parameter, editing -one of the values will not be immediately reflected on the screen as -a change in the other(s). Popping back to the level above the object -and returning to edit the object will show all the proper substitutions. - -<H2><A NAME="Task6">Task 6: Making a new "fundamental" object</A></H2> - -All netlists generate output when they reach a ``fundamental'' object, -which is defined as an object containing one or more informational -labels. <P> - -Fundamental objects require several features: -<UL> - <LI> Fundamental objects are expected to be symbols. As in all - symbols, lines are interpreted as part of the symbol drawing, - not as nets. The only ``electrically relevant'' elements on - a symbol are the pins. - <LI> Fundamental objects contain ``info labels'' which tell the - netlist compiler what to do with the information passed to - the object via the pins. Presently, there are three - different "styles" of netlist, named after the primary - format which uses that kind of netlist: - <UL> - <LI> Hierarchical, or ``spice'' netlists - <LI> Flattened, or ``sim'' netlists - <LI> Network, or ``pcb'' netlists - </UL> - Information on each of these netlists is widely available - and distributed with layout and simulation software - packages. In a nutshell, however: - <UL> - <LI> Hierarchical and Flattened netlists both list by - <B>element</B>, with each line of the file consisting - of an element name followed by a list of network names - corresponding to each of the element's pins. - <font color=red> - <BR><I>example:</I> - </font> - <font color=green> - <TT>Q1 net2 D0 gnd npn1</TT><BR> - </font> - indicates that NPN transistor ``Q1'' has a collector - connection to "net2", base connection to "D0", and - an emitter connection to "gnd" (presumably a global - network). - <LI> A Network netlist lists by <B>network</B>, with each - line consisting of a network name followed by a list - of pins in the circuit to which the network connects. - The element names are part of the pin names, with - the circuit hierarchy encoded in the element name by - slashes (`/'), much like a file system directory listing. - <font color=red> - <BR><I>example:</I> - </font> - <font color=green> - <TT> Net3 control/74LS00_1#1-2 display/LED#2-5</TT><BR> - </font> - indicates that the network named "Net3" connects - pin number 2 in the first 74LS00 chip in subcircuit - "control" to pin number 5 of the second LED in subcircuit - "display". - </UL> - <LI> A result of being an object and having an info-label is that the - "Symbol" button is green, indicating a "fundamental" element. -</UL> - -There is another type of symbol called a "trivial" symbol. This cannot be -designated from xcircuit. It is only a optimization which tells xcircuit -that an object does not produce output and is not a sub-schematic, and -therefore can be ignored except for the presence of pins. This prevents -the xcircuit netlist generator from wasting time looking for subschematics -or informational labels. Except for saving compute cycles, there is no -other difference between "trivial" and normal symbols. "Trivial" symbols -are declared in the PostScript file with a "% trivial" line. - -<H2><A NAME="Task7"> -Task 7: A schematic with symbol-less schematics in the hierarchy</A></H2> - -A "subschematic" is a special kind of symbol which, unlike other symbols, -contains electrically relevant objects. Really, it's just a grouping of -electrical objects which bypasses the trouble of making a symbol to -represent the grouping. This can be useful, for instance, in drawing -one-half of a differential amplifier and repeating the schematic, flipped -horizontally. <P> - -XCircuit is extremely sophisticated in its ability to deal with subschematics. -It will determine how the subschematic is used, searching for input and -output "ports" that link the subschematic to the circuit on the level above. <P> - -The file in the xcircuit source "examples" directory -<TT>diffamp_test.ps</TT> is an example of such a file with subschematics. -It represents an obvious situation in which a subschematic is useful: This is -a differential amplifier, so a large portion of the amplifer is duplicated on -the positive and negative sides. <P> - -<CENTER><IMG SRC=giffiles/halfamp.gif><BR><BR> -Differential amplifier sub-schematic: One half of an amplifier. -</CENTER> <BR><BR> - -<CENTER><IMG SRC=giffiles/fullamp_anno.gif><BR><BR> -Differential amplifier complete schematic -</CENTER> <BR><BR> - -The second of the two figures above shows how the half-amplifer subschematic -connects into the differential amplifier schematic. Note that no pins (pin -labels) have been explicitly called out in the subschematic. All connections -are determined from context. Different contexts which xcircuit finds and -interprets are marked with red circles on the differential schematic -(the <A HREF=giffiles/fullamp.gif>unannotated version</A> of the schematic can be -found here). The annotations, called out by number, are as follows: <P> - -<font color=red> -<OL> - <LI> Port makes connection to a wire (polygon) - <LI> Port makes connection on one side but not on the other - <LI> Port makes connection to a label (pin) - <LI> Port makes connection to a pin of another object - <LI> Two ports in the subschematic get merged into one network - <LI> (not shown) Port connects to port on another subschematic -</OL> -</font> - -On any given schematic page, port connections between symbols, between -subschematics, and from subschematics to symbols and vice versa, may be -from any layer in the circuit hierarchy to any other layer in the circuit -hierarchy. <P> - -<H2><A NAME="Task8">Task 8: Identifying electrical connections</A></H2> - -XCircuit has the ability to highlight all wires belonging to a single -electrical network. This is a very useful feature for debugging -schematics, finding shorts and open-circuits. The command for -identifying network connectivity is menu selection -<I>Netlist->Highlight Connectivity</I> and the default key binding -for the same function is <B>Alt-w</B>. The key macro operates immediately -on either selected elements or whatever element is nearest the cursor, -while the menu item either operates immediately on any selected element -or prompts for a mouse click on an element to show connectivity for. -If multiple elements are selected prior to choosing the connectivity -function, connectivity will be searched for the first item encountered -in the select list which is part of a valid network. <P> - -As an example, load the file <TT>diffamp_test</TT> used previously in -Task 7 (<TT>examples/diffamp_test.ps</TT> in the XCircuit source -distribution). Place the pointer over any wire and type <B>Alt-w</B>. -The whole network will be ``highlighted'' in green. Note some features -of connectivity searches: -<UL> - <LI> Global networks such as ground have all parts of the network - highlighted, even if they are physically separated on the - drawing. - <LI> Network selection is a different from element selection: It is - recursive. In the schematic drawing for "ampl_test" (Page 2), - networks inside the "half_amp" sub-schematic can be selected for - connectivity search, even though for purposes of normal move, - copy, etc., the "half_amp" can only be selected as an entire object. - <LI> Pins can be selected as well as wires, and pins belonging to a - network will be highlighted along with the rest of the network. - <LI> The name of the network is printed in the message window at the - bottom of the xcircuit screen. Hierarchy is relevant: A network - may have a different name depending on whether it is selected on - the top-level schematic, or somewhere down in the schematic - hierarchy. The network name displayed is that name belonging to - the network at the <I>highest</I> level of the hierarchy. - <LI> Additional networks can be highlighted without erasing the original. - To erase one network before starting another, click the right - mouse button once ("Cancel" operation). -</UL> - -Currently, there is no method to detect and return a network name for -pin positions connecting two objects (that is, networks which do not -have a polygon or label explicitly attached to them in the schematic -drawing). <P> - -<I>Note:</I> Network connectivity searches only work as described above -in XCircuit version 2.3.5 rev. 1 and later. <P> - -<H2><A NAME="Task9">Task 9: A symbol on its own schematic</A></H2> - -File example "<TT>examples/logic8.ps</TT>" in the source distribution has -an example of a symbol on its own schematic. Run xcircuit on this example -file, and go to page 2, the schematic for the 2-input NAND gate. At the -bottom of the schematic is a picture of the "NAND" symbol. Note that -you can "push" (">" key) into the symbol picture, and then cross over -("/" key) to the schematic, returning to where you started in a circular -manner. You can do this all day until you run out of memory, so it is -not recommended. Fortunately, when xcircuit generates the circuit netlist, -it is not fooled into this recursive path. Instead, it detects the -presence of the recursion and will not treat the symbol picture as part -of the network. You can verify this by generating a SPICE netlist for -circuit "logic8" and reading the resulting file "<TT>logic.spc</TT>": - -<FONT color=green> -<BLOCKQUOTE> -<PRE> -*SPICE circuit "logic" from XCircuit v2.30 - -.GLOBAL Vdd -.GLOBAL GND - -.subckt invert Out In -M1 Out In Vdd Vdd pmos -M2 Out In GND GND nmos -.ends - -.subckt nand Out In.1 In.2 -M1 Out In.1 Vdd Vdd pmos -M2 Out In.1 ext13 GND nmos -M3 ext13 In.2 GND GND nmos -M4 Out In.2 Vdd Vdd pmos -.ends - -X1 int1 Pin.1 invert -X2 Pin.4 int1 Pin.2 nand -X3 Pin.5 Pin.2 Pin.3 nand -.end -</PRE> -</BLOCKQUOTE> -</FONT> - -As you can see, the circuit has been created as intended, and the symbols -marked on their own schematics do not present a problem. <P> - -<I>Caveat:</I> It is possible to do more subtle forms of recursion. For -instance, in the "<TT>logic8</TT>" circuit, redraw the NAND2 schematic so -that the output goes through a buffer made of two inverters. This is -perfectly reasonable, by itself. Now, go to the inverter schematic, and -in place of the nMOS + pMOS stack, put a NAND2 gate with its two inputs -tied together between the In and Out pins. This is also perfectly reasonable, -by itself. However, the two changes taken together try to define the -NAND2 and inverter in terms of each other, which is recursive. Versions -of xcircuit before 2.3.5 rev. 1 will simply crash. Later versions will -detect the error as a suspiciously deep hierarchy, and halt the netlist -process before the processor hits a stack limit. <P> - -<H2><A NAME="Task10">Task 10: "sim" format and flattened netlists</A></H2> - -"sim" netlists are normally associated with digital VLSI circuits, but they -also can be useful for netlist comparisons of digital, analog, and mixed-signal -VLSI circuits. The standard "sim" format defines device types for nFET -(enhancement and depletion) and pFET transistors, resistors (explicitly -defined and lumped), and capacitors. However, the format has variously -been extended to cover other devices such as bipolar transistors, and any -variation of any component, provided it gets a unique letter assigned for -the device and is meaningful to whatever software uses the format downstream. <P> - -The main difference between "sim" and "SPICE" netlists is that SPICE allows -hierarchical descriptions containing subcircuits, whereas "sim" is by -definition a "flattened" version of a circuit. There is very little that -is necessary to say here, other than to note the ability of XCircuit to -generate flattened circuit netlists. XCircuit also has an option to -generate flattened SPICE. Note the difference in output, for instance, -between the output "logic.spc" for circuit "logic8" (shown in Task 9, above), -and the following output "logic.fspc" for the same circuit (generated by -<I>Netlist->Write flattened SPICE</I>: - -<FONT color=green> -<BLOCKQUOTE> -<PRE> -*SPICE (flattened) circuit "logic" from XCircuit v2.30 - -M1 int1 Pin.1 Vdd Vdd pmos -M2 int1 Pin.1 GND GND nmos -M3 Pin.4 int1 Vdd Vdd pmos -M4 Pin.4 int1 nand1/ext13 GND nmos -M5 nand1/ext13 Pin.2 GND GND nmos -M6 Pin.4 Pin.2 Vdd Vdd pmos -M7 Pin.5 Pin.2 Vdd Vdd pmos -M8 Pin.5 Pin.2 nand2/ext13 GND nmos -M9 nand2/ext13 Pin.3 GND GND nmos -M10 Pin.5 Pin.3 Vdd Vdd pmos -</PRE> -</BLOCKQUOTE> -</FONT> - -<H2><A NAME="Task11">Task 11: "pcb" type netlists</A></H2> - -XCircuit is ostensibly an ideal platform for generating schematic netlists -to compare against PCB (printed circuit board) designs. However, by -default (at least for now), xcircuit libraries are set up primarily for -VLSI layout work, so PCB netlisting requires a little extra work -(because a lot of users want to use XCircuit for PCB netlisting, I'd like -some help putting together libraries of IC's). <P> - -PCB netlists are fundamentally different from SPICE and sim netlists. -Instead of listing by <I>device</I>, the file lists by <I>network</I>. -The format is flattened, probably on the assumption that printed circuit -boards have no hierarchy. By default, xcircuit will list device pins -(network connections) by the name of the object followed by a dash and -the name of the pin to which the network connects. Any hierarchy present -in the xcircuit file is flattened by separating layers of the hierarchy -with slashes, as is done for the "sim" format. <P> - -For PCB symbols, the name of the object is used as the part name in the -netlist unless the object's symbol has a "pcb:" info label. In addition, -the sequence number of the part is assigned automatically unless declared -as a parameter in the "pcb:" info label. Typically, PCB components are -labeled "U" for integrated circuits, "R" for resistors, "C" for capacitors, -"J" for connectors and jumpers, and so forth. The sequence number for -each part, if automatically generated, will be unique with respect to -the name used for the part in the netlist output.<P> - -Consider Harry Eatons's ``<B>LED</B>'' design which comes as an example -in the "PCB" distribution. The relevant files are also linked -here: -<OL> - <LI> <A HREF=pcb/LED>LED</A> (a PCB-format file) - <LI> <A HREF=pcb/LED.NET>LED.NET</A> (a PCB netlist file) -</OL> - -Creating the schematic is very complicated, so I've done much of the -work to get you started. Here is an xcircuit file which can be used to -create a (partial, because it's unfinished) netlist to compare -against the <B>LED</B> printed circuit layout and netlist. - -<UL> - <LI> <A HREF=pcb/FlareLED.ps>FlareLED.ps</A> (an XCircuit-format file) -</UL> - -The important thing to notice about this file is the way components are -handled. Each component has an object name (a generic name, such as -"Resistor" or a part description, such as "LTC490"), text which may or -may not duplicate the title, and text which parameterizes the object -(such as resistor and capacitor values). In addition, each object is -parameterized for use in PCB. This requires a string inside the object, -an "info label" which is interpreted by the pcb netlist generator in -xcircuit. Also inside the object, not visible from the top level -drawing, are pin numbers for each object. For integrated circuits, -there is text on each pin which is a <I>functional</I> pin description. -This is not needed for the netlist, but makes it much easier to understand -the schematic. - -<OL> - <LI> Start up xcircuit on the file <A HREF=pcb/FlareLED.ps>FlareLED.ps</A>. - <LI> Go to the User Library (the library containing all of the ICs and - connectors in the schematic). - - <CENTER><IMG SRC=pcb/flare_objects.gif><BR> - Integrated circuits and components library for FlareLED. - </CENTER> <BR> - - <LI> Edit ("<B>></B>" key) the PIC controller (object named - "PIC16C54". - <LI> You will note several things: This is an 18-pin chip, with pin - labels corresponding to the actual DIP package pin numbers. - Next to each pin number is the functional name for that pin. - On the top level page, only the functional names appear. On - the top level page, the device can be flipped, rotated, etc., - without regard to the physical PCB layout. It is only necessary - that the networks of wires correctly connect the pins of - all the components. - <LI> The "PIC16C54" object, like all the integrated circuits in the - schematic, has an "info label" which reads <BR><BR> - <font color=green><BLOCKQUOTE><PRE><TT> - pcb:U? - </TT></PRE></BLOCKQUOTE></font> - - <CENTER><IMG SRC=pcb/pic_object.gif><BR> - PIC 16C54 object, as edited from the library (default parameters) - </CENTER> <BR> - - <LI> Edit this info label ("<B>e</B>" key). Note that the question - mark is a parameter. - <LI> Escape from the label edit (3rd mouse button) and return to the - main page ("<B>1</B>" key). Now edit the <I>same</I> object, - the PIC16C54, from this page ("<B>></B>" key). - <LI> Now you will see that the info label reads - <font color=green><BLOCKQUOTE><PRE><TT> - pcb:U5 - </TT></PRE></BLOCKQUOTE></font> - This is an <I>instance</I> value. It corresponds to the location - and label for an IC on the PCB layout. <BR><BR> - - <CENTER><IMG SRC=pcb/pic_instance.gif><BR> - PIC 16C54 instance, as edited from the top page (instanced parameters) - </CENTER> <BR> - - <LI> End the label edit and return once again to the top level page. - From the menu, choose <I>Netlist->Write pcb</I>. The result - is a file named <TT>FlareLED.pcb</TT>. Compare this file to - the supplied netlist file named <TT>LED.NET</TT>. The XCircuit - schematic is not complete, but the parts that are correspond in - both netlist files. - <LI> <I>Challenge</I>: Finish this schematic and show that the two - netlists are the same (``Layout vs. Schematic'', or ``LVS''). - <LI> <I>Another Challenge</I>: Create an xcircuit library containing - the entire 7400 digital IC series and send it to me so I can - post it on this website. -</OL> - -<H2><A NAME="Task12">Task 12: Multiple-gate chips in PCB netlists</A></H2> - -Pins can be parameterized beginning in version 2.5.2 (it is allowed in -earlier versions but will cause invalid netlist output). Pins normally -work differently than label strings when making substitutions during -netlist generation; it is the network name which is substituted. -However, PCB-type netlists write pin names directly to the output, and -this is where parameterized pin names can be useful: For example, a -``quad part'' like a 7400 quad NAND chip has four NAND gates which are -identical except for their pin numbers on the package. Normally, a -PCB netlist would declare these as four parts, say, ``U1-1'' through -``U1-4''. By parameterizing all of the pin names, four instances can -be made representing the four gates inside the 7400 chip, each having -the correct pinout. <P> - -A method for saving the pinouts of gate subunits in chips was added -to version 2.5.2 along with the meaningful method for generating PCB -netlists from parameterized pin names. This method allows multiple -instances of a single object to appear on the same library page. -These copies should represent the object with different parameter -values. The most common use of this method is to parameterize pins -of a logic gate that is a subunit of a multiple-gate IC, and show -each of the subunits on the library page, where they can be used to -generate a PCB netlist. <P> - -Using XCircuit 2.5.2 or later, installed, start xcircuit and go to the -fourth library page ``<B>Library: quadparts</B>''. You will see the -following set of objects (partial view of the library): - -<CENTER><IMG SRC=giffiles/quadparts.gif><BR><BR> -Partial view of the ``Quadparts'' library (from preliminary version). -</CENTER> <BR><BR> - -Note that there are four copies of each named object. Each of the copies has -the same name, but three of the names are ``shaded out'' in a gray color. -The part with the name written in black is the original library part. It -contains parameters, but like standard library page objects, it displays all -of the default values for these parameters. As in Tasks 4 and 5, editing -parameter values in this library object will change the default values of -those parameters. The objects with the names printed in gray are -called ``virtual objects.'' They act like objects on a page rather than -objects in a library. Parameters in these objects may take on individual -values, and those specific values are copied along with the object when -it is selected and dragged back to a page. <P> - -<CENTER><IMG SRC=giffiles/nand4.gif><BR><BR> -Editing a library virtual copy (instance) of gate ``quadnand''. -</CENTER> <BR><BR> - -From the library page, grab all four ``quadnand'' objects and bring them -back to Page 1. With the four objects, one can make, for instance, a -delay flip-flop implementation from a single 7400 chip. This is shown -below: - -<CENTER><IMG SRC=giffiles/dff.gif><BR><BR> -<A HREF=psfiles/dff.ps>Delay Flip-Flop</A> using the ``quadparts'' library. -</CENTER> <BR><BR> - -After building the circuit, select <I>Netlist->Write pcb</I>. The -result is a valid PCB netlist for the circuit: - -<FONT color=green> -<BLOCKQUOTE> -<PRE> -!Q U2-2-5 U1-1-3 -D U3-3-9 -CLK U4-4-13 U3-3-10 -int5 U4-4-12 U3-3-8 U2-2-4 -int6 U4-4-11 U1-1-2 -Q U2-2-6 U1-1-1 -</PRE> -</BLOCKQUOTE> -</FONT> - -<H2><A NAME="Task13">Task 13: Modifying netlist formats</A></H2> - -The Python interpreter is supposed to make new netlist formats easy to -implement. However, the Python interface does not yet include access -to netlist information, so for the moment, netlist formats are limited. <P> - -As it stands, netlists must be one of three formats: -<OL> - <LI> Flattened ("sim" or SPICE) - <LI> Hierarchical (with subcircuits in SPICE "subckt" format) - <LI> Netlist (flattened, in a PCB netlist format) -</OL> - -Flattened netlists are the easiest to implement new formats in, since -the only structure in the file is determined by the elements themselves -(not counting comment lines, such as the first line that xcircuit writes -to the netlist file). The other two formats contain syntax that is -(currently) hard-coded into xcircuit (the "subckt" command in hierarchical -SPICE, and the entire syntax of PCB). Information about how to write -devices is encoded into ``informational labels'' (otherwise abbreviated -as ``info labels''). The syntax of info labels is described above in -<B>Task 5</B>. <P> - -Modifications to netlist formats can be useful in several ways: -<OL> - <LI> Implement a completely different netlist type (some subset of VHDL, - for instance) - <LI> Modify an existing format (hspice or pspice syntax vs. ordinary - Berkeley spice3). - <LI> Avoid explicitly drawing circuit schematics for simple devices. - <LI> Write output at the gate level instead of the transistor level. -</OL> - -The last two require some explaining, so start up xcircuit and prepare -for another task. <P> - -<H3> Aggregate output per device </H3> -Here, we will change an "inverter" into a fundamental device consisting -of two transistors in the usual CMOS configuration for the inverter. -By default, XCircuit neither attaches schematics to gates nor defines -aggregate (multiple line) output for a gate because there are too many -ways to define a gate. For instance, the inverter could be an nMOS -device with a p-pullup, or it could be a bipolar-based TTL inverter, -etc., ad nauseum. - -<OL> - <LI> Go to the first library page and drag back an inverter to the - first page. - <LI> Add some pin labels to the input and output nodes. Call them, - say, "in" and "out" (or something less boring, if you prefer). - <LI> Edit the inverter device (<B>></B> key) - <LI> Start an "info label" (<B>I</B> key, or <I>Netlist->Make Info Pin</I> - from the menu) - <LI> Type <BR> - <TT>sim:n %pIn GND %pOut</TT><Alt-Enter><TT>p %pIn Vdd %pOut</TT><BR> - where "<Alt-Enter>" - is the key combination Alt + Enter (also available using the - menu selection <I>Text->Insert->Carriage Return</I>). - Note that spaces, tabs, and other characters will transfer - to the netlist output, although embedded commands such as color, - font, and size change will not. - The embedded carriage return <I>will</I> end up in the netlist - output, as a real carriage return/newline. The result is shown - below. <BR><BR> - - <CENTER><IMG SRC=giffiles/aggregate.gif><BR> - Inverter with informational label for "sim" netlist output. - </CENTER> <BR> - - <LI> Return to the top level page, choose "File->Write Output" to - change the name from "Page 1" to something more useful. - Then, from the menu, select <I>Netlist->Write sim</I>. - The netlist output will look something like the following: <BR> - -<font color=green> -<BLOCKQUOTE> -<PRE><TT> -| sim circuit "aggregate" from XCircuit v2.30 -n in GND out -p in Vdd out -</TT></PRE> -</BLOCKQUOTE> -</font> - - <LI> If you return to editing the symbol "invert", you will find - that after writing the netlist, the "Symbol" button in - the lower left-hand corner of the XCircuit window turned - green, indicating that this symbol is now considered to be - a "fundamental" object. That is, it has an informational - label and contains no subcircuits. -</OL> - -<H3> Output not on the device (transistor) level </H3> - -Suppose, in the above example, we didn't know or care what is the -transistor-level implementation of the inverter, but wanted a SPICE -file showing the hierarchy, for which an inverter subcircuit could -be inserted at a later point. - -<OL> - <LI> Repeat the above task through number <B>4</B>. - <LI> Write for the info label <BR> - <TT>spice:X%i %pIn %pOut inverter</TT> - <LI> Return to the top level page, and write a SPICE netlist. - The netlist output will look something like the following: <BR> - -<font color=green> -<BLOCKQUOTE> -<PRE><TT> -*SPICE circuit "aggregate" from XCircuit v2.30 - -X1 in out inverter -.end -</TT></PRE> -</BLOCKQUOTE> -</font> - - <LI> While this deck is not directly simulatable, it only awaits the - insertion of an inverter model in the form of a subcircuit. -</OL> - -<H2><A NAME="Task14">Task 14: Example: A bridge rectifier for a PCB</A></H2> - -This task will summarize most of what has been covered above in the tutorial -with a practical example, a power supply bridge rectifier for a printed circuit -board layout. The example will work through detailed explanations of each -step, for the benefit of the impatient. <P> - -The bridge rectifier is a simple power supply circuit which transforms an AC -supply (e.g., wall outlet) into a DC current for powering a circuit. The -"bridge" is a diode bridge, a loop of four diodes which act as a full-wave -rectifier. The bridge also acts as a nonlinear resistance in a simple -single-pole R-C low-pass filter. The filter pole is set by a large -polarized capacitor on the rectifier output. The larger the capacitor, -the steadier the output voltage, including resistance to short spikes and -dropouts of the AC supply. <P> - -Usually the bridge rectifier circuit drives the input of a voltage regulator -to clean up the 120Hz bumps generated by the less-than-ideal lowpass filter, -and to adjust the voltage between the transformer and the circuit being -powered. For simplicity, this example will not consider the voltage -regulator. <P> - -For more information about bridge rectifiers, see Horowitz and Hill, -<I>The Art of Electronics</I>, 2nd edition, pages 45 and following -(Cambridge Press, 1989). <P> - -<H3>Step 1</H3> - - If you have xcircuit version 2.3.3 after revision 6, there will be a - symbol "Diode" (with capital-D) in the analoglib2.lps file (the - second library page). If not, you can update your library from this - link: <A HREF=../xcircuit/psfiles/analoglib2.lps>analoglib2.lps</A>, - and skip to Step 2. Alternatively, you can - use the following instructions to generate the PCB-compatible diode - from the simple diode on the first library page (named "diode", no - capital letter). <P> - - The diode symbol "diode" in the first library is not configured for use in - PCBs. This can be changed easily. Go to the first library page (<TT>l</TT> - key macro), and edit the diode symbol (<TT>></TT> key macro). - Change the pin names to "1" and "2" (edit, or <TT>e</TT> key) to match - PCB naming conventions. Finally, add an "info label" for the PCB - netlister (<TT>I</TT> key, or else create a normal label then select - menu item <I>Netlist->Convert Label To...->Info label</I>). The label - text should be - <font color=green> - <BLOCKQUOTE><PRE><TT> - pcb:D? - </TT></PRE></BLOCKQUOTE> - </font> - After creating the label, use the second mouse button to drag a select - box over the question mark. Only the question mark should be highlighted. - Then select menu item <I>Text->Parameterize</I>. As described earlier in - the tutorial, the PCB netlister will use this parameterized string to - determine a part number for the diode, or else the part number can be - explicitly declared by editing the info label from each of the four - instances of symbol "diode" that we will generate. - - <CENTER><BR><IMG SRC=giffiles/pcbdiode.gif><BR></CENTER> <BR> - - Return to a drawing page (<TT><</TT> key, <TT>1</TT> key to go to Page 1) - and continue with Step 2. - -<H3>Step 2</H3> - - Go to the library (<TT>l</TT> key, twice to get to the analoglib2 page, - or once if using an edited version of the simple diode, from Step 1) - and select the diode for copying (<TT>c</TT> key). - This action will take you back to the main - drawing page, with a diode instance in tow. While the diode is still - selected, rotate it (<TT>r</TT> key, as many times as necessary). - Place it four times with a click of the first (left) mouse button, - and finish with a click of the third (right) mouse button. Rotate and - position the diodes as shown below. - - <CENTER><BR><IMG SRC=giffiles/bridge2.gif><BR></CENTER> <BR> - -<H3>Step 3</H3> - - Connect the diodes together in a bridge configuration. While the - diode endpoints are not quite on the drawing grid when the diode is - rotated 45 degrees, they are fairly close (as drawn, see figure - above), and there is some "slop" in the netlist generator when - considering whether two wires are connected together. No special - measures are necessary to ensure the connection. - - <CENTER><BR><IMG SRC=giffiles/bridge3.gif><BR></CENTER> <BR> - - Make a schematic out of the rectifier by selecting all the components - drawn so far, typing <TT>m</TT> to "make" the object, and name - the object "rectifier". This is a "subschematic", as described - above in the tutorial, and pins will be determined from context. - -<H3>Step 4</H3> - - Grab the transformer symbol from the "analoglib2" library (2nd library - page). Add wires to the transformer input, ending in terminals for - the input AC supply. Name these terminals "V+" and "V-" (typographical - suggestion: use the Symbol font for "+" and "-"). - - <CENTER><BR><IMG SRC=giffiles/bridge1.gif><BR></CENTER> <BR> - - Connect the transformer and the rectifier together as shown. - - <CENTER><BR><IMG SRC=giffiles/bridge4.gif><BR></CENTER> <BR> - -<H3>Step 5</H3> - - Grab two capacitors (one polarized, one not) from the second library - page. These are the capacitors with values listed. - They are already configured for use with a PCB netlist. <P> - - The capacitors default to a picofarad value (for use with VLSI - layouts, not PCBs), so the value string needs to be edited to - change this to the "micro" symbol for microFarads. <P> - - <font color=red>Typographical note:</font> <BR> - The best way to do this is to change the font of the whole - string from "Times-Roman" to "Times-RomanISO" (use menu option - <I>Text->Encoding->ISO-Latin1</I> or, while editing the label, - use the <I>Alt-</I><TT>e</TT> key combination). The "micro" - symbol (Greek "mu") is available from the font symbol table (accessed - with the backslash key while editing text). The change to ISO - encoding will be necessary on both the value string and the "SPICE" - info label. <P> - - <font color=red>Netlist note:</font> <BR> - The SPICE netlist generator will convert the "mu" symbol to the "u" - used by SPICE. This happens regardless of whether the ISO-encoded - "mu" or the Symbol font "mu" is used. Of course, one may also - write ASCII "u" in the value string. - - <CENTER><BR><IMG SRC=giffiles/pcbcap.gif><BR></CENTER> <BR> - -<H3>Step 6</H3> - - Connect all the parts together on the top level page as shown. - - <CENTER><BR><IMG SRC=giffiles/bridge6.gif><BR></CENTER> <BR> - - Add finishing touches, and the completed bridge rectifier should - look something like the one shown below. - - <CENTER><BR><IMG SRC=giffiles/bridge.gif><BR></CENTER> <BR> - - The xcircuit file can be obtained here: <A HREF=psfiles/bridge.ps>bridge.ps</A>. - -<H3>Step 7</H3> - - Select menu option <I>File->Write XCircuit PS</I> and select a "Page label" - for the file. This will be the name used by the netlist generator for - the netlist file name. <P> - - Generate the PCB netlist by selecting menu option <I>Netlist->Write pcb</I>. - The result is shown below:<BR><BR> - - <font color=red> - <BLOCKQUOTE><PRE><TT> - V- T1-2 - V+ T1-1 - int5 T1-3 rectifier1/D4-1 rectifier1/D3-2 - int6 T1-4 rectifier1/D2-1 rectifier1/D1-2 - Vout rectifier1/D3-1 rectifier1/D1-1 C2-1 C1-1 - GND rectifier1/D4-2 rectifier1/D2-2 C2-2 C1-2 - </TT></PRE></BLOCKQUOTE> - </font> - <BR> - - and can also be obtained from this link: - <A HREF=pcb/bridge.pcb>bridge.pcb</A>. - -<H3>Step 8</H3> - - The example is essentially done, but we can take it one step further - by generating a symbol called "power_supply" to represent this circuit - in a larger schematic. <P> - - Go to an empty page (Page 2, perhaps) and generate the following figure:<BR> - - <CENTER><BR><IMG SRC=giffiles/powersup.gif><BR></CENTER> <BR> - - Labels in black are normal text (created with the <TT>t</TT> key), and labels - in red are pins (created with the <TT>T</TT> key). After drawing, select - everything and put it all into an object (<TT>m</TT> key). Name the object - "power_supply". <P> - -<H3>Step 9</H3> - - Now go back to Page 1, the bridge rectifier schematic. Choose the menu - selection <I>Netlist->Associate with Symbol</I>. You will be taken to - the library directory. Click (once) on the user library. You will be - taken directly to the user library. Finally, click (once) on the symbol - "power_supply". Now you should be returned to the bridge rectifier - schematic, with the difference that there is a white button labeled - "Symbol" in the bottom left-hand corner of the window. Clicking on the - button toggles the drawing window between the schematic and its - (newly associated) symbol. <P> - -<H3>Step 10</H3> - - Return to Page 2, the top-level schematic with the "power_supply" symbol. - Try out the following (trivial to the point of uselessness) circuit - (also available at this link: <A HREF=psfiles/powersup.ps>powersup.ps</A>): - <BR> - - <CENTER><BR><IMG SRC=giffiles/powersup2.gif><BR></CENTER> <BR> - - Go to menu selection <I>File->Write XCircuit PS</I> and rename the "Page - label" to "powersup". Then select <I>Netlist->Write pcb</I> to - generate a new PCB netlist. <P> - - Now look at the result: <BR><BR> - - <font color=red> - <BLOCKQUOTE><PRE><TT> - NET1 power_supply1/T1-3 power_supply1/rectifier1/D4-1 \ - power_supply1/rectifier1/D3-2 - NET2 power_supply1/T1-4 power_supply1/rectifier1/D2-1 \ - power_supply1/rectifier1/D1-2 - In+ power_supply1/T1-1 - In- power_supply1/T1-2 - Out power_supply1/rectifier1/D3-1 power_supply1/rectifier1/D1-1 \ - power_supply1/C2-1 power_supply1/C1-1 R1-1 - GND power_supply1/rectifier1/D4-2 power_supply1/rectifier1/D2-2 \ - power_supply1/C2-2 power_supply1/C1-2 R1-2 - </TT></PRE></BLOCKQUOTE> - </font> - <BR> - - which can also be obtained from this link: - <A HREF=pcb/powersup.pcb>powersup.pcb</A>. - - Note that the main difference is that the netlist is hierarchical, with - components inside the power supply being referenced by the prepended - name "power_supply1". The resistor, the only component on the top-level - page, is not so prefixed. Throughout the netlist, net names take the - name given in the highest level of the hierarchy. <P> - -<HR> -<P><A HREF=../welcome.html><IMG ALIGN=middle SRC=../giffiles/bluebutton.gif - BORDER=0></A> Back to the xcircuit home page. . . -<P><IMG SRC=../giffiles/line1.gif><P> -email: <I>tim@bach.ece.jhu.edu</I> -</BODY> -</HTML> |