76 double apart,bpart,cpart;
103 vgs= *(ckt->CKTstate0 + here->JFETvgs);
104 vgd= *(ckt->CKTstate0 + here->JFETvgd);
106 vgs= *(ckt->CKTstate1 + here->JFETvgs);
107 vgd= *(ckt->CKTstate1 + here->JFETvgd);
125 *(ckt->CKTstate0 + here->JFETvgs)=
126 *(ckt->CKTstate1 + here->JFETvgs);
127 vgs=(1+xfact)* *(ckt->CKTstate1 + here->JFETvgs)-xfact*
128 *(ckt->CKTstate2 + here->JFETvgs);
129 *(ckt->CKTstate0 + here->JFETvgd)=
130 *(ckt->CKTstate1 + here->JFETvgd);
131 vgd=(1+xfact)* *(ckt->CKTstate1 + here->JFETvgd)-xfact*
132 *(ckt->CKTstate2 + here->JFETvgd);
133 *(ckt->CKTstate0 + here->JFETcg)=
134 *(ckt->CKTstate1 + here->JFETcg);
135 *(ckt->CKTstate0 + here->JFETcd)=
136 *(ckt->CKTstate1 + here->JFETcd);
137 *(ckt->CKTstate0 + here->JFETcgd)=
138 *(ckt->CKTstate1 + here->JFETcgd);
139 *(ckt->CKTstate0 + here->JFETgm)=
140 *(ckt->CKTstate1 + here->JFETgm);
141 *(ckt->CKTstate0 + here->JFETgds)=
142 *(ckt->CKTstate1 + here->JFETgds);
143 *(ckt->CKTstate0 + here->JFETggs)=
144 *(ckt->CKTstate1 + here->JFETggs);
145 *(ckt->CKTstate0 + here->JFETggd)=
146 *(ckt->CKTstate1 + here->JFETggd);
160 delvgs=vgs- *(ckt->CKTstate0 + here->JFETvgs);
161 delvgd=vgd- *(ckt->CKTstate0 + here->JFETvgd);
162 delvds=delvgs-delvgd;
163 cghat= *(ckt->CKTstate0 + here->JFETcg)+
164 *(ckt->CKTstate0 + here->JFETggd)*delvgd+
165 *(ckt->CKTstate0 + here->JFETggs)*delvgs;
166 cdhat= *(ckt->CKTstate0 + here->JFETcd)+
167 *(ckt->CKTstate0 + here->JFETgm)*delvgs+
168 *(ckt->CKTstate0 + here->JFETgds)*delvds-
169 *(ckt->CKTstate0 + here->JFETggd)*delvgd;
176 FABS(*(ckt->CKTstate0 + here->JFETvgs)))+
179 FABS(*(ckt->CKTstate0 + here->JFETvgd)))+
181 if ( (
FABS(cghat-*(ckt->CKTstate0 + here->JFETcg))
183 FABS(*(ckt->CKTstate0 + here->JFETcg)))+
185 (
FABS(cdhat-*(ckt->CKTstate0 + here->JFETcd))
187 FABS(*(ckt->CKTstate0 + here->JFETcd)))+
191 vgs= *(ckt->CKTstate0 + here->JFETvgs);
192 vgd= *(ckt->CKTstate0 + here->JFETvgd);
194 cg= *(ckt->CKTstate0 + here->JFETcg);
195 cd= *(ckt->CKTstate0 + here->JFETcd);
196 cgd= *(ckt->CKTstate0 + here->JFETcgd);
197 gm= *(ckt->CKTstate0 + here->JFETgm);
198 gds= *(ckt->CKTstate0 + here->JFETgds);
199 ggs= *(ckt->CKTstate0 + here->JFETggs);
200 ggd= *(ckt->CKTstate0 + here->JFETggd);
207 vgs =
DEVpnjlim(vgs,*(ckt->CKTstate0 + here->JFETvgs),
209 vgd =
DEVpnjlim(vgd,*(ckt->CKTstate0 + here->JFETvgd),
214 vgs =
DEVfetlim(vgs,*(ckt->CKTstate0 + here->JFETvgs),
216 vgd =
DEVfetlim(vgd,*(ckt->CKTstate0 + here->JFETvgd),
227 evgs = exp(vgs/(here->
JFETtemp*CONSTKoverQ));
229 cg = csat*(evgs-1)+ckt->
CKTgmin*vgs;
231 if (vgd <= -5*(here->
JFETtemp*CONSTKoverQ)) {
235 evgd = exp(vgd/(here->
JFETtemp*CONSTKoverQ));
237 cgd = csat*(evgd-1)+ckt->
CKTgmin*vgd;
262 apart = 2*model->
JFETb + 3*Bfac*(vgst - vds);
263 cpart = vds*(vds*(Bfac*vds - model->
JFETb)+vgst*apart);
264 cdrain = betap*cpart;
265 gm = betap*vds*(apart + 3*Bfac*vgst);
266 gds = betap*(vgst - vds)*apart
270 gm = betap*vgst*(2*model->
JFETb+3*Bfac);
274 cpart=vgst*vgst*(model->
JFETb+Bfac);
275 cdrain = betap*cpart;
294 if (vgdt + vds >= 0) {
298 apart = 2*model->
JFETb + 3*Bfac*(vgdt + vds);
299 cpart = vds*(-vds*(-Bfac*vds-model->
JFETb)+vgdt*apart);
300 cdrain = betap*cpart;
301 gm = betap*vds*(apart + 3*Bfac*vgdt);
302 gds = betap*(vgdt + vds)*apart
306 gm = -betap*vgdt*(2*model->
JFETb+3*Bfac);
310 cpart=vgdt*vgdt*(model->
JFETb+Bfac);
311 cdrain = - betap*cpart;
338 cdrain=betap*vgst*vgst;
345 cdrain=betap*vds*(vgst+vgst-vds);
370 cdrain = -betap*vgdt*vgdt;
377 cdrain=betap*vds*(vgdt+vgdt+vds);
399 czgsf2=czgs/model->
JFETf2;
400 czgdf2=czgd/model->
JFETf2;
401 if (vgs < here->JFETcorDepCap) {
403 *(ckt->CKTstate0 + here->JFETqgs) = twop*czgs*(1-sarg);
406 *(ckt->CKTstate0 + here->JFETqgs) = czgs*here->
JFETf1 +
407 czgsf2*(model->
JFETf3 *(vgs-
410 capgs=czgsf2*(model->
JFETf3+vgs/twop);
412 if (vgd < here->JFETcorDepCap) {
414 *(ckt->CKTstate0 + here->JFETqgd) = twop*czgd*(1-sarg);
417 *(ckt->CKTstate0 + here->JFETqgd) = czgd*here->
JFETf1+
418 czgdf2*(model->
JFETf3* (vgd-
421 capgd=czgdf2*(model->
JFETf3+vgd/twop);
429 *(ckt->CKTstate0 + here->JFETqgs) = capgs;
430 *(ckt->CKTstate0 + here->JFETqgd) = capgd;
437 *(ckt->CKTstate1 + here->JFETqgs) =
438 *(ckt->CKTstate0 + here->JFETqgs);
439 *(ckt->CKTstate1 + here->JFETqgd) =
440 *(ckt->CKTstate0 + here->JFETqgd);
442 NI_INTEG(ckt,geq,ceq,capgs,here->JFETqgs);
444 cg = cg + *(ckt->CKTstate0 + here->JFETcqgs);
445 NI_INTEG(ckt,geq,ceq,capgd,here->JFETqgd);
447 cg = cg + *(ckt->CKTstate0 + here->JFETcqgd);
448 cd = cd - *(ckt->CKTstate0 + here->JFETcqgd);
449 cgd = cgd + *(ckt->CKTstate0 + here->JFETcqgd);
451 *(ckt->CKTstate1 + here->JFETcqgs) =
452 *(ckt->CKTstate0 + here->JFETcqgs);
453 *(ckt->CKTstate1 + here->JFETcqgd) =
454 *(ckt->CKTstate0 + here->JFETcqgd);
475 *(ckt->CKTstate0 + here->JFETvgs) = vgs;
476 *(ckt->CKTstate0 + here->JFETvgd) = vgd;
477 *(ckt->CKTstate0 + here->JFETcg) = cg;
478 *(ckt->CKTstate0 + here->JFETcd) = cd;
479 *(ckt->CKTstate0 + here->JFETcgd) = cgd;
480 *(ckt->CKTstate0 + here->JFETgm) = gm;
481 *(ckt->CKTstate0 + here->JFETgds) = gds;
482 *(ckt->CKTstate0 + here->JFETggs) = ggs;
483 *(ckt->CKTstate0 + here->JFETggd) = ggd;
488 ceqgd=model->
JFETtype*(cgd-ggd*vgd);
489 ceqgs=model->
JFETtype*((cg-cgd)-ggs*vgs);
490 cdreq=model->
JFETtype*((cd+cgd)-gds*vds-gm*vgs);
double * JFETdrainDrainPrimePtr
double * JFETsourcePrimeGatePtr
GENinstance * CKTtroubleElt
double * JFETsourceSourcePtr
JFETinstance * JFETinstances
double * JFETgateDrainPrimePtr
double * JFETdrainPrimeDrainPrimePtr
double * JFETsourceSourcePrimePtr
double * JFETdrainPrimeDrainPtr
double * JFETsourcePrimeSourcePrimePtr
#define NI_INTEG(ckt, geq, ceq, cap, qcap)
struct sJFETmodel * JFETnextModel
double * JFETdrainPrimeGatePtr
double * JFETdrainPrimeSourcePrimePtr
double * JFETgateSourcePrimePtr
struct sJFETinstance * JFETnextInstance
double * JFETsourcePrimeDrainPrimePtr
double * JFETdrainDrainPtr
double * JFETsourcePrimeSourcePtr