Browse Source

devices/cap, devices/res: some parameter aliases for compatibility

pre-master-46
dwarning 13 years ago
committed by rlar
parent
commit
ba0529cef0
  1. 4
      src/spicelib/devices/cap/cap.c
  2. 3
      src/spicelib/devices/res/res.c
  3. 15
      src/spicelib/devices/res/resdefs.h
  4. 3
      src/spicelib/devices/res/resmask.c
  5. 4
      src/spicelib/devices/res/resmpar.c
  6. 3
      src/spicelib/devices/res/restemp.c

4
src/spicelib/devices/cap/cap.c

@ -36,9 +36,13 @@ IFparm CAPpTable[] = { /* parameters */
IFparm CAPmPTable[] = { /* names of model parameters */ IFparm CAPmPTable[] = { /* names of model parameters */
IOPA( "cap", CAP_MOD_CAP, IF_REAL, "Model capacitance"), IOPA( "cap", CAP_MOD_CAP, IF_REAL, "Model capacitance"),
IOPA( "cj", CAP_MOD_CJ, IF_REAL, "Bottom Capacitance per area"), IOPA( "cj", CAP_MOD_CJ, IF_REAL, "Bottom Capacitance per area"),
IOPR( "cox", CAP_MOD_CJ, IF_REAL, "Bottom Capacitance per area"),
IOPA( "cjsw", CAP_MOD_CJSW, IF_REAL, "Sidewall capacitance per meter"), IOPA( "cjsw", CAP_MOD_CJSW, IF_REAL, "Sidewall capacitance per meter"),
IOPR( "capsw", CAP_MOD_CJSW, IF_REAL, "Sidewall capacitance per meter"),
IOPX( "defw", CAP_MOD_DEFWIDTH, IF_REAL, "Default width"), IOPX( "defw", CAP_MOD_DEFWIDTH, IF_REAL, "Default width"),
IOPR( "w", CAP_MOD_DEFWIDTH, IF_REAL, "Default width"),
IOPX( "defl", CAP_MOD_DEFLENGTH,IF_REAL, "Default length"), IOPX( "defl", CAP_MOD_DEFLENGTH,IF_REAL, "Default length"),
IOPR( "l", CAP_MOD_DEFLENGTH,IF_REAL, "Default length"),
IOPA( "narrow", CAP_MOD_NARROW, IF_REAL, "width correction factor"), IOPA( "narrow", CAP_MOD_NARROW, IF_REAL, "width correction factor"),
IOPA( "short", CAP_MOD_SHORT, IF_REAL, "length correction factor"), IOPA( "short", CAP_MOD_SHORT, IF_REAL, "length correction factor"),
IOPA( "tc1", CAP_MOD_TC1, IF_REAL, "First order temp. coefficient"), IOPA( "tc1", CAP_MOD_TC1, IF_REAL, "First order temp. coefficient"),

3
src/spicelib/devices/res/res.c

@ -45,9 +45,12 @@ IFparm RESmPTable[] = { /* model parameters */
IOPZ( "short", RES_MOD_SHORT, IF_REAL,"Shortening of resistor"), IOPZ( "short", RES_MOD_SHORT, IF_REAL,"Shortening of resistor"),
IOPR( "dlr", RES_MOD_SHORT, IF_REAL,"Shortening of resistor"), IOPR( "dlr", RES_MOD_SHORT, IF_REAL,"Shortening of resistor"),
IOPQ( "tc1", RES_MOD_TC1, IF_REAL,"First order temp. coefficient"), IOPQ( "tc1", RES_MOD_TC1, IF_REAL,"First order temp. coefficient"),
IOPR( "tc1r", RES_MOD_TC1, IF_REAL,"First order temp. coefficient"),
IOPQO( "tc2", RES_MOD_TC2, IF_REAL,"Second order temp. coefficient"), IOPQO( "tc2", RES_MOD_TC2, IF_REAL,"Second order temp. coefficient"),
IOPR( "tc2r", RES_MOD_TC2, IF_REAL,"Second order temp. coefficient"),
IOPX( "defw", RES_MOD_DEFWIDTH, IF_REAL,"Default device width"), IOPX( "defw", RES_MOD_DEFWIDTH, IF_REAL,"Default device width"),
IOPR( "w", RES_MOD_DEFWIDTH, IF_REAL,"Default device width"), IOPR( "w", RES_MOD_DEFWIDTH, IF_REAL,"Default device width"),
IOPX( "l", RES_MOD_DEFLENGTH,IF_REAL,"Default device length"),
IOPQ( "kf", RES_MOD_KF, IF_REAL,"Flicker noise coefficient"), IOPQ( "kf", RES_MOD_KF, IF_REAL,"Flicker noise coefficient"),
IOPQ( "af", RES_MOD_AF, IF_REAL,"Flicker noise exponent"), IOPQ( "af", RES_MOD_AF, IF_REAL,"Flicker noise exponent"),
IOPXU( "tnom", RES_MOD_TNOM, IF_REAL,"Parameter measurement temperature"), IOPXU( "tnom", RES_MOD_TNOM, IF_REAL,"Parameter measurement temperature"),

15
src/spicelib/devices/res/resdefs.h

@ -99,6 +99,7 @@ typedef struct sRESmodel { /* model structure for a resistor */
double REStempCoeff2; /* second temperature coefficient of resistors */ double REStempCoeff2; /* second temperature coefficient of resistors */
double RESsheetRes; /* sheet resistance of devices in ohms/square */ double RESsheetRes; /* sheet resistance of devices in ohms/square */
double RESdefWidth; /* default width of a resistor */ double RESdefWidth; /* default width of a resistor */
double RESdefLength; /* default length of a resistor */
double RESnarrow; /* amount by which device is narrower than drawn */ double RESnarrow; /* amount by which device is narrower than drawn */
double RESshort; /* amount by which device is shorter than drawn */ double RESshort; /* amount by which device is shorter than drawn */
double RESfNcoef; /* Flicker noise coefficient */ double RESfNcoef; /* Flicker noise coefficient */
@ -108,6 +109,7 @@ typedef struct sRESmodel { /* model structure for a resistor */
unsigned REStc2Given :1; /* flag to indicate tc2 was specified */ unsigned REStc2Given :1; /* flag to indicate tc2 was specified */
unsigned RESsheetResGiven :1; /* flag to indicate sheet resistance given*/ unsigned RESsheetResGiven :1; /* flag to indicate sheet resistance given*/
unsigned RESdefWidthGiven :1; /* flag to indicate default width given */ unsigned RESdefWidthGiven :1; /* flag to indicate default width given */
unsigned RESdefLengthGiven :1; /* flag to indicate default length given */
unsigned RESnarrowGiven :1; /* flag to indicate narrow effect given */ unsigned RESnarrowGiven :1; /* flag to indicate narrow effect given */
unsigned RESshortGiven :1; /* flag to indicate short effect given */ unsigned RESshortGiven :1; /* flag to indicate short effect given */
unsigned RESfNcoefGiven :1; /* flag to indicate kf given */ unsigned RESfNcoefGiven :1; /* flag to indicate kf given */
@ -139,12 +141,13 @@ typedef struct sRESmodel { /* model structure for a resistor */
#define RES_MOD_TC2 102 #define RES_MOD_TC2 102
#define RES_MOD_RSH 103 #define RES_MOD_RSH 103
#define RES_MOD_DEFWIDTH 104 #define RES_MOD_DEFWIDTH 104
#define RES_MOD_NARROW 105
#define RES_MOD_R 106
#define RES_MOD_TNOM 107
#define RES_MOD_SHORT 108
#define RES_MOD_KF 109
#define RES_MOD_AF 110
#define RES_MOD_DEFLENGTH 105
#define RES_MOD_NARROW 106
#define RES_MOD_R 107
#define RES_MOD_TNOM 108
#define RES_MOD_SHORT 109
#define RES_MOD_KF 110
#define RES_MOD_AF 111
/* device questions */ /* device questions */
#define RES_QUEST_SENS_REAL 201 #define RES_QUEST_SENS_REAL 201

3
src/spicelib/devices/res/resmask.c

@ -39,6 +39,9 @@ RESmodAsk(CKTcircuit *ckt, GENmodel *inModel, int which, IFvalue *value)
case RES_MOD_DEFWIDTH: case RES_MOD_DEFWIDTH:
value->rValue = model->RESdefWidth; value->rValue = model->RESdefWidth;
return(OK); return(OK);
case RES_MOD_DEFLENGTH:
value->rValue = model->RESdefLength;
return(OK);
case RES_MOD_NARROW: case RES_MOD_NARROW:
value->rValue = model->RESnarrow; value->rValue = model->RESnarrow;
return(OK); return(OK);

4
src/spicelib/devices/res/resmpar.c

@ -38,6 +38,10 @@ RESmParam(int param, IFvalue *value, GENmodel *inModel)
model->RESdefWidth = value->rValue; model->RESdefWidth = value->rValue;
model->RESdefWidthGiven = TRUE; model->RESdefWidthGiven = TRUE;
break; break;
case RES_MOD_DEFLENGTH:
model->RESdefLength = value->rValue;
model->RESdefLengthGiven = TRUE;
break;
case RES_MOD_NARROW: case RES_MOD_NARROW:
model->RESnarrow = value->rValue; model->RESnarrow = value->rValue;
model->RESnarrowGiven = TRUE; model->RESnarrowGiven = TRUE;

3
src/spicelib/devices/res/restemp.c

@ -32,6 +32,7 @@ REStemp(GENmodel *inModel, CKTcircuit *ckt)
if(!model->REStnomGiven) model->REStnom = ckt->CKTnomTemp; if(!model->REStnomGiven) model->REStnom = ckt->CKTnomTemp;
if(!model->RESsheetResGiven) model->RESsheetRes = 0.0; if(!model->RESsheetResGiven) model->RESsheetRes = 0.0;
if(!model->RESdefWidthGiven) model->RESdefWidth = 10.e-6; /*M*/ if(!model->RESdefWidthGiven) model->RESdefWidth = 10.e-6; /*M*/
if(!model->RESdefLengthGiven) model->RESdefLength = 10e-6;
if(!model->REStc1Given) model->REStempCoeff1 = 0.0; if(!model->REStc1Given) model->REStempCoeff1 = 0.0;
if(!model->REStc2Given) model->REStempCoeff2 = 0.0; if(!model->REStc2Given) model->REStempCoeff2 = 0.0;
if(!model->RESnarrowGiven) model->RESnarrow = 0.0; if(!model->RESnarrowGiven) model->RESnarrow = 0.0;
@ -55,7 +56,7 @@ REStemp(GENmodel *inModel, CKTcircuit *ckt)
} }
if(!here->RESwidthGiven) here->RESwidth = model->RESdefWidth; if(!here->RESwidthGiven) here->RESwidth = model->RESdefWidth;
if(!here->RESlengthGiven) here->RESlength = 0.0;
if(!here->RESlengthGiven) here->RESlength = model->RESdefLength;
if(!here->RESscaleGiven) here->RESscale = 1.0; if(!here->RESscaleGiven) here->RESscale = 1.0;
if(!here->RESmGiven) here->RESm = 1.0; if(!here->RESmGiven) here->RESm = 1.0;
if(!here->RESnoisyGiven) here->RESnoisy = 1; if(!here->RESnoisyGiven) here->RESnoisy = 1;

Loading…
Cancel
Save