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

Go to the source code of this file.

Functions

int MOSmAsk (CKTcircuit *ckt, GENmodel *inModel, int param, IFvalue *value)
 

Function Documentation

int MOSmAsk ( CKTcircuit ckt,
GENmodel inModel,
int  param,
IFvalue value 
)

Definition at line 16 of file mosmask.c.

22 {
23  MOSmodel *model = (MOSmodel *)inModel;
24 
25  switch (param) {
26 
27  case MOS_MOD_LEVEL:
28  value->iValue = model->MOSlevel;
29  break;
30  case MOS_MOD_TNOM:
31  value->rValue = model->MOStnom - CONSTCtoK;
32  break;
33  case MOS_MOD_VTO:
34  value->rValue = model->MOSvt0;
35  break;
36  case MOS_MOD_KP:
37  value->rValue = model->MOStransconductance;
38  break;
39  case MOS_MOD_GAMMA:
40  value->rValue = model->MOSgamma;
41  break;
42  case MOS_MOD_PHI:
43  value->rValue = model->MOSphi;
44  break;
45  case MOS_MOD_RD:
46  value->rValue = model->MOSdrainResistance;
47  break;
48  case MOS_MOD_RS:
49  value->rValue = model->MOSsourceResistance;
50  break;
51  case MOS_MOD_CBD:
52  value->rValue = model->MOScapBD;
53  break;
54  case MOS_MOD_CBS:
55  value->rValue = model->MOScapBS;
56  break;
57  case MOS_MOD_IS:
58  value->rValue = model->MOSjctSatCur;
59  break;
60  case MOS_MOD_PB:
61  value->rValue = model->MOSbulkJctPotential;
62  break;
63  case MOS_MOD_CGSO:
64  value->rValue = model->MOSgateSourceOverlapCapFactor;
65  break;
66  case MOS_MOD_CGDO:
67  value->rValue = model->MOSgateDrainOverlapCapFactor;
68  break;
69  case MOS_MOD_CGBO:
70  value->rValue = model->MOSgateBulkOverlapCapFactor;
71  break;
72  case MOS_MOD_CJ:
73  value->rValue = model->MOSbulkCapFactor;
74  break;
75  case MOS_MOD_MJ:
76  value->rValue = model->MOSbulkJctBotGradingCoeff;
77  break;
78  case MOS_MOD_CJSW:
79  value->rValue = model->MOSsideWallCapFactor;
80  break;
81  case MOS_MOD_MJSW:
82  value->rValue = model->MOSbulkJctSideGradingCoeff;
83  break;
84  case MOS_MOD_JS:
85  value->rValue = model->MOSjctSatCurDensity;
86  break;
87  case MOS_MOD_TOX:
88  value->rValue = model->MOSoxideThickness;
89  break;
90  case MOS_MOD_LD:
91  value->rValue = model->MOSlatDiff;
92  break;
93  case MOS_MOD_RSH:
94  value->rValue = model->MOSsheetResistance;
95  break;
96  case MOS_MOD_U0:
97  value->rValue = model->MOSsurfaceMobility;
98  break;
99  case MOS_MOD_FC:
100  value->rValue = model->MOSfwdCapDepCoeff;
101  break;
102  case MOS_MOD_NSUB:
103  value->rValue = model->MOSsubstrateDoping;
104  break;
105  case MOS_MOD_TPG:
106  value->rValue = model->MOSgateType;
107  break;
108  case MOS_MOD_NSS:
109  value->rValue = model->MOSsurfaceStateDensity;
110  break;
111  case MOS_MOD_TYPE:
112  if (model->MOStype > 0)
113  value->sValue = "nmos";
114  else
115  value->sValue = "pmos";
116  break;
117  case MOS_MOD_KF:
118  value->rValue = model->MOSfNcoef;
119  break;
120  case MOS_MOD_AF:
121  value->rValue = model->MOSfNexp;
122  break;
123  case MOS_MOD_LAMBDA:
124  /* levels 1,2 and 6 */
125  value->rValue = model->MOSlambda;
126  break;
127  case MOS_MOD_UEXP:
128  /* level 2 */
129  value->rValue = model->MOScritFieldExp;
130  break;
131  case MOS_MOD_NEFF:
132  /* level 2 */
133  value->rValue = model->MOSchannelCharge;
134  break;
135  case MOS_MOD_UCRIT:
136  /* level 2 */
137  value->rValue = model->MOScritField;
138  break;
139  case MOS_MOD_NFS:
140  /* levels 2 and 3 */
141  value->rValue = model->MOSfastSurfaceStateDensity;
142  break;
143  case MOS_MOD_DELTA:
144  /* levels 2 and 3 */
145  value->rValue = model->MOSnarrowFactor;
146  break;
147  case MOS_MOD_VMAX:
148  /* levels 2 and 3 */
149  value->rValue = model->MOSmaxDriftVel;
150  break;
151  case MOS_MOD_XJ:
152  /* levels 2 and 3 */
153  value->rValue = model->MOSjunctionDepth;
154  break;
155  case MOS_MOD_ETA:
156  /* level 3 */
157  value->rValue = model->MOSeta;
158  break;
159  case MOS_MOD_THETA:
160  /* level 3 */
161  value->rValue = model->MOStheta;
162  break;
163  case MOS_MOD_ALPHA:
164  /* level 3 */
165  value->rValue = model->MOSalpha;
166  break;
167  case MOS_MOD_KAPPA:
168  /* level 3 */
169  value->rValue = model->MOSkappa;
170  break;
171  case MOS_MOD_XD:
172  /* level 3 */
173  value->rValue = model->MOSxd;
174  break;
175  case MOS_DELTA:
176  /* level 3 */
177  value->rValue = model->MOSdelta;
178  return(OK);
179  case MOS_MOD_KV:
180  /* level 6 */
181  value->rValue = model->MOSkv;
182  break;
183  case MOS_MOD_NV:
184  /* level 6 */
185  value->rValue = model->MOSnv;
186  break;
187  case MOS_MOD_KC:
188  /* level 6 */
189  value->rValue = model->MOSkc;
190  break;
191  case MOS_MOD_NC:
192  /* level 6 */
193  value->rValue = model->MOSnc;
194  break;
195  case MOS_MOD_GAMMA1:
196  /* level 6 */
197  value->rValue = model->MOSgamma1;
198  break;
199  case MOS_MOD_SIGMA:
200  /* level 6 */
201  value->rValue = model->MOSsigma;
202  break;
203  case MOS_MOD_LAMDA0:
204  /* level 6 */
205  value->rValue = model->MOSlamda0;
206  break;
207  case MOS_MOD_LAMDA1:
208  /* level 6 */
209  value->rValue = model->MOSlamda1;
210  break;
211  case MOS_MOD_A1:
212  /* level 8, CryoMOS by Luong 1/19/95 */
213  value->rValue = model->MOSa1;
214  break;
215  case MOS_MOD_A2:
216  /* level 8, CryoMOS by Luong 1/19/95 */
217  value->rValue = model->MOSa2;
218  break;
219  case MOS_MOD_K1:
220  /* level 8, CryoMOS by Luong 1/19/95 */
221  value->rValue = model->MOSk1;
222  break;
223  case MOS_MOD_K2:
224  /* level 8, CryoMOS by Luong 1/19/95 */
225  value->rValue = model->MOSk2;
226  break;
227  case MOS_MOD_K3:
228  /* level 8, CryoMOS by Luong 1/19/95 */
229  value->rValue = model->MOSk3;
230  break;
231  case MOS_MOD_K4:
232  /* level 8, CryoMOS by Luong 1/19/95 */
233  value->rValue = model->MOSk4;
234  break;
235  case MOS_MOD_PCLM:
236  /* level 8, CryoMOS by Luong 1/19/95 */
237  value->rValue = model->MOSpclm;
238  break;
239  case MOS_MOD_EM:
240  /* level 8, CryoMOS by Luong 1/19/95 */
241  value->rValue = model->MOSem;
242  break;
243  default:
244  return (E_BADPARM);
245  }
246  return (OK);
247 }
double MOSsourceResistance
Definition: mosdefs.h:289
#define MOS_MOD_RD
Definition: mosdefs.h:508
double MOSgamma
Definition: mosdefs.h:286
double MOSlatDiff
Definition: mosdefs.h:303
#define MOS_MOD_RS
Definition: mosdefs.h:509
#define MOS_MOD_TYPE
Definition: mosdefs.h:501
#define MOS_MOD_PHI
Definition: mosdefs.h:507
double MOSbulkJctPotential
Definition: mosdefs.h:293
double MOSem
Definition: mosdefs.h:352
#define MOS_MOD_NFS
Definition: mosdefs.h:538
#define MOS_MOD_VMAX
Definition: mosdefs.h:540
#define MOS_MOD_CJ
Definition: mosdefs.h:517
#define MOS_MOD_K2
Definition: mosdefs.h:560
double MOSchannelCharge
Definition: mosdefs.h:317
double MOSxd
Definition: mosdefs.h:325
double MOSoxideThickness
Definition: mosdefs.h:302
#define MOS_MOD_DELTA
Definition: mosdefs.h:539
#define MOS_MOD_GAMMA1
Definition: mosdefs.h:552
double MOSeta
Definition: mosdefs.h:328
double MOSsurfaceStateDensity
Definition: mosdefs.h:307
#define MOS_MOD_FC
Definition: mosdefs.h:526
#define MOS_MOD_NSS
Definition: mosdefs.h:527
double MOStransconductance
Definition: mosdefs.h:285
double MOSvt0
Definition: mosdefs.h:284
double MOSa2
Definition: mosdefs.h:346
double MOSgamma1
Definition: mosdefs.h:339
#define MOS_MOD_NC
Definition: mosdefs.h:551
double MOSlamda0
Definition: mosdefs.h:341
#define CONSTCtoK
Definition: const.h:11
#define MOS_MOD_TPG
Definition: mosdefs.h:529
double MOSk3
Definition: mosdefs.h:349
double MOSsigma
Definition: mosdefs.h:340
#define MOS_MOD_RSH
Definition: mosdefs.h:524
double MOSbulkJctBotGradingCoeff
Definition: mosdefs.h:298
int MOSgateType
Definition: mosdefs.h:281
double MOSkc
Definition: mosdefs.h:337
#define MOS_MOD_THETA
Definition: mosdefs.h:543
int MOStype
Definition: mosdefs.h:279
double MOSkappa
Definition: mosdefs.h:330
#define MOS_MOD_NEFF
Definition: mosdefs.h:536
#define E_BADPARM
Definition: iferrmsg.h:26
#define MOS_MOD_VTO
Definition: mosdefs.h:504
double MOSa1
Definition: mosdefs.h:345
double MOSmaxDriftVel
Definition: mosdefs.h:323
double MOSfNexp
Definition: mosdefs.h:310
#define MOS_MOD_K1
Definition: mosdefs.h:559
#define MOS_DELTA
Definition: mosdefs.h:547
double MOSbulkJctSideGradingCoeff
Definition: mosdefs.h:300
int iValue
Definition: ifsim.h:232
double rValue
Definition: ifsim.h:233
double MOSnarrowFactor
Definition: mosdefs.h:322
#define MOS_MOD_A1
Definition: mosdefs.h:557
#define MOS_MOD_ETA
Definition: mosdefs.h:542
double MOSjunctionDepth
Definition: mosdefs.h:324
#define MOS_MOD_CBD
Definition: mosdefs.h:510
#define MOS_MOD_PCLM
Definition: mosdefs.h:563
#define MOS_MOD_LAMBDA
Definition: mosdefs.h:534
#define MOS_MOD_CGDO
Definition: mosdefs.h:515
double MOSk4
Definition: mosdefs.h:350
#define OK
Definition: iferrmsg.h:17
double MOSnc
Definition: mosdefs.h:338
double MOSk1
Definition: mosdefs.h:347
double MOSphi
Definition: mosdefs.h:287
#define MOS_MOD_XJ
Definition: mosdefs.h:541
double MOSdrainResistance
Definition: mosdefs.h:288
#define MOS_MOD_CGBO
Definition: mosdefs.h:516
#define MOS_MOD_LEVEL
Definition: mosdefs.h:502
#define MOS_MOD_CJSW
Definition: mosdefs.h:519
double MOSjctSatCurDensity
Definition: mosdefs.h:301
#define MOS_MOD_K4
Definition: mosdefs.h:562
double MOSpclm
Definition: mosdefs.h:351
double MOSk2
Definition: mosdefs.h:348
double MOScapBD
Definition: mosdefs.h:290
#define MOS_MOD_PB
Definition: mosdefs.h:513
double MOStnom
Definition: mosdefs.h:283
#define MOS_MOD_K3
Definition: mosdefs.h:561
#define MOS_MOD_NV
Definition: mosdefs.h:549
double MOScapBS
Definition: mosdefs.h:291
#define MOS_MOD_KP
Definition: mosdefs.h:505
double MOSsubstrateDoping
Definition: mosdefs.h:308
#define MOS_MOD_IS
Definition: mosdefs.h:512
int MOSlevel
Definition: mosdefs.h:280
double MOSsideWallCapFactor
Definition: mosdefs.h:299
#define MOS_MOD_KV
Definition: mosdefs.h:548
#define MOS_MOD_UCRIT
Definition: mosdefs.h:537
#define MOS_MOD_JS
Definition: mosdefs.h:521
double MOScritField
Definition: mosdefs.h:318
#define MOS_MOD_KAPPA
Definition: mosdefs.h:545
double MOSjctSatCur
Definition: mosdefs.h:292
#define MOS_MOD_CBS
Definition: mosdefs.h:511
double MOSalpha
Definition: mosdefs.h:332
#define MOS_MOD_MJ
Definition: mosdefs.h:518
double MOSfNcoef
Definition: mosdefs.h:309
#define MOS_MOD_EM
Definition: mosdefs.h:564
static char model[32]
Definition: subckt.c:76
double MOSfastSurfaceStateDensity
Definition: mosdefs.h:321
#define MOS_MOD_U0
Definition: mosdefs.h:525
#define MOS_MOD_LAMDA1
Definition: mosdefs.h:555
#define MOS_MOD_GAMMA
Definition: mosdefs.h:506
#define MOS_MOD_CGSO
Definition: mosdefs.h:514
double MOSgateSourceOverlapCapFactor
Definition: mosdefs.h:294
#define MOS_MOD_XD
Definition: mosdefs.h:546
double MOSkv
Definition: mosdefs.h:335
double MOSsheetResistance
Definition: mosdefs.h:304
double MOScritFieldExp
Definition: mosdefs.h:316
double MOSlambda
Definition: mosdefs.h:313
#define MOS_MOD_LAMDA0
Definition: mosdefs.h:554
#define MOS_MOD_AF
Definition: mosdefs.h:533
#define MOS_MOD_KF
Definition: mosdefs.h:532
#define MOS_MOD_UEXP
Definition: mosdefs.h:535
char * sValue
Definition: ifsim.h:235
#define MOS_MOD_TNOM
Definition: mosdefs.h:503
double MOStheta
Definition: mosdefs.h:329
double MOSbulkCapFactor
Definition: mosdefs.h:297
#define MOS_MOD_SIGMA
Definition: mosdefs.h:553
#define MOS_MOD_A2
Definition: mosdefs.h:558
#define MOS_MOD_TOX
Definition: mosdefs.h:522
double MOSlamda1
Definition: mosdefs.h:342
#define MOS_MOD_KC
Definition: mosdefs.h:550
double MOSgateBulkOverlapCapFactor
Definition: mosdefs.h:296
double MOSsurfaceMobility
Definition: mosdefs.h:305
double MOSgateDrainOverlapCapFactor
Definition: mosdefs.h:295
double MOSdelta
Definition: mosdefs.h:331
double MOSfwdCapDepCoeff
Definition: mosdefs.h:306
#define MOS_MOD_LD
Definition: mosdefs.h:523
double MOSnv
Definition: mosdefs.h:336
#define MOS_MOD_NSUB
Definition: mosdefs.h:528
#define MOS_MOD_MJSW
Definition: mosdefs.h:520
#define MOS_MOD_ALPHA
Definition: mosdefs.h:544