27 double DrainSatCurrent;
28 double EffectiveLength;
29 double GateBulkOverlapCap;
30 double GateDrainOverlapCap;
31 double GateSourceOverlapCap;
32 double SourceSatCurrent;
35 double DrainPerimeter;
36 double SourcePerimeter;
39 double lgbs1, lgbs2, lgbs3;
40 double czbd, czbs, czbdsw, czbssw;
41 double PhiB, MJ, MJSW, PhiBSW;
42 double arg, argsw, sarg, sargsw;
109 int ChargeComputationNeeded;
112 double lgbd1, lgbd2, lgbd3, evbd;
121 Dderivs d_Vgb, d_Vgb_Vfb, d_EntSquare, d_Argl5, d_Argl7;
122 Dderivs d_Arg5, d_Ent, d_Vcom, d_VdsPinchoff;
123 Dderivs d_qb, d_qd, d_Vth0, d_Arg1, d_Arg2, d_Arg3;
124 Dderivs d_dummy, d_Vth, d_BVdd, d_Warg1, d_qg;
125 Dderivs d_N, d_Wds, d_Wgs, d_Iexp;
126 Dderivs d_Argl1, d_Argl2, d_Args1, d_Args2, d_Args3;
127 Dderivs d_Beta, d_Vc, d_Term1, d_K, d_VdsSat;
128 Dderivs d_Beta_Vds_0, d_C1, d_C2, d_Beta0;
129 Dderivs d_VgsVth, d_G, d_A, d_Arg, d_DrCur;
130 Dderivs d_Ugs, d_Uds, d_Eta, d_Vpb, d_SqrtVpb, d_Von;
140 EffectiveLength=here->
B1l - model->
B1deltaL * 1.e-6;
147 DrainSatCurrent = 1.0e-15;
151 SourceSatCurrent = 1.0e-15;
159 *(ckt->CKTrhsOld+here->
B1bNode) -
162 *(ckt->CKTrhsOld+here->
B1gNode) -
184 lgbs1 = SourceSatCurrent /
CONSTvt0 + ckt->CKTgmin;
188 lgbs1 = SourceSatCurrent*evbs/
CONSTvt0 + ckt->CKTgmin;
189 lgbs2 = (lgbs1 - ckt->CKTgmin)/(
CONSTvt0*2);
193 lgbd1 = DrainSatCurrent /
CONSTvt0 + ckt->CKTgmin;
197 lgbd1 = DrainSatCurrent*evbd/
CONSTvt0 +ckt->CKTgmin;
198 lgbd2 = (lgbd1 - ckt->CKTgmin)/(
CONSTvt0*2);
220 ChargeComputationNeeded = 1;
254 if((Ugs = here->
B1ugs + here->
B1ugsB * vbs) <= 0 ) {
263 here->
B1udsD*(vds-Vdd)) <= 0 ) {
287 }
else if ( Eta > 1 ) {
302 SqrtVpb = sqrt( Vpb );
304 Von = Vfb + Phi + K1 * SqrtVpb - K2 * Vpb - Eta * vds;
306 d_dummy.
value = -Eta*vds;
317 d_VgsVth.
value = VgsVth;
318 d_VgsVth.
d1_p += 1.0;
320 G = 1./(1.744+0.8364 * Vpb);
337 Arg =
MAX(( 1 + Ugs * VgsVth), 1.0);
339 d_dummy.
value += 1.0;
340 if (d_dummy.
value <= 1.0) {
351 goto SubthresholdComputation;
358 d_Beta_Vds_0.
value = Beta_Vds_0;
372 Beta0 = BVdd + dBVdddVds * (vds - Vdd);
382 VddSquare = Vdd * Vdd;
383 C1 = ( -BVdd + Beta_Vds_0 + dBVdddVds * Vdd) / VddSquare;
386 d_C1.
value += dBVdddVds * Vdd;
389 C2 = 2 * (BVdd - Beta_Vds_0) / Vdd - dBVdddVds;
393 d_C2.
value -= dBVdddVds;
394 Beta0 = (C1 * vds + C2) * vds + Beta_Vds_0;
398 PlusDeriv(&d_Beta0,&d_Beta0,&d_Beta_Vds_0);
413 Vc = Uds * VgsVth / A;
421 Term1 = sqrt( 1 + 2 * Vc );
423 d_Term1.
value += 1.0;
425 K = 0.5 * ( 1 + Vc + Term1 );
429 VdsSat = VgsVth / ( A * sqrt(K));
438 DivDeriv(&d_VdsSat,&d_VgsVth,&d_VdsSat);
444 Argl1 = 1 + Uds * vds;
453 d_Argl1.
value += 1.0;
457 Argl2 = VgsVth - 0.5 * A * vds;
461 DrCur = Beta * Argl2 * vds / Argl1;
480 Args2 = VgsVth / A / K;
482 DivDeriv(&d_Args2,&d_VgsVth,&d_Args2);
483 Args3 = Args2 * VgsVth;
485 DrCur = 0.5 * Beta * Args3;
490 SubthresholdComputation:
494 if( (N0 >= 200) || (VgsVth < Vcut ) || (VgsVth > (-0.5*Vcut))) {
495 goto ChargeComputation;
500 N = N0 + NB * vbs + ND * vds;
505 if( N < 0.5 ){ N = 0.5;
509 Warg1 = exp( - vds / CONSTvt0 );
515 Wgs = exp( VgsVth / ( N * CONSTvt0 ));
520 Warg2 = 6.04965 * Vtsquare * here->
B1betaZero;
522 Iexp = Warg2 * Wgs * Wds;
525 DrCur = DrCur + Ilimit * Iexp / ( Ilimit + Iexp );
527 d_dummy.
value += Ilimit;
546 WLCox = model->
B1Cox *
550 if( ! ChargeComputationNeeded ) {
559 G = 1.0 - 1./(1.744+0.8364 * Vpb);
565 A = 1.0 + 0.5*K1*G/SqrtVpb;
579 Phi =
MAX( 0.1, Phi);
584 Vth0 = Vfb + Phi + K1 * SqrtVpb;
586 d_Vth0.
value += Vfb + Phi;
592 Arg2 = VgsVth - 0.5 * Arg1;
601 Ent =
MAX(Arg2,1.0
e-8);
604 d_Ent.
value = 1.0e-8;
611 Vcom = VgsVth * VgsVth / 6.0 - 1.25e-1 * Arg1 *
612 VgsVth + 2.5e-2 * Arg5;
619 VdsPinchoff = VgsVth / A;
620 if (VdsPinchoff < 0.0) {
626 DivDeriv(&d_VdsPinchoff,&d_VgsVth,&d_A);
634 d_Vgb_Vfb.
value -= Vfb;
638 qg = WLCox * Vgb_Vfb;
645 }
else if ( vgs < Vth0 ){
647 qg = 0.5 * WLCox * K1 * K1 * (-1 +
648 sqrt(1 + 4 * Vgb_Vfb / (K1 * K1)));
653 TimesDeriv(&d_qg,&d_qg,0.5 * WLCox * K1 * K1);
659 }
else if( vds < VdsPinchoff ){
661 EntSquare = Ent * Ent;
663 Argl1 = 1.2e1 * EntSquare;
667 d_Argl2.
value += 1.0;
683 Argl7 = Argl5 / 1.2e1;
692 qg = WLCox * (vgs - Vfb - Phi - 0.5 * vds + vds * Argl7);
696 d_qg.
value += vgs - Vfb - Phi;
699 qb = WLCox * ( - Vth0 + Vfb + Phi + 0.5 * Arg3 - Arg3 * Argl7);
703 d_qb.
value += Vfb + Phi;
707 qd = - WLCox * (0.5 * VgsVth - 0.75 * Arg1 +
708 0.125 * Arg1 * Argl5);
716 }
else if( vds >= VdsPinchoff ) {
720 qg = WLCox * (vgs - Vfb - Phi - VgsVth * Args1);
722 d_qg.
value += Vfb + Phi - vgs;
725 qb = WLCox * (Vfb + Phi - Vth0 + (1.0 - A) * VgsVth * Args1);
727 d_dummy.
value += 1.0;
730 d_qb.
value += Vfb + Phi;
745 Vth0 = Vfb + Phi + K1 * SqrtVpb;
747 d_Vth0.
value += Vfb + Phi;
750 d_VgsVth.
value += vgs;
751 d_VgsVth.
d1_p += 1.0;
754 Arg2 = VgsVth - 0.5 * Arg1;
763 Ent =
MAX(Arg2,1.0
e-8);
773 Vcom = VgsVth * VgsVth / 6.0 - 1.25e-1 * Arg1 *
774 VgsVth + 2.5e-2 * Arg5;
781 VdsPinchoff = VgsVth / A;
782 if (VdsPinchoff < 0.0) {
788 DivDeriv(&d_VdsPinchoff,&d_VgsVth,&d_A);
797 d_Vgb_Vfb.
value = Vgb_Vfb;
801 qg = WLCox * Vgb_Vfb;
808 }
else if ( vgs < Vth0 ){
810 qg = 0.5 * WLCox * K1 * K1 * (-1 +
811 sqrt(1 + 4 * Vgb_Vfb / (K1 * K1)));
816 TimesDeriv(&d_qg,&d_qg,0.5 * WLCox * K1 * K1);
822 }
else if( vds < VdsPinchoff ){
827 EntSquare = Ent * Ent;
829 Argl1 = 1.2e1 * EntSquare;
833 d_Argl2.
value += 1.0;
844 Argl6 = Vcom/EntSquare;
845 DivDeriv(&d_Argl6,&d_Vcom,&d_EntSquare);
849 d_Argl5.
value = Argl5;
852 d_Argl6.
value = Argl6;
854 Argl7 = Argl5 / 1.2e1;
863 qg = WLCox * (vgs - Vfb - Phi - 0.5 * vds + vds * Argl7);
867 d_qg.
value += vgs - Vfb - Phi;
870 qb = WLCox * ( - Vth0 + Vfb + Phi + 0.5 * Arg3 - Arg3 * Argl7);
874 d_qb.
value += Vfb + Phi;
878 qd = - WLCox * (0.5 * (VgsVth - Arg1) +
887 }
else if( vds >= VdsPinchoff ) {
892 qg = WLCox * (vgs - Vfb - Phi - VgsVth * Args1);
894 d_qg.
value += Vfb + Phi - vgs;
897 qb = WLCox * (Vfb + Phi - Vth0 + (1.0 - A) * VgsVth * Args1);
899 d_dummy.
value += 1.0;
902 d_qb.
value += Vfb + Phi;
906 qd = -co4v15*WLCox*VgsVth;
949 arg = 1 - vbs / PhiB;
950 argsw = 1 - vbs / PhiBSW;
951 sarg = exp(-MJ*log(arg));
952 sargsw = exp(-MJSW*log(argsw));
956 capbs1 = czbs * sarg + czbssw * sargsw ;
957 capbs2 = (czbs * MJ * sarg / (PhiB*arg)
958 + czbssw * MJSW * sargsw /(PhiBSW*argsw))/2.0;
959 capbs3 = (czbs * (MJ) * (MJ + 1.) * sarg /((PhiB*arg)*(PhiB*arg))
960 + czbssw * MJSW * (MJSW + 1.) * sargsw / (PhiBSW*argsw*PhiBSW*argsw))/6.0;
965 capbs1 = czbs + czbssw + vbs *(czbs*MJ/PhiB+
966 czbssw * MJSW / PhiBSW );
967 capbs2 = (czbs*MJ/PhiB+czbssw * MJSW / PhiBSW )*0.5;
973 arg = 1 - vbd / PhiB;
974 argsw = 1 - vbd / PhiBSW;
975 sarg = exp(-MJ*log(arg));
976 sargsw = exp(-MJSW*log(argsw));
980 capbd1 = czbd * sarg + czbdsw * sargsw ;
981 capbd2 = (czbd * MJ * sarg / (PhiB*arg)
982 + czbdsw * MJSW * sargsw /(PhiBSW*argsw))*0.5;
983 capbd3 = (czbd * (MJ) * (MJ + 1.) * sarg /((PhiB*arg)*(PhiB*arg))
984 + czbdsw * MJSW * (MJSW + 1.) * sargsw / (PhiBSW*argsw*PhiBSW*argsw))/6.0;
989 capbd1 = czbd + czbdsw + vbd *(czbd*MJ/PhiB+
990 czbdsw * MJSW / PhiBSW );
991 capbd2 = 0.5*(czbs*MJ/PhiB+czbssw * MJSW / PhiBSW );
1010 d_qg.
d1_p += GateDrainOverlapCap + GateSourceOverlapCap + GateBulkOverlapCap;
1011 d_qg.
d1_q += -GateBulkOverlapCap;
1012 d_qg.
d1_r += -GateDrainOverlapCap;
1013 d_qb.
d1_p += -GateBulkOverlapCap;
1014 d_qb.
d1_q += GateBulkOverlapCap + capbs1 + capbd1;
1015 d_qb.
d1_r += -capbd1;
1016 d_qd.
d1_p += - GateDrainOverlapCap;
1017 d_qd.
d1_q += -capbd1;
1018 d_qd.
d1_r += GateDrainOverlapCap + capbd1;
1028 d_qb.
d3_q2r += -capbd3*6;
1048 here->qg_x = d_qg.
d1_p;
1049 here->qg_y = d_qg.
d1_q;
1050 here->qg_z = d_qg.
d1_r;
1051 here->qg_x2 = d_qg.
d2_p2;
1052 here->qg_y2 = d_qg.
d2_q2;
1053 here->qg_z2 = d_qg.
d2_r2;
1054 here->qg_xy = d_qg.
d2_pq;
1055 here->qg_yz = d_qg.
d2_qr;
1056 here->qg_xz = d_qg.
d2_pr;
1057 here->qg_x3 = d_qg.
d3_p3;
1058 here->qg_y3 = d_qg.
d3_q3;
1059 here->qg_z3 = d_qg.
d3_r3;
1060 here->qg_x2z = d_qg.
d3_p2r;
1061 here->qg_x2y = d_qg.
d3_p2q;
1062 here->qg_y2z = d_qg.
d3_q2r;
1063 here->qg_xy2 = d_qg.
d3_pq2;
1064 here->qg_xz2 = d_qg.
d3_pr2;
1065 here->qg_yz2 = d_qg.
d3_qr2;
1066 here->qg_xyz = d_qg.
d3_pqr;
1068 here->qb_x = d_qb.
d1_p;
1069 here->qb_y = d_qb.
d1_q;
1070 here->qb_z = d_qb.
d1_r;
1071 here->qb_x2 = d_qb.
d2_p2;
1072 here->qb_y2 = d_qb.
d2_q2;
1073 here->qb_z2 = d_qb.
d2_r2;
1074 here->qb_xy = d_qb.
d2_pq;
1075 here->qb_yz = d_qb.
d2_qr;
1076 here->qb_xz = d_qb.
d2_pr;
1077 here->qb_x3 = d_qb.
d3_p3;
1078 here->qb_y3 = d_qb.
d3_q3;
1079 here->qb_z3 = d_qb.
d3_r3;
1080 here->qb_x2z = d_qb.
d3_p2r;
1081 here->qb_x2y = d_qb.
d3_p2q;
1082 here->qb_y2z = d_qb.
d3_q2r;
1083 here->qb_xy2 = d_qb.
d3_pq2;
1084 here->qb_xz2 = d_qb.
d3_pr2;
1085 here->qb_yz2 = d_qb.
d3_qr2;
1086 here->qb_xyz = d_qb.
d3_pqr;
1088 here->qd_x = d_qd.
d1_p;
1089 here->qd_y = d_qd.
d1_q;
1090 here->qd_z = d_qd.
d1_r;
1091 here->qd_x2 = d_qd.
d2_p2;
1092 here->qd_y2 = d_qd.
d2_q2;
1093 here->qd_z2 = d_qd.
d2_r2;
1094 here->qd_xy = d_qd.
d2_pq;
1095 here->qd_yz = d_qd.
d2_qr;
1096 here->qd_xz = d_qd.
d2_pr;
1097 here->qd_x3 = d_qd.
d3_p3;
1098 here->qd_y3 = d_qd.
d3_q3;
1099 here->qd_z3 = d_qd.
d3_r3;
1100 here->qd_x2z = d_qd.
d3_p2r;
1101 here->qd_x2y = d_qd.
d3_p2q;
1102 here->qd_y2z = d_qd.
d3_q2r;
1103 here->qd_xy2 = d_qd.
d3_pq2;
1104 here->qd_xz2 = d_qd.
d3_pr2;
1105 here->qd_yz2 = d_qd.
d3_qr2;
1106 here->qd_xyz = d_qd.
d3_pqr;
1108 here->DrC_x = d_DrCur.
d1_p;
1109 here->DrC_y = d_DrCur.
d1_q;
1110 here->DrC_z = d_DrCur.
d1_r;
1111 here->DrC_x2 = d_DrCur.
d2_p2;
1112 here->DrC_y2 = d_DrCur.
d2_q2;
1113 here->DrC_z2 = d_DrCur.
d2_r2;
1114 here->DrC_xy = d_DrCur.
d2_pq;
1115 here->DrC_yz = d_DrCur.
d2_qr;
1116 here->DrC_xz = d_DrCur.
d2_pr;
1117 here->DrC_x3 = d_DrCur.
d3_p3;
1118 here->DrC_y3 = d_DrCur.
d3_q3;
1119 here->DrC_z3 = d_DrCur.
d3_r3;
1120 here->DrC_x2z = d_DrCur.
d3_p2r;
1121 here->DrC_x2y = d_DrCur.
d3_p2q;
1122 here->DrC_y2z = d_DrCur.
d3_q2r;
1123 here->DrC_xy2 = d_DrCur.
d3_pq2;
1124 here->DrC_xz2 = d_DrCur.
d3_pr2;
1125 here->DrC_yz2 = d_DrCur.
d3_qr2;
1126 here->DrC_xyz = d_DrCur.
d3_pqr;
1145 here->qg_x = -(-d_qg.
d1_p);
1146 here->qg_y = -(-d_qg.
d1_q);
1148 here->qg_x2 = -(-d_qg.
d2_p2);
1149 here->qg_y2 = -(-d_qg.
d2_q2);
1151 here->qg_xy = -(-d_qg.
d2_pq);
1154 here->qg_x3 = -(-d_qg.
d3_p3);
1155 here->qg_y3 = -(-d_qg.
d3_q3);
1158 here->qg_x2y = -(-d_qg.
d3_p2q);
1160 here->qg_xy2 = -(-d_qg.
d3_pq2);
1165 here->qb_x = -(-d_qb.
d1_p);
1166 here->qb_y = -(-d_qb.
d1_q);
1168 here->qb_x2 = -(-d_qb.
d2_p2);
1169 here->qb_y2 = -(-d_qb.
d2_q2);
1171 here->qb_xy = -(-d_qb.
d2_pq);
1174 here->qb_x3 = -(-d_qb.
d3_p3);
1175 here->qb_y3 = -(-d_qb.
d3_q3);
1178 here->qb_x2y = -(-d_qb.
d3_p2q);
1180 here->qb_xy2 = -(-d_qb.
d3_pq2);
1185 here->qd_x= -here->qg_x - here->qb_x +(-d_qd.
d1_p);
1186 here->qd_y= -here->qg_y - here->qb_y +(-d_qd.
d1_q);
1187 here->qd_z= -here->qg_z - here->qb_z +(d_qd.
d1_p + d_qd.
d1_q + d_qd.
d1_r);
1188 here->qd_x2 = -here->qg_x2 - here->qb_x2 +(-d_qd.
d2_p2);
1189 here->qd_y2 = -here->qg_y2 - here->qb_y2 +(-d_qd.
d2_q2);
1191 here->qd_xy = -here->qg_xy - here->qb_xy +(-d_qd.
d2_pq);
1192 here->qd_yz = -here->qg_yz - here->qb_yz +(d_qd.
d2_pq + d_qd.
d2_q2 + d_qd.
d2_qr);
1193 here->qd_xz = -here->qg_xz - here->qb_xz +(d_qd.
d2_p2 + d_qd.
d2_pq + d_qd.
d2_pr);
1194 here->qd_x3 = -here->qg_x3 - here->qb_x3 +(-d_qd.
d3_p3);
1195 here->qd_y3 = -here->qg_y3 - here->qb_y3 +(-d_qd.
d3_q3);
1197 here->qd_x2z = -here->qg_x2z - here->qb_x2z +(d_qd.
d3_p3 + d_qd.
d3_p2q + d_qd.
d3_p2r);
1198 here->qd_x2y = -here->qg_x2y - here->qb_x2y +(-d_qd.
d3_p2q);
1199 here->qd_y2z = -here->qg_y2z - here->qb_y2z +(d_qd.
d3_pq2 + d_qd.
d3_q3 + d_qd.
d3_q2r);
1200 here->qd_xy2 = -here->qg_xy2 - here->qb_xy2 +(-d_qd.
d3_pq2);
1203 here->qd_xyz = -here->qg_xyz - here->qb_xyz +(d_qd.
d3_p2q + d_qd.
d3_pq2 + d_qd.
d3_pqr);
1205 here->DrC_x = -d_DrCur.
d1_p;
1206 here->DrC_y = -d_DrCur.
d1_q;
1207 here->DrC_z = d_DrCur.
d1_p + d_DrCur.
d1_q + d_DrCur.
d1_r;
1208 here->DrC_x2 = -d_DrCur.
d2_p2;
1209 here->DrC_y2 = -d_DrCur.
d2_q2;
1211 here->DrC_xy = -d_DrCur.
d2_pq;
1214 here->DrC_x3 = -d_DrCur.
d3_p3;
1215 here->DrC_y3 = -d_DrCur.
d3_q3;
1218 here->DrC_x2y = -d_DrCur.
d3_p2q;
1220 here->DrC_xy2 = -d_DrCur.
d3_pq2;
1236 here->qg_x2 = 0.5*model->
B1type*here->qg_x2;
1237 here->qg_y2 = 0.5*model->
B1type*here->qg_y2;
1238 here->qg_z2 = 0.5*model->
B1type*here->qg_z2;
1239 here->qg_xy = model->
B1type*here->qg_xy;
1240 here->qg_yz = model->
B1type*here->qg_yz;
1241 here->qg_xz = model->
B1type*here->qg_xz;
1242 here->qg_x3 = here->qg_x3/6.;
1243 here->qg_y3 = here->qg_y3/6.;
1244 here->qg_z3 = here->qg_z3/6.;
1245 here->qg_x2z = 0.5*here->qg_x2z;
1246 here->qg_x2y = 0.5*here->qg_x2y;
1247 here->qg_y2z = 0.5*here->qg_y2z;
1248 here->qg_xy2 = 0.5*here->qg_xy2;
1249 here->qg_xz2 = 0.5*here->qg_xz2;
1250 here->qg_yz2 = 0.5*here->qg_yz2;
1252 here->qb_x2 = 0.5*model->
B1type*here->qb_x2;
1253 here->qb_y2 = 0.5*model->
B1type*here->qb_y2;
1254 here->qb_z2 = 0.5*model->
B1type*here->qb_z2;
1255 here->qb_xy = model->
B1type*here->qb_xy;
1256 here->qb_yz = model->
B1type*here->qb_yz;
1257 here->qb_xz = model->
B1type*here->qb_xz;
1258 here->qb_x3 = here->qb_x3/6.;
1259 here->qb_y3 = here->qb_y3/6.;
1260 here->qb_z3 = here->qb_z3/6.;
1261 here->qb_x2z = 0.5*here->qb_x2z;
1262 here->qb_x2y = 0.5*here->qb_x2y;
1263 here->qb_y2z = 0.5*here->qb_y2z;
1264 here->qb_xy2 = 0.5*here->qb_xy2;
1265 here->qb_xz2 = 0.5*here->qb_xz2;
1266 here->qb_yz2 = 0.5*here->qb_yz2;
1268 here->qd_x2 = 0.5*model->
B1type*here->qd_x2;
1269 here->qd_y2 = 0.5*model->
B1type*here->qd_y2;
1270 here->qd_z2 = 0.5*model->
B1type*here->qd_z2;
1271 here->qd_xy = model->
B1type*here->qd_xy;
1272 here->qd_yz = model->
B1type*here->qd_yz;
1273 here->qd_xz = model->
B1type*here->qd_xz;
1274 here->qd_x3 = here->qd_x3/6.;
1275 here->qd_y3 = here->qd_y3/6.;
1276 here->qd_z3 = here->qd_z3/6.;
1277 here->qd_x2z = 0.5*here->qd_x2z;
1278 here->qd_x2y = 0.5*here->qd_x2y;
1279 here->qd_y2z = 0.5*here->qd_y2z;
1280 here->qd_xy2 = 0.5*here->qd_xy2;
1281 here->qd_xz2 = 0.5*here->qd_xz2;
1282 here->qd_yz2 = 0.5*here->qd_yz2;
1284 here->DrC_x2 = 0.5*model->
B1type*here->DrC_x2;
1285 here->DrC_y2 = 0.5*model->
B1type*here->DrC_y2;
1286 here->DrC_z2 = 0.5*model->
B1type*here->DrC_z2;
1287 here->DrC_xy = model->
B1type*here->DrC_xy;
1288 here->DrC_yz = model->
B1type*here->DrC_yz;
1289 here->DrC_xz = model->
B1type*here->DrC_xz;
1290 here->DrC_x3 = here->DrC_x3/6.;
1291 here->DrC_y3 = here->DrC_y3/6.;
1292 here->DrC_z3 = here->DrC_z3/6.;
1293 here->DrC_x2z = 0.5*here->DrC_x2z;
1294 here->DrC_x2y = 0.5*here->DrC_x2y;
1295 here->DrC_y2z = 0.5*here->DrC_y2z;
1296 here->DrC_xy2 = 0.5*here->DrC_xy2;
1297 here->DrC_xz2 = 0.5*here->DrC_xz2;
1298 here->DrC_yz2 = 0.5*here->DrC_yz2;
1300 here->gbs2 = model->
B1type*here->gbs2;
1301 here->gbd2 = model->
B1type*here->gbd2;
int B1dSetup(GENmodel *inModel, CKTcircuit *ckt)
double B1bulkJctPotential
double B1channelChargePartitionFlag
void PlusDeriv(Dderivs *new, Dderivs *old1, Dderivs *old2)
void SqrtDeriv(Dderivs *new, Dderivs *old)
void MultDeriv(Dderivs *new, Dderivs *old1, Dderivs *old2)
void ExpDeriv(Dderivs *new, Dderivs *old)
double B1unitLengthSidewallJctCap
double B1jctSatCurDensity
void DivDeriv(Dderivs *new, Dderivs *old1, Dderivs *old2)
double B1gateBulkOverlapCap
void TimesDeriv(Dderivs *new, Dderivs *old, double k)
double B1sidewallJctPotential
struct sBSIM1model * B1nextModel
double B1bulkJctBotGradingCoeff
double B1bulkJctSideGradingCoeff
double B1gateDrainOverlapCap
struct sBSIM1instance * B1nextInstance
void InvDeriv(Dderivs *new, Dderivs *old)
double B1gateSourceOverlapCap
void EqualDeriv(Dderivs *new, Dderivs *old)