.PS # `fetDPV.m4' cct_init #.PS ## `fetMan.m4' #cct_init textht = 0.1 dnl `IRF4905(linespec,R)' define(`IRF4905', `[ ifelse(`$1',,,`eleminit_(`$1')') Q: mosfet(,`$2',dMdPzEDSQdB,) ifelse(`$1',,` S: Q.tr_xy(-4,-2); line from Q.tr_xy(-2,-2) to S D: Q.tr_xy( 4,-2); line from Q.tr_xy(2,-2) to D', `with .Diode.c at last line.c S: last line.start; D: last line.end; line from S to D ') G: Q.G circle rad 5*dimen_/10 at Q.tr_xy(0,1) ]') # Wrappers for `mosfet'(...), drawing direction right define(`GSD', `"svg_it(G)" at J.G rjust above; "svg_it(S)" at J.S rjust; "svg_it(D)" at J.D ljust ') {move left_ 0.2; right_} Row1: [ J: j_fet { "svg_tt(`j_fet')" at J.s+(0,-0.05) below; GSD } J: j_fet(right_ dimen_,,P,E) with .S at J.D+(0.5,0) { "svg_tt(`j_fet(right_)')" "svg_tt(`dimen_,,P,E')" at J.s+(0,-13bp__) below GSD} J: e_fet with .S at J.D+(0.5,0) { "svg_tt(` e_fet')" at J.s+(0,-0.05) below; GSD } J: e_fet(,,P) with .w at J.e+(0.5,0) { "svg_tt(` e_fet(,,P)')" at J.s+(0,-0.2) below; GSD } J: e_fet(,,P,S) with .w at J.e+(0.5,0) { "svg_tt(` e_fet(,,P,S)')" at J.s+(0,-0.05) below; GSD } J: c_fet with .w at J.e+(0.5,0) { "svg_tt(` c_fet')" at J.s+(0,-0.2) below; GSD } J: c_fet(,,P) with .w at J.e+(0.5,0) { "svg_tt(` c_fet(,,P)')" at J.s+(0,-0.05) below; GSD } ] Row2: [ J: d_fet { "svg_tt(`d_fet')" at J.s+(0,-0.05) below; GSD } J: d_fet(,,P) with .S at J.D+(0.5,0) { "svg_tt(`d_fet(,,P)')" at J.s+(0,-0.2) below; GSD } J: d_fet(,,P,S) with .S at J.D+(0.5,0) { "svg_tt(`d_fet(,,P,S)')" at J.s+(0,-0.05) below; GSD } J: g_fet with .G at J.G+(0.65,0) { "svg_tt(`g_fet')" at J.s+(0,-0.1) below; GSD } J: g_fet(up_ dimen_,,P) with .D at J.G+(0.85,0) { "svg_tt(`g_fet(up_')" at last [].s below "svg_tt( ` dimen_,,P)')" at last [].s + (0,-12bp__) below "svg_tt(G)" at last [].G rjust "svg_tt(S)" at last [].S + (0,2bp__) ljust "svg_tt(D)" at last [].D + (0,2bp__) ljust below } right_ J: Fe_fet with .G at J.D+(0.55,0) {"svg_tt(` Fe_fet')" at J.s+(0,-0.05) below; GSD } J: Fe_fet(,,TEDQSuB) with .S at J.D+(0.5,0) {"svg_tt(`...(,,TEDSQuB)')" at J.s+(0,-0.2) below; GSD thinlines_ arrow <- down .05 left .18 from (J.G.x,J.G.y-0.1) "svg_tt(T)" rjust thicklines_ } move right_ 0.6 up_ Q6: IRF4905 with .c at Here {"svg_tt(`IRF4905')" at Q6.s+(0,-0.0) below "svg_tt(G)" at Q6.G rjust "svg_tt(D)" at Q6.D ljust above "svg_tt(S)" at Q6.S ljust } ] with .nw at Row1.sw+(0,-0.1) #.PE #.PS # `fetcompMan.m4' slightly modified #cct_init define(`elbox',`{R: box wid 4*m4_U ht 7*m4_U outlined "lightgray" thick 0.4 \ `$1'}') # The `mosfet' components Row3: [ movewid = 1mm__ right_ elbox Q: mosfet with .S at R.sw; {"svg_tt(`mosfet ')" at R.s below} elbox(with .w at R.e+(0.15,0)) Q: mosfet(,,uS) with .S at R.sw; {"svg_tt(uS)" at R.s below} dx = 0.10 foreach_(`opt', `elbox(with .w at R.e+(dx,0)) Q: mosfet(,,opt) with .S at R.sw; {"svg_tt(opt)" at R.s below}', D,dB,E,F,uG,dH,M,uM,dM,M1,uM2,M1Z,Q,R,dT,X) foreach_(`opt', `elbox(with .w at R.e+(dx,0)) Q: mosfet(,,opt) with .S at R.sw; {"svg_tt(opt)" at Q.s below}', K,OPy) ] with .nw at Row2.sw+(0,-0.1) Row4: [ linewid = linewid*1.2 Q1: mosfet(,,dGSDF) {"svg_tt(`mosfet'(,,dGSDF))" wid 1.25 with .nw at last [].sw+(-0.2,-0.1) thinlines_ arrow <- down .05 left .15 from (Q1.G.x,Q1.G.y-0.05) "svg_tt(dG)" rjust arrow <- down .10 left .30 from Q1.Channel.start+(.15,0) "svg_tt(F)" rjust arrow <- down .05 left .15 from (Q1.S.x,Q1.S.y+0.05) "svg_tt(S)" rjust arrow <- down .05 right .15 from (Q1.D.x,Q1.D.y+0.05) "svg_tt(D)" ljust thicklines_ } move right_ 0.5 Q2: mosfet(,,uHSDF) {"svg_tt(`...'(,,uHSDF))" at last [].s+(0,-0.18) below thinlines_ arrow <- down .05 left .15 from (Q2.G.x,Q2.G.y-0.05) "svg_tt(uH)" rjust thicklines_ } move right_ 0.5 J: mosfet(,,dMEDSQuB,) {"svg_tt(`...'(,,dMEDSQuB))" at last [].s+(0,-0.05) below thinlines_ arrow <- down .05 left .15 from (J.G.x,J.G.y-0.05) "svg_tt(dM)" rjust arrow <- down .13 left .30 from J.Channel.start+(.12,0) "svg_tt(E)" rjust arrow <- down .05 left .10 from J.S+(.06,0) "svg_tt(Q)" rjust arrow <- down .08 right .24 from (J.B.x,J.B.y+0.175) "svg_tt(uB)" ljust thicklines_ } move right_ 0.5 J: mosfet(,,uMEDSuB) {"svg_tt(`...(,,uMEDSuB)')" at last [].s+(0,-0.18) below "svg_tt(G)" at last [].G rjust "svg_tt(S)" at last [].S rjust "svg_tt(D)" at last [].D ljust "svg_tt(B)" at last [].B below } move right_ 0.6 J: mosfet(,,dBSDFQM1,E) with .w at J.e+(0.5,0) "svg_tt(G0)" at J.G0 above rjust "svg_tt(G1)" at J.G1 above ljust {"svg_tt(...(,,dBSDFQM1,E))" at last [].s below } J: mosfet(,,dBSDFQuM1) with .nw at J.ne+(0.4,0) { "svg_tt(G0)" at J.G0 ljust "svg_tt(G1)" at J.G1 rjust "svg_tt(...(,,dBSDFQuM1))" wid 1.25 with .n at last [].s+(0,-0.25) } move right_ 0.4 Q5: mosfet(,,ZSDFdT) {"svg_tt(`...'(,,ZSDFdT))" at last [].s below thinlines_ arrow <- down .08 left .08 from (Q5.S.x,Q5.S.y+0.12) "svg_tt(Z)" rjust arrow from last arrow.end to Q5.Channel.c+(0.05,0) arrow from last arrow.start to (Q5.D.x,Q5.D.y+.05) arrow <- down .08 right .24 from (Q5.G.x,Q5.G.y-0.02) "svg_tt(dT)" ljust thicklines_ } mosfet(,,SDFdT) with .w at last [].e+(0.4,0) {"svg_tt(...(,,SDFdT))" wid 72 bp__ at last [].s+(0,-0.15) below} ] with .nw at last [].sw .PE