21 changed files with 313 additions and 181 deletions
-
5ChangeLog
-
16DEVICES
-
1src/spicelib/devices/hfet2/Makefile.am
-
63src/spicelib/devices/hfet2/hfet2.c
-
65src/spicelib/devices/hfet2/hfet2acl.c
-
29src/spicelib/devices/hfet2/hfet2ask.c
-
14src/spicelib/devices/hfet2/hfet2defs.h
-
6src/spicelib/devices/hfet2/hfet2del.c
-
8src/spicelib/devices/hfet2/hfet2dest.c
-
20src/spicelib/devices/hfet2/hfet2ext.h
-
11src/spicelib/devices/hfet2/hfet2getic.c
-
2src/spicelib/devices/hfet2/hfet2init.c
-
60src/spicelib/devices/hfet2/hfet2load.c
-
7src/spicelib/devices/hfet2/hfet2mask.c
-
6src/spicelib/devices/hfet2/hfet2mdel.c
-
10src/spicelib/devices/hfet2/hfet2mpar.c
-
21src/spicelib/devices/hfet2/hfet2param.c
-
82src/spicelib/devices/hfet2/hfet2pzl.c
-
39src/spicelib/devices/hfet2/hfet2setup.c
-
23src/spicelib/devices/hfet2/hfet2temp.c
-
6src/spicelib/devices/hfet2/hfet2trunc.c
@ -0,0 +1,82 @@ |
|||||
|
/********** |
||||
|
Author: 2003 Paolo Nenzi |
||||
|
**********/ |
||||
|
/* |
||||
|
*/ |
||||
|
|
||||
|
|
||||
|
#include "ngspice.h" |
||||
|
#include "cktdefs.h" |
||||
|
#include "hfet2defs.h" |
||||
|
#include "sperror.h" |
||||
|
#include "suffix.h" |
||||
|
|
||||
|
|
||||
|
int HFET2pzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s) |
||||
|
{ |
||||
|
|
||||
|
HFET2model *model = (HFET2model*)inModel; |
||||
|
HFET2instance *here; |
||||
|
double gdpr; |
||||
|
double gspr; |
||||
|
double gm; |
||||
|
double gds; |
||||
|
double ggs; |
||||
|
double xgs; |
||||
|
double ggd; |
||||
|
double xgd; |
||||
|
|
||||
|
double m; |
||||
|
|
||||
|
for( ; model != NULL; model = model->HFET2nextModel ) |
||||
|
{ |
||||
|
for( here = model->HFET2instances; here != NULL; |
||||
|
here = here->HFET2nextInstance) { |
||||
|
|
||||
|
if (here->HFET2owner != ARCHme) continue; |
||||
|
|
||||
|
m = here->HFET2m; |
||||
|
|
||||
|
gdpr=model->HFET2drainConduct; |
||||
|
gspr=model->HFET2sourceConduct; |
||||
|
gm= *(ckt->CKTstate0 + here->HFET2gm) ; |
||||
|
gds= *(ckt->CKTstate0 + here->HFET2gds) ; |
||||
|
ggs= *(ckt->CKTstate0 + here->HFET2ggs) ; |
||||
|
xgs= *(ckt->CKTstate0 + here->HFET2qgs) ; |
||||
|
ggd= *(ckt->CKTstate0 + here->HFET2ggd) ; |
||||
|
xgd= *(ckt->CKTstate0 + here->HFET2qgd) ; |
||||
|
|
||||
|
*(here->HFET2drainDrainPtr ) += m * (gdpr); |
||||
|
*(here->HFET2gateGatePtr ) += m * (ggd+ggs); |
||||
|
*(here->HFET2gateGatePtr) += m * ((xgd+xgs) * s->real); |
||||
|
*(here->HFET2gateGatePtr +1) += m * ((xgd+xgs) * s->imag); |
||||
|
*(here->HFET2sourceSourcePtr ) += m * (gspr); |
||||
|
*(here->HFET2drainPrimeDrainPrimePtr ) += m * (gdpr+gds+ggd); |
||||
|
*(here->HFET2drainPrimeDrainPrimePtr) += m * (xgd * s->real); |
||||
|
*(here->HFET2drainPrimeDrainPrimePtr +1) += m * (xgd * s->imag); |
||||
|
*(here->HFET2sourcePriHFET2ourcePrimePtr ) += m * (gspr+gds+gm+ggs); |
||||
|
*(here->HFET2sourcePriHFET2ourcePrimePtr) += m * (xgs * s->real); |
||||
|
*(here->HFET2sourcePriHFET2ourcePrimePtr +1) += m * (xgs * s->imag); |
||||
|
*(here->HFET2drainDrainPrimePtr ) -= m * (gdpr); |
||||
|
*(here->HFET2gateDrainPrimePtr ) -= m * (ggd); |
||||
|
*(here->HFET2gateDrainPrimePtr) -= m * (xgd * s->real); |
||||
|
*(here->HFET2gateDrainPrimePtr +1) -= m * (xgd * s->imag); |
||||
|
*(here->HFET2gateSourcePrimePtr ) -= m * (ggs); |
||||
|
*(here->HFET2gateSourcePrimePtr) -= m * (xgs * s->real); |
||||
|
*(here->HFET2gateSourcePrimePtr +1) -= m * (xgs * s->imag); |
||||
|
*(here->HFET2sourceSourcePrimePtr ) -= m * (gspr); |
||||
|
*(here->HFET2drainPrimeDrainPtr ) -= m * (gdpr); |
||||
|
*(here->HFET2drainPrimeGatePtr ) += m * (-ggd+gm); |
||||
|
*(here->HFET2drainPrimeGatePtr) -= m * (xgd * s->real); |
||||
|
*(here->HFET2drainPrimeGatePtr +1) -= m * (xgd * s->imag); |
||||
|
*(here->HFET2drainPriHFET2ourcePrimePtr ) += m * (-gds-gm); |
||||
|
*(here->HFET2sourcePrimeGatePtr ) += m * (-ggs-gm); |
||||
|
*(here->HFET2sourcePrimeGatePtr) -= m * (xgs * s->real); |
||||
|
*(here->HFET2sourcePrimeGatePtr +1) -= m * (xgs * s->imag); |
||||
|
*(here->HFET2sourcePriHFET2ourcePtr ) -= m * (gspr); |
||||
|
*(here->HFET2sourcePrimeDrainPrimePtr ) -= m * (gds); |
||||
|
} |
||||
|
} |
||||
|
return(OK); |
||||
|
|
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue