Browse Source

extend bsim4 operating point info list

pre-master-46
Matthias Schweikardt 2 years ago
committed by Holger Vogt
parent
commit
8fbd357fdd
  1. 7
      src/spicelib/devices/bsim4/b4.c
  2. 24
      src/spicelib/devices/bsim4/b4ask.c
  3. 8
      src/spicelib/devices/bsim4/bsim4def.h
  4. 7
      src/spicelib/devices/bsim4v5/b4v5.c
  5. 24
      src/spicelib/devices/bsim4v5/b4v5ask.c
  6. 8
      src/spicelib/devices/bsim4v5/bsim4v5def.h
  7. 7
      src/spicelib/devices/bsim4v6/b4v6.c
  8. 24
      src/spicelib/devices/bsim4v6/b4v6ask.c
  9. 8
      src/spicelib/devices/bsim4v6/bsim4v6def.h
  10. 7
      src/spicelib/devices/bsim4v7/b4v7.c
  11. 24
      src/spicelib/devices/bsim4v7/b4v7ask.c
  12. 9
      src/spicelib/devices/bsim4v7/bsim4v7def.h

7
src/spicelib/devices/bsim4/b4.c

@ -117,6 +117,13 @@ OP( "qinv", BSIM4_QINV, IF_REAL, "Qinversion"),
OP( "qdef", BSIM4_QDEF, IF_REAL, "Qdef"), OP( "qdef", BSIM4_QDEF, IF_REAL, "Qdef"),
OP( "gcrg", BSIM4_GCRG, IF_REAL, "Gcrg"), OP( "gcrg", BSIM4_GCRG, IF_REAL, "Gcrg"),
OP( "gtau", BSIM4_GTAU, IF_REAL, "Gtau"), OP( "gtau", BSIM4_GTAU, IF_REAL, "Gtau"),
OP( "vgsteff", BSIM4_VGSTEFF, IF_REAL, "Vgsteff"),
OP( "vdseff", BSIM4_VDSEFF, IF_REAL, "Vdseff"),
OP( "cgso", BSIM4_CGSO, IF_REAL, "Cgso"),
OP( "cgdo", BSIM4_CGDO, IF_REAL, "Cgdo"),
OP( "cgbo", BSIM4_CGBO, IF_REAL, "Cgbo"),
OP( "weff", BSIM4_WEFF, IF_REAL, "Weff"),
OP( "leff", BSIM4_LEFF, IF_REAL, "Leff"),
}; };
IFparm BSIM4mPTable[] = { /* model parameters */ IFparm BSIM4mPTable[] = { /* model parameters */

24
src/spicelib/devices/bsim4/b4ask.c

@ -415,6 +415,30 @@ BSIM4instance *here = (BSIM4instance*)inst;
case BSIM4_QBD: case BSIM4_QBD:
value->rValue = *(ckt->CKTstate0 + here->BSIM4qbd); value->rValue = *(ckt->CKTstate0 + here->BSIM4qbd);
return(OK); return(OK);
case BSIM4_VGSTEFF:
value->rValue = here->BSIM4Vgsteff;
return(OK);
case BSIM4_VDSEFF:
value->rValue = here->BSIM4Vdseff;
return(OK);
case BSIM4_CGSO:
value->rValue = here->BSIM4cgso;
value->rValue *= here->BSIM4m;
return(OK);
case BSIM4_CGDO:
value->rValue = here->BSIM4cgdo;
value->rValue *= here->BSIM4m;
return(OK);
case BSIM4_CGBO:
value->rValue = here->pParam->BSIM4cgbo;
value->rValue *= here->BSIM4m;
return(OK);
case BSIM4_WEFF:
value->rValue = here->pParam->BSIM4weff;
return(OK);
case BSIM4_LEFF:
value->rValue = here->pParam->BSIM4leff;
return(OK);
default: default:
return(E_BADPARM); return(E_BADPARM);
} }

8
src/spicelib/devices/bsim4/bsim4def.h

@ -3876,6 +3876,14 @@ typedef struct sBSIM4model
#define BSIM4_MOD_VBSR_MAX 1310 #define BSIM4_MOD_VBSR_MAX 1310
#define BSIM4_MOD_VBDR_MAX 1311 #define BSIM4_MOD_VBDR_MAX 1311
#define BSIM4_VGSTEFF 1400
#define BSIM4_VDSEFF 1401
#define BSIM4_CGSO 1402
#define BSIM4_CGDO 1403
#define BSIM4_CGBO 1404
#define BSIM4_WEFF 1405
#define BSIM4_LEFF 1406
#include "bsim4ext.h" #include "bsim4ext.h"
extern void BSIM4evaluate(double,double,double,BSIM4instance*,BSIM4model*, extern void BSIM4evaluate(double,double,double,BSIM4instance*,BSIM4model*,

7
src/spicelib/devices/bsim4v5/b4v5.c

@ -105,6 +105,13 @@ OP( "qinv", BSIM4v5_QINV, IF_REAL, "Qinversion"),
OP( "qdef", BSIM4v5_QDEF, IF_REAL, "Qdef"), OP( "qdef", BSIM4v5_QDEF, IF_REAL, "Qdef"),
OP( "gcrg", BSIM4v5_GCRG, IF_REAL, "Gcrg"), OP( "gcrg", BSIM4v5_GCRG, IF_REAL, "Gcrg"),
OP( "gtau", BSIM4v5_GTAU, IF_REAL, "Gtau"), OP( "gtau", BSIM4v5_GTAU, IF_REAL, "Gtau"),
OP( "vgsteff", BSIM4v5_VGSTEFF, IF_REAL, "Vgsteff"),
OP( "vdseff", BSIM4v5_VDSEFF, IF_REAL, "Vdseff"),
OP( "cgso", BSIM4v5_CGSO, IF_REAL, "Cgso"),
OP( "cgdo", BSIM4v5_CGDO, IF_REAL, "Cgdo"),
OP( "cgbo", BSIM4v5_CGBO, IF_REAL, "Cgbo"),
OP( "weff", BSIM4v5_WEFF, IF_REAL, "Weff"),
OP( "leff", BSIM4v5_LEFF, IF_REAL, "Leff"),
}; };
IFparm BSIM4v5mPTable[] = { /* model parameters */ IFparm BSIM4v5mPTable[] = { /* model parameters */

24
src/spicelib/devices/bsim4v5/b4v5ask.c

@ -398,6 +398,30 @@ BSIM4v5instance *here = (BSIM4v5instance*)inst;
case BSIM4v5_QBD: case BSIM4v5_QBD:
value->rValue = *(ckt->CKTstate0 + here->BSIM4v5qbd); value->rValue = *(ckt->CKTstate0 + here->BSIM4v5qbd);
return(OK); return(OK);
case BSIM4v5_VGSTEFF:
value->rValue = here->BSIM4v5Vgsteff;
return(OK);
case BSIM4v5_VDSEFF:
value->rValue = here->BSIM4v5Vdseff;
return(OK);
case BSIM4v5_CGSO:
value->rValue = here->BSIM4v5cgso;
value->rValue *= here->BSIM4v5m;
return(OK);
case BSIM4v5_CGDO:
value->rValue = here->BSIM4v5cgdo;
value->rValue *= here->BSIM4v5m;
return(OK);
case BSIM4v5_CGBO:
value->rValue = here->pParam->BSIM4v5cgbo;
value->rValue *= here->BSIM4v5m;
return(OK);
case BSIM4v5_WEFF:
value->rValue = here->pParam->BSIM4v5weff;
return(OK);
case BSIM4v5_LEFF:
value->rValue = here->pParam->BSIM4v5leff;
return(OK);
default: default:
return(E_BADPARM); return(E_BADPARM);
} }

8
src/spicelib/devices/bsim4v5/bsim4v5def.h

@ -3408,6 +3408,14 @@ typedef struct sBSIM4v5model
#define BSIM4v5_MOD_VBSR_MAX 1210 #define BSIM4v5_MOD_VBSR_MAX 1210
#define BSIM4v5_MOD_VBDR_MAX 1211 #define BSIM4v5_MOD_VBDR_MAX 1211
#define BSIM4v5_VGSTEFF 1400
#define BSIM4v5_VDSEFF 1401
#define BSIM4v5_CGSO 1402
#define BSIM4v5_CGDO 1403
#define BSIM4v5_CGBO 1404
#define BSIM4v5_WEFF 1405
#define BSIM4v5_LEFF 1406
#include "bsim4v5ext.h" #include "bsim4v5ext.h"
extern void BSIM4v5evaluate(double,double,double,BSIM4v5instance*,BSIM4v5model*, extern void BSIM4v5evaluate(double,double,double,BSIM4v5instance*,BSIM4v5model*,

7
src/spicelib/devices/bsim4v6/b4v6.c

@ -111,6 +111,13 @@ OP( "qinv", BSIM4v6_QINV, IF_REAL, "Qinversion"),
OP( "qdef", BSIM4v6_QDEF, IF_REAL, "Qdef"), OP( "qdef", BSIM4v6_QDEF, IF_REAL, "Qdef"),
OP( "gcrg", BSIM4v6_GCRG, IF_REAL, "Gcrg"), OP( "gcrg", BSIM4v6_GCRG, IF_REAL, "Gcrg"),
OP( "gtau", BSIM4v6_GTAU, IF_REAL, "Gtau"), OP( "gtau", BSIM4v6_GTAU, IF_REAL, "Gtau"),
OP( "vgsteff", BSIM4v6_VGSTEFF, IF_REAL, "Vgsteff"),
OP( "vdseff", BSIM4v6_VDSEFF, IF_REAL, "Vdseff"),
OP( "cgso", BSIM4v6_CGSO, IF_REAL, "Cgso"),
OP( "cgdo", BSIM4v6_CGDO, IF_REAL, "Cgdo"),
OP( "cgbo", BSIM4v6_CGBO, IF_REAL, "Cgbo"),
OP( "weff", BSIM4v6_WEFF, IF_REAL, "Weff"),
OP( "leff", BSIM4v6_LEFF, IF_REAL, "Leff"),
}; };
IFparm BSIM4v6mPTable[] = { /* model parameters */ IFparm BSIM4v6mPTable[] = { /* model parameters */

24
src/spicelib/devices/bsim4v6/b4v6ask.c

@ -399,6 +399,30 @@ BSIM4v6instance *here = (BSIM4v6instance*)inst;
case BSIM4v6_QBD: case BSIM4v6_QBD:
value->rValue = *(ckt->CKTstate0 + here->BSIM4v6qbd); value->rValue = *(ckt->CKTstate0 + here->BSIM4v6qbd);
return(OK); return(OK);
case BSIM4v6_VGSTEFF:
value->rValue = here->BSIM4v6Vgsteff;
return(OK);
case BSIM4v6_VDSEFF:
value->rValue = here->BSIM4v6Vdseff;
return(OK);
case BSIM4v6_CGSO:
value->rValue = here->BSIM4v6cgso;
value->rValue *= here->BSIM4v6m;
return(OK);
case BSIM4v6_CGDO:
value->rValue = here->BSIM4v6cgdo;
value->rValue *= here->BSIM4v6m;
return(OK);
case BSIM4v6_CGBO:
value->rValue = here->pParam->BSIM4v6cgbo;
value->rValue *= here->BSIM4v6m;
return(OK);
case BSIM4v6_WEFF:
value->rValue = here->pParam->BSIM4v6weff;
return(OK);
case BSIM4v6_LEFF:
value->rValue = here->pParam->BSIM4v6leff;
return(OK);
default: default:
return(E_BADPARM); return(E_BADPARM);
} }

8
src/spicelib/devices/bsim4v6/bsim4v6def.h

@ -3666,6 +3666,14 @@ typedef struct sBSIM4v6model
#define BSIM4v6_MOD_VBSR_MAX 1310 #define BSIM4v6_MOD_VBSR_MAX 1310
#define BSIM4v6_MOD_VBDR_MAX 1311 #define BSIM4v6_MOD_VBDR_MAX 1311
#define BSIM4v6_VGSTEFF 1400
#define BSIM4v6_VDSEFF 1401
#define BSIM4v6_CGSO 1402
#define BSIM4v6_CGDO 1403
#define BSIM4v6_CGBO 1404
#define BSIM4v6_WEFF 1405
#define BSIM4v6_LEFF 1406
#include "bsim4v6ext.h" #include "bsim4v6ext.h"
extern void BSIM4v6evaluate(double,double,double,BSIM4v6instance*,BSIM4v6model*, extern void BSIM4v6evaluate(double,double,double,BSIM4v6instance*,BSIM4v6model*,

7
src/spicelib/devices/bsim4v7/b4v7.c

@ -112,6 +112,13 @@ OP( "qinv", BSIM4v7_QINV, IF_REAL, "Qinversion"),
OP( "qdef", BSIM4v7_QDEF, IF_REAL, "Qdef"), OP( "qdef", BSIM4v7_QDEF, IF_REAL, "Qdef"),
OP( "gcrg", BSIM4v7_GCRG, IF_REAL, "Gcrg"), OP( "gcrg", BSIM4v7_GCRG, IF_REAL, "Gcrg"),
OP( "gtau", BSIM4v7_GTAU, IF_REAL, "Gtau"), OP( "gtau", BSIM4v7_GTAU, IF_REAL, "Gtau"),
OP( "vgsteff", BSIM4v7_VGSTEFF, IF_REAL, "Vgsteff"),
OP( "vdseff", BSIM4v7_VDSEFF, IF_REAL, "Vdseff"),
OP( "cgso", BSIM4v7_CGSO, IF_REAL, "Cgso"),
OP( "cgdo", BSIM4v7_CGDO, IF_REAL, "Cgdo"),
OP( "cgbo", BSIM4v7_CGBO, IF_REAL, "Cgbo"),
OP( "weff", BSIM4v7_WEFF, IF_REAL, "Weff"),
OP( "leff", BSIM4v7_LEFF, IF_REAL, "Leff"),
}; };
IFparm BSIM4v7mPTable[] = { /* model parameters */ IFparm BSIM4v7mPTable[] = { /* model parameters */

24
src/spicelib/devices/bsim4v7/b4v7ask.c

@ -403,6 +403,30 @@ BSIM4v7instance *here = (BSIM4v7instance*)inst;
case BSIM4v7_QBD: case BSIM4v7_QBD:
value->rValue = *(ckt->CKTstate0 + here->BSIM4v7qbd); value->rValue = *(ckt->CKTstate0 + here->BSIM4v7qbd);
return(OK); return(OK);
case BSIM4v7_VGSTEFF:
value->rValue = here->BSIM4v7Vgsteff;
return(OK);
case BSIM4v7_VDSEFF:
value->rValue = here->BSIM4v7Vdseff;
return(OK);
case BSIM4v7_CGSO:
value->rValue = here->BSIM4v7cgso;
value->rValue *= here->BSIM4v7m;
return(OK);
case BSIM4v7_CGDO:
value->rValue = here->BSIM4v7cgdo;
value->rValue *= here->BSIM4v7m;
return(OK);
case BSIM4v7_CGBO:
value->rValue = here->pParam->BSIM4v7cgbo;
value->rValue *= here->BSIM4v7m;
return(OK);
case BSIM4v7_WEFF:
value->rValue = here->pParam->BSIM4v7weff;
return(OK);
case BSIM4v7_LEFF:
value->rValue = here->pParam->BSIM4v7leff;
return(OK);
default: default:
return(E_BADPARM); return(E_BADPARM);
} }

9
src/spicelib/devices/bsim4v7/bsim4v7def.h

@ -3858,6 +3858,15 @@ typedef struct sBSIM4v7model
#define BSIM4v7_MOD_VBSR_MAX 1310 #define BSIM4v7_MOD_VBSR_MAX 1310
#define BSIM4v7_MOD_VBDR_MAX 1311 #define BSIM4v7_MOD_VBDR_MAX 1311
#define BSIM4v7_VGSTEFF 1400
#define BSIM4v7_VDSEFF 1401
#define BSIM4v7_CGSO 1402
#define BSIM4v7_CGDO 1403
#define BSIM4v7_CGBO 1404
#define BSIM4v7_WEFF 1405
#define BSIM4v7_LEFF 1406
#include "bsim4v7ext.h" #include "bsim4v7ext.h"
extern void BSIM4v7evaluate(double,double,double,BSIM4v7instance*,BSIM4v7model*, extern void BSIM4v7evaluate(double,double,double,BSIM4v7instance*,BSIM4v7model*,

Loading…
Cancel
Save