extend bsim4 operating point info list

This commit is contained in:
Matthias Schweikardt 2024-08-23 09:14:31 +02:00 committed by dwarning
parent 4a8000cad9
commit 4b0beff839
12 changed files with 157 additions and 0 deletions

View File

@ -117,6 +117,13 @@ OP( "qinv", BSIM4_QINV, IF_REAL, "Qinversion"),
OP( "qdef", BSIM4_QDEF, IF_REAL, "Qdef"),
OP( "gcrg", BSIM4_GCRG, IF_REAL, "Gcrg"),
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 */

View File

@ -415,6 +415,30 @@ BSIM4instance *here = (BSIM4instance*)inst;
case BSIM4_QBD:
value->rValue = *(ckt->CKTstate0 + here->BSIM4qbd);
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:
return(E_BADPARM);
}

View File

@ -3876,6 +3876,14 @@ typedef struct sBSIM4model
#define BSIM4_MOD_VBSR_MAX 1310
#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"
extern void BSIM4evaluate(double,double,double,BSIM4instance*,BSIM4model*,

View File

@ -105,6 +105,13 @@ OP( "qinv", BSIM4v5_QINV, IF_REAL, "Qinversion"),
OP( "qdef", BSIM4v5_QDEF, IF_REAL, "Qdef"),
OP( "gcrg", BSIM4v5_GCRG, IF_REAL, "Gcrg"),
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 */

View File

@ -398,6 +398,30 @@ BSIM4v5instance *here = (BSIM4v5instance*)inst;
case BSIM4v5_QBD:
value->rValue = *(ckt->CKTstate0 + here->BSIM4v5qbd);
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:
return(E_BADPARM);
}

View File

@ -3408,6 +3408,14 @@ typedef struct sBSIM4v5model
#define BSIM4v5_MOD_VBSR_MAX 1210
#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"
extern void BSIM4v5evaluate(double,double,double,BSIM4v5instance*,BSIM4v5model*,

View File

@ -111,6 +111,13 @@ OP( "qinv", BSIM4v6_QINV, IF_REAL, "Qinversion"),
OP( "qdef", BSIM4v6_QDEF, IF_REAL, "Qdef"),
OP( "gcrg", BSIM4v6_GCRG, IF_REAL, "Gcrg"),
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 */

View File

@ -399,6 +399,30 @@ BSIM4v6instance *here = (BSIM4v6instance*)inst;
case BSIM4v6_QBD:
value->rValue = *(ckt->CKTstate0 + here->BSIM4v6qbd);
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:
return(E_BADPARM);
}

View File

@ -3666,6 +3666,14 @@ typedef struct sBSIM4v6model
#define BSIM4v6_MOD_VBSR_MAX 1310
#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"
extern void BSIM4v6evaluate(double,double,double,BSIM4v6instance*,BSIM4v6model*,

View File

@ -112,6 +112,13 @@ OP( "qinv", BSIM4v7_QINV, IF_REAL, "Qinversion"),
OP( "qdef", BSIM4v7_QDEF, IF_REAL, "Qdef"),
OP( "gcrg", BSIM4v7_GCRG, IF_REAL, "Gcrg"),
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 */

View File

@ -403,6 +403,30 @@ BSIM4v7instance *here = (BSIM4v7instance*)inst;
case BSIM4v7_QBD:
value->rValue = *(ckt->CKTstate0 + here->BSIM4v7qbd);
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:
return(E_BADPARM);
}

View File

@ -3858,6 +3858,15 @@ typedef struct sBSIM4v7model
#define BSIM4v7_MOD_VBSR_MAX 1310
#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"
extern void BSIM4v7evaluate(double,double,double,BSIM4v7instance*,BSIM4v7model*,