Jspice3
mospar.c File Reference
#include "spice.h"
#include <stdio.h>
#include "mosdefs.h"
#include "const.h"
#include "sperror.h"
#include "util.h"
Include dependency graph for mospar.c:

Go to the source code of this file.

Functions

int MOSparam (CKTcircuit *ckt, int param, IFvalue *value, GENinstance *inst, IFvalue *select)
 

Function Documentation

int MOSparam ( CKTcircuit ckt,
int  param,
IFvalue value,
GENinstance inst,
IFvalue select 
)

Definition at line 19 of file mospar.c.

26 {
27  MOSinstance *here = (MOSinstance *)inst;
28 
29  switch (param) {
30 
31  case MOS_TEMP:
32  here->MOStemp = value->rValue+CONSTCtoK;
33  here->MOStempGiven = TRUE;
34  break;
35  case MOS_L:
36  here->MOSl = value->rValue;
37  here->MOSlGiven = TRUE;
38  break;
39  case MOS_W:
40  here->MOSw = value->rValue;
41  here->MOSwGiven = TRUE;
42  break;
43  case MOS_AD:
44  here->MOSdrainArea = value->rValue;
45  here->MOSdrainAreaGiven = TRUE;
46  break;
47  case MOS_AS:
48  here->MOSsourceArea = value->rValue;
49  here->MOSsourceAreaGiven = TRUE;
50  break;
51  case MOS_PD:
52  here->MOSdrainPerimeter = value->rValue;
54  break;
55  case MOS_PS:
56  here->MOSsourcePerimeter = value->rValue;
58  break;
59  case MOS_NRD:
60  here->MOSdrainSquares = value->rValue;
61  here->MOSdrainSquaresGiven = TRUE;
62  break;
63  case MOS_NRS:
64  here->MOSsourceSquares = value->rValue;
66  break;
67  case MOS_OFF:
68  here->MOSoff = value->iValue;
69  break;
70  case MOS_IC_VDS:
71  here->MOSicVDS = value->rValue;
72  here->MOSicVDSGiven = TRUE;
73  break;
74  case MOS_IC_VGS:
75  here->MOSicVGS = value->rValue;
76  here->MOSicVGSGiven = TRUE;
77  break;
78  case MOS_IC_VBS:
79  here->MOSicVBS = value->rValue;
80  here->MOSicVBSGiven = TRUE;
81  break;
82  case MOS_IC:
83  switch (value->v.numValue) {
84  case 3:
85  here->MOSicVBS = *(value->v.vec.rVec+2);
86  here->MOSicVBSGiven = TRUE;
87  case 2:
88  here->MOSicVGS = *(value->v.vec.rVec+1);
89  here->MOSicVGSGiven = TRUE;
90  case 1:
91  here->MOSicVDS = *(value->v.vec.rVec);
92  here->MOSicVDSGiven = TRUE;
93  break;
94  default:
95  return (E_BADPARM);
96  }
97  break;
98  default:
99  return (E_BADPARM);
100  }
101  return (OK);
102 }
double MOSdrainArea
Definition: mosdefs.h:36
double MOStemp
Definition: mosdefs.h:44
int numValue
Definition: ifsim.h:240
unsigned MOSsourceAreaGiven
Definition: mosdefs.h:220
unsigned MOSicVGSGiven
Definition: mosdefs.h:229
#define MOS_IC_VDS
Definition: mosdefs.h:444
unsigned MOSdrainAreaGiven
Definition: mosdefs.h:219
union uIFvalue::@13::@14 vec
#define CONSTCtoK
Definition: const.h:11
#define MOS_AD
Definition: mosdefs.h:437
double MOSsourcePerimeter
Definition: mosdefs.h:41
#define E_BADPARM
Definition: iferrmsg.h:26
#define MOS_W
Definition: mosdefs.h:436
double MOSl
Definition: mosdefs.h:34
unsigned MOSoff
Definition: mosdefs.h:215
#define TRUE
Definition: util.h:27
#define MOS_NRD
Definition: mosdefs.h:441
unsigned MOSicVDSGiven
Definition: mosdefs.h:228
int iValue
Definition: ifsim.h:232
#define MOS_AS
Definition: mosdefs.h:438
double rValue
Definition: ifsim.h:233
unsigned MOSdrainSquaresGiven
Definition: mosdefs.h:221
unsigned MOSdrainPerimeterGiven
Definition: mosdefs.h:223
#define MOS_IC_VGS
Definition: mosdefs.h:445
double MOSw
Definition: mosdefs.h:35
#define MOS_OFF
Definition: mosdefs.h:443
#define OK
Definition: iferrmsg.h:17
double MOSicVBS
Definition: mosdefs.h:63
unsigned MOSicVBSGiven
Definition: mosdefs.h:227
#define MOS_L
Definition: mosdefs.h:435
double MOSdrainPerimeter
Definition: mosdefs.h:40
#define MOS_IC
Definition: mosdefs.h:447
#define MOS_NRS
Definition: mosdefs.h:442
#define MOS_TEMP
Definition: mosdefs.h:434
unsigned MOSwGiven
Definition: mosdefs.h:218
double MOSicVGS
Definition: mosdefs.h:65
#define MOS_IC_VBS
Definition: mosdefs.h:446
double MOSdrainSquares
Definition: mosdefs.h:38
unsigned MOSsourcePerimeterGiven
Definition: mosdefs.h:224
unsigned MOSsourceSquaresGiven
Definition: mosdefs.h:222
struct uIFvalue::@13 v
#define MOS_PD
Definition: mosdefs.h:439
#define MOS_PS
Definition: mosdefs.h:440
double MOSsourceSquares
Definition: mosdefs.h:39
double MOSsourceArea
Definition: mosdefs.h:37
unsigned MOSlGiven
Definition: mosdefs.h:217
double MOSicVDS
Definition: mosdefs.h:64
unsigned MOStempGiven
Definition: mosdefs.h:216