summaryrefslogtreecommitdiff
path: root/graphics/circuit_macros/examples/fet.m4
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-02-18 03:02:28 +0000
committerNorbert Preining <norbert@preining.info>2020-02-18 03:02:28 +0000
commitbb5325dae4202b519b7210a338651301e048998d (patch)
tree4caa8d8c62275cb193df85d10f8f0e10bab587b3 /graphics/circuit_macros/examples/fet.m4
parent67394fd2cfa6167f7e2316237629bec93851c1fb (diff)
CTAN sync 202002180302
Diffstat (limited to 'graphics/circuit_macros/examples/fet.m4')
-rw-r--r--graphics/circuit_macros/examples/fet.m4170
1 files changed, 170 insertions, 0 deletions
diff --git a/graphics/circuit_macros/examples/fet.m4 b/graphics/circuit_macros/examples/fet.m4
new file mode 100644
index 0000000000..08498ef83d
--- /dev/null
+++ b/graphics/circuit_macros/examples/fet.m4
@@ -0,0 +1,170 @@
+.PS
+# `fet.m4'
+cct_init
+
+dwn = 0.9
+dwn = 1.0
+rgt = 0.9
+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) ]')
+
+define(`rmove',0.75)
+define(`dir_',`right_')
+
+Orig: Here
+dir_
+ { move left 0.2 }
+ {J: j_fet(right_ dimen_,,,E)
+ "{\tt j\_fet(right\_ dimen\_,{,},E)}" wid 1.75 \
+ with .nw at last [].sw+(0.0,-0.25)
+ "$G$" at last [].G rjust above
+ "$S$" at last [].S rjust
+ "$D$" at last [].D ljust
+ }
+
+ move right_ 0.9; dir_
+ {j_fet(,,P,)
+ "{\tt j\_fet(,{,}P,)}" at last [].s+(0,-0.05) below
+ "$G$" at last [].G rjust
+ "$S$" at last [].S rjust
+ "$D$" at last [].D ljust
+ }
+
+ move right_ 0.9; dir_
+ {e_fet(,R,,)
+ "{\tt e\_fet(,R,{,})}" at last [].s+(0,-0.05) below
+ "$G$" at last [].G rjust
+ "$S$" at last [].S rjust
+ "$D$" at last [].D ljust
+ }
+
+ {move down_ dwn; dir_
+ e_fet(,,P)
+ "{\tt e\_fet(,{,}P)}" at last [].s+(0.1,-0.2) below}
+
+ move right_ 0.9; dir_
+ {d_fet(,,,)
+ "{\tt d\_fet(,{,},)}" at last [].s+(0,-0.05) below}
+
+ {move down_ dwn; dir_
+ d_fet(,,P)
+ "{\tt d\_fet(,{,}P)}" at last [].s+(0,-0.05) below}
+
+ move right_ 0.9; dir_
+ {e_fet(,,,S)
+ "{\tt e\_fet(,{,},S)}" at last [].s+(0,-0.05) below}
+
+ {move down_ dwn; dir_
+ e_fet(,,P,S)
+ "{\tt e\_fet(,{,}P,S)}" at last [].s+(0,-0.2) below}
+
+ move right_ 0.9; dir_
+ {d_fet(,,,S)
+ "{\tt d\_fet(,{,},S)}" at last [].s+(0,-0.2) below}
+
+ {move down_ dwn; dir_
+ d_fet(,,P,S)
+ "{\tt d\_fet(,{,}P,S)}" at last [].s+(0,-0.05) below}
+
+ move right_ 0.9; dir_
+ {c_fet(,,,)
+ "{\tt `c\_fet'(,{,},)}" at last [].s+(0,-0.05) below}
+
+ {move down_ dwn; dir_
+ c_fet(,,P)
+ "{\tt `c\_fet'(,{,}P)}" at last [].s+(0,-0.2) below}
+
+move down 1; right_
+ [
+ linewid = linewid*1.2
+
+ Q1: mosfet(,,dGSDF,)
+ {"\tt `mosfet'(,{,}dGSDF,)" wid 1.25 \
+ with .nw at last [].sw+(-0.2,-0.05)
+ thinlines_
+ arrow <- down .05 left .15 from (Q1.G.x,Q1.G.y-0.05)
+ "\tt dG" rjust
+ arrow <- down .10 left .30 from Q1.Channel.start+(.15,0)
+ "\tt F" rjust
+ arrow <- down .05 left .15 from (Q1.S.x,Q1.S.y+0.05)
+ "\tt S" rjust
+ arrow <- down .05 right .15 from (Q1.D.x,Q1.D.y+0.05)
+ "\tt D" ljust
+ thicklines_ }
+
+ move right_ rmove
+ Q2: mosfet(,,uHSDF,)
+ {"\tt `$\ldots$'(,{,}uHSDF,)" at last [].s+(0,-0.15) below
+ thinlines_
+ arrow <- down .05 left .15 from (Q2.G.x,Q2.G.y-0.05)
+ "\tt uH" rjust
+ thicklines_ }
+
+ move right_ rmove
+ Q3: mosfet(,,dMEDSQuB,)
+ {"\tt `$\ldots$'(,{,}dMEDSQuB,)" at last [].s+(0,-0.05) below
+ thinlines_
+ arrow <- down .05 left .15 from (Q3.G.x,Q3.G.y-0.05)
+ "\tt dM" rjust
+ arrow <- down .13 left .30 from Q3.Channel.start+(.12,0)
+ "\tt E" rjust
+ arrow <- down .05 left .10 from Q3.S+(.06,0)
+ "\tt Q" rjust
+ arrow <- down .08 right .24 from (Q3.B.x,Q3.B.y+0.175)
+ "\tt uB" ljust
+ thicklines_ }
+
+ move right_ rmove
+ Q4: mosfet(,,uMEDSuB)
+ {`"{\tt $\ldots$(,{,}uMEDSuB)}"' at last [].s+(0,-0.15) below
+ "$G$" at last [].G rjust
+ "$S$" at last [].S rjust
+ "$D$" at last [].D ljust
+ "$B$" at last [].B below
+ }
+
+ move right_ rmove
+ Q5: mosfet(,,ZSDFdT,)
+ {"\tt `$\ldots$'(,{,}ZSDFdT,)" at last [].s+(0,-0.05) below
+ thinlines_
+ arrow <- down .08 left .08 from (Q5.S.x,Q5.S.y+0.12)
+ "\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)
+ "\tt dT" ljust
+ thicklines_ }
+
+ move right_ rmove
+ up_
+ Q6: IRF4905 with .c at Here
+ {`"\tt IRF4905"' at Q6.s+(0,-0.15) below
+ "$G$" at Q6.G rjust
+ "$D$" at Q6.D ljust above
+ "$S$" at Q6.S ljust below
+ }
+ ] with .nw at J.sw+(0,-1.35) #Orig+(-0.26,-1.2)
+
+ right_
+ M1: mosfet(,,dBSDFQM1,E) with .nw at J.nw+(0,-dwn)
+ "$G0$" at M1.G0 above rjust
+ "$G1$" at M1.G1 above ljust
+ {"\tt `mosfet'(,{,}dBSDFQM1,E)" wid 1.45 \
+ with .nw at last [].sw+(0,-0.23) }
+ M2: mosfet(,,dBSDFQuM1) with .nw at M1.ne+(0.5,0)
+ "$G0$" at M2.G0 above ljust
+ "$G1$" at M2.G1 above rjust
+ {"\tt ...(,{,}dBSDFQuM1)" wid 1.25 \
+ with .n at last [].s+(0,-0.05) }
+
+.PE