summaryrefslogtreecommitdiff
path: root/Windows/spice/examples/xspice/table/table-generator-q-2d.sp
diff options
context:
space:
mode:
Diffstat (limited to 'Windows/spice/examples/xspice/table/table-generator-q-2d.sp')
-rw-r--r--Windows/spice/examples/xspice/table/table-generator-q-2d.sp109
1 files changed, 109 insertions, 0 deletions
diff --git a/Windows/spice/examples/xspice/table/table-generator-q-2d.sp b/Windows/spice/examples/xspice/table/table-generator-q-2d.sp
new file mode 100644
index 00000000..2c174dd0
--- /dev/null
+++ b/Windows/spice/examples/xspice/table/table-generator-q-2d.sp
@@ -0,0 +1,109 @@
+** npn bipolar: table generator with q 2D (Vce, Ib)
+* This file may be run by 'ngspice table-generator-q-2d.sp'
+* It will generate a 2D data table by simulating the bipolar collector current
+* as function of collector voltage and base current. The simulation uses
+* the ngspice bipolar model and model parameters of a clc409 transitor.
+* This table is an input file for the XSPICE 2D table model.
+* You may change the step sizes vcstep ibstep in CSPARAM
+* to obtain the required resolution for the data.
+* These tables will contain pure dc data. For transient simulation you may
+* need to add some capacitors to the device model for a 'real world' simulation.
+
+*NPN
+.csparam vcstart=-0.2
+.csparam vcstop=6.4
+.csparam vcstep=0.05
+.csparam ibstart=-0.1u
+.csparam ibstop=200u
+.csparam ibstep=0.1u
+
+
+** Circuit Description **
+Q3 2 1 3 QINN
+
+ib 0 11 2u
+Rb 11 1 1
+vce 2 0 5
+vee 3 0 0
+
+.control
+** output file **
+set outfile = "qinn-clc409-2d-1.table"
+dc vce -0.1 6 0.05 ib -0.1u 2u 0.1u
+if not $?batchmode
+plot i(vee)
+plot v(1) ylimit -0.2 0.8
+endif
+if (1)
+*goto next
+echo *table for bipolar qinn CLC409 > $outfile
+
+let xcount = floor((vcstop-vcstart)/vcstep) + 1
+let ycount = floor((ibstop-ibstart)/ibstep) + 1
+echo *x >> $outfile
+echo $&xcount >> $outfile
+echo *y >> $outfile
+echo $&ycount >> $outfile
+let xvec = vector(xcount)
+let yvec = vector(ycount)
+
+let loopx = vcstart
+let lcx=0
+while lcx < xcount
+ let xvec[lcx] = loopx
+ let loopx = loopx + vcstep
+ let lcx = lcx + 1
+end
+echo *x row >> $outfile
+echo $&xvec >> $outfile
+
+let lcy=0
+let loopy = ibstart
+while lcy < ycount
+ let yvec[lcy] = loopy
+ let loopy = loopy + ibstep
+ let lcy = lcy + 1
+end
+echo *y column >> $outfile
+echo $&yvec >> $outfile
+
+let lcy=0
+let loopy = ibstart
+while lcy < ycount
+ alter ib loopy
+ dc vce $&vcstart $&vcstop $&vcstep
+* let lcx=0
+* let loopx = vdstart
+* dowhile loopx le vdstop
+* alter vds loopx
+* op
+* let xvec[lcx] = i(vss)
+* destroy i(vss)
+* let loopx = loopx + vdstep
+* let lcx = lcx + 1
+* end
+ let xvec = i(vee)
+ echo $&xvec >> $outfile
+ destroy dc2
+ let loopy = loopy + ibstep
+ let lcy = lcy + 1
+end
+
+label next
+end
+
+.endc
+
+.MODEL QINN NPN
++ IS =0.166f BF =3.239E+02 NF =1.000E+00 VAF=8.457E+01
++ IKF=2.462E-02 ISE=2.956E-17 NE =1.197E+00 BR =3.719E+01
++ NR =1.000E+00 VAR=1.696E+00 IKR=3.964E-02 ISC=1.835E-19
++ NC =1.700E+00 RB =118 IRB=0.000E+00 RBM=65.1
++ RC =2.645E+01 CJE=1.632E-13 VJE=7.973E-01
++ MJE=4.950E-01 TF =1.948E-11 XTF=1.873E+01 VTF=2.825E+00
++ ITF=5.955E-02 PTF=0.000E+00 CJC=1.720E-13 VJC=8.046E-01
++ MJC=4.931E-01 XCJC=589m TR =4.212E-10 CJS=629f
++ MJS=0 KF =2.000E-12 AF =1.000E+00 FC =9.765E-01
+*
+
+.end