vccs (G source): add multiplier m
This commit is contained in:
parent
fe244d44f2
commit
47162dccab
|
|
@ -11,6 +11,7 @@ Author: 1987 Thomas L. Quarles
|
|||
|
||||
IFparm VCCSpTable[] = { /* parameters */
|
||||
IOPU("gain", VCCS_TRANS, IF_REAL, "Transconductance of source (gain)"),
|
||||
IOP ( "m", VCCS_M, IF_REAL , "Parallel multiplier"),
|
||||
IP("sens_trans", VCCS_TRANS_SENS,IF_FLAG,
|
||||
"flag to request sensitivity WRT transconductance"),
|
||||
OPU("pos_node", VCCS_POS_NODE, IF_INTEGER, "Positive node of source"),
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ typedef struct sVCCSinstance {
|
|||
|
||||
double VCCSinitCond; /* initial condition (of controlling source) */
|
||||
double VCCScoeff; /* coefficient */
|
||||
double VCCSmValue; /* Parallel multiplier */
|
||||
|
||||
double *VCCSposContPosptr; /* pointer to sparse matrix element at
|
||||
* (positive node, control positive node) */
|
||||
|
|
@ -41,6 +42,7 @@ typedef struct sVCCSinstance {
|
|||
double *VCCSnegContNegptr; /* pointer to sparse matrix element at
|
||||
* (negative node, control negative node) */
|
||||
unsigned VCCScoeffGiven :1 ;/* flag to indicate function coeffs given */
|
||||
unsigned VCCSmGiven :1 ;/* flag to indicate multiplier given */
|
||||
|
||||
int VCCSsenParmNo; /* parameter # for sensitivity use;
|
||||
set equal to 0 if not a design parameter*/
|
||||
|
|
@ -73,6 +75,7 @@ typedef struct sVCCSmodel { /* model structure for a source */
|
|||
#define VCCS_CURRENT 9
|
||||
#define VCCS_POWER 10
|
||||
#define VCCS_VOLTS 11
|
||||
#define VCCS_M 12
|
||||
|
||||
/* model parameters */
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,12 @@ VCCSparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
|
|||
case VCCS_TRANS:
|
||||
here->VCCScoeff = value->rValue;
|
||||
here->VCCScoeffGiven = TRUE;
|
||||
if (here->VCCSmGiven)
|
||||
here->VCCScoeff *= here->VCCSmValue;
|
||||
break;
|
||||
case VCCS_M:
|
||||
here->VCCSmValue = value->rValue;
|
||||
here->VCCSmGiven = TRUE;
|
||||
break;
|
||||
case VCCS_TRANS_SENS:
|
||||
here->VCCSsenParmNo = value->iValue;
|
||||
|
|
|
|||
Loading…
Reference in New Issue