Jspice3
diompar.c
Go to the documentation of this file.
1 /***************************************************************************
2 JSPICE3 adaptation of Spice3f2 - Copyright (c) Stephen R. Whiteley 1992
3 Copyright 1990 Regents of the University of California. All rights reserved.
4 Authors: 1985 Thomas L. Quarles
5  1992 Stephen R. Whiteley
6 ****************************************************************************/
7 
8 #include "spice.h"
9 #include <stdio.h>
10 #include "diodefs.h"
11 #include "const.h"
12 #include "util.h"
13 #include "sperror.h"
14 
15 
16 int
17 DIOmParam(param,value,inModel)
18 
19 int param;
20 IFvalue *value;
21 GENmodel *inModel;
22 {
23  DIOmodel *model = (DIOmodel*)inModel;
24 
25  switch (param) {
26  case DIO_MOD_IS:
27  model->DIOsatCur = value->rValue;
28  model->DIOsatCurGiven = TRUE;
29  break;
30  case DIO_MOD_RS:
31  model->DIOresist = value->rValue;
32  model->DIOresistGiven = TRUE;
33  break;
34  case DIO_MOD_N:
35  model->DIOemissionCoeff = value->rValue;
36  model->DIOemissionCoeffGiven = TRUE;
37  break;
38  case DIO_MOD_TT:
39  model->DIOtransitTime = value->rValue;
40  model->DIOtransitTimeGiven = TRUE;
41  break;
42  case DIO_MOD_CJO:
43  model->DIOjunctionCap = value->rValue;
44  model->DIOjunctionCapGiven = TRUE;
45  break;
46  case DIO_MOD_VJ:
47  model->DIOjunctionPot = value->rValue;
48  model->DIOjunctionPotGiven = TRUE;
49  break;
50  case DIO_MOD_M:
51  model->DIOgradingCoeff = value->rValue;
52  model->DIOgradingCoeffGiven = TRUE;
53  break;
54  case DIO_MOD_EG:
55  model->DIOactivationEnergy = value->rValue;
57  break;
58  case DIO_MOD_XTI:
59  model->DIOsaturationCurrentExp = value->rValue;
61  break;
62  case DIO_MOD_FC:
63  model->DIOdepletionCapCoeff = value->rValue;
65  break;
66  case DIO_MOD_BV:
67  model->DIObreakdownVoltage = value->rValue;
69  break;
70  case DIO_MOD_IBV:
71  model->DIObreakdownCurrent = value->rValue;
73  break;
74  case DIO_MOD_D:
75  /* no action - we already know we are a diode, but this */
76  /* makes life easier for spice-2 like parsers */
77  break;
78  case DIO_MOD_TNOM:
79  model->DIOnomTemp = value->rValue+CONSTCtoK;
80  model->DIOnomTempGiven = TRUE;
81  break;
82  case DIO_MOD_KF:
83  model->DIOfNcoef = value->rValue;
84  model->DIOfNcoefGiven = TRUE;
85  break;
86  case DIO_MOD_AF:
87  model->DIOfNexp = value->rValue;
88  model->DIOfNexpGiven = TRUE;
89  break;
90  default:
91  return (E_BADPARM);
92  }
93  return (OK);
94 }
#define DIO_MOD_AF
Definition: diodefs.h:195
double DIOactivationEnergy
Definition: diodefs.h:149
#define DIO_MOD_IBV
Definition: diodefs.h:190
unsigned DIOdepletionCapCoeffGiven
Definition: diodefs.h:134
#define DIO_MOD_TNOM
Definition: diodefs.h:193
unsigned DIOfNcoefGiven
Definition: diodefs.h:138
double DIOfNcoef
Definition: diodefs.h:157
unsigned DIOjunctionPotGiven
Definition: diodefs.h:130
unsigned DIObreakdownVoltageGiven
Definition: diodefs.h:135
#define DIO_MOD_VJ
Definition: diodefs.h:184
#define DIO_MOD_RS
Definition: diodefs.h:180
#define CONSTCtoK
Definition: const.h:11
unsigned DIOgradingCoeffGiven
Definition: diodefs.h:131
unsigned DIOresistGiven
Definition: diodefs.h:126
#define E_BADPARM
Definition: iferrmsg.h:26
#define TRUE
Definition: util.h:27
double rValue
Definition: ifsim.h:233
#define DIO_MOD_D
Definition: diodefs.h:191
double DIOtransitTime
Definition: diodefs.h:145
#define DIO_MOD_N
Definition: diodefs.h:181
double DIOjunctionCap
Definition: diodefs.h:146
double DIOdepletionCapCoeff
Definition: diodefs.h:151
double DIObreakdownVoltage
Definition: diodefs.h:152
#define OK
Definition: iferrmsg.h:17
unsigned DIOsatCurGiven
Definition: diodefs.h:125
double DIOsaturationCurrentExp
Definition: diodefs.h:150
unsigned DIOfNexpGiven
Definition: diodefs.h:139
double DIOfNexp
Definition: diodefs.h:158
#define DIO_MOD_FC
Definition: diodefs.h:188
double DIOemissionCoeff
Definition: diodefs.h:144
#define DIO_MOD_EG
Definition: diodefs.h:186
unsigned DIOemissionCoeffGiven
Definition: diodefs.h:127
#define DIO_MOD_BV
Definition: diodefs.h:189
unsigned DIOsaturationCurrentExpGiven
Definition: diodefs.h:133
unsigned DIOnomTempGiven
Definition: diodefs.h:137
#define DIO_MOD_IS
Definition: diodefs.h:179
static char model[32]
Definition: subckt.c:76
unsigned DIOtransitTimeGiven
Definition: diodefs.h:128
#define DIO_MOD_M
Definition: diodefs.h:185
unsigned DIObreakdownCurrentGiven
Definition: diodefs.h:136
#define DIO_MOD_CJO
Definition: diodefs.h:183
double DIObreakdownCurrent
Definition: diodefs.h:153
double DIOnomTemp
Definition: diodefs.h:156
double DIOjunctionPot
Definition: diodefs.h:147
int DIOmParam(int param, IFvalue *value, GENmodel *inModel)
Definition: diompar.c:17
#define DIO_MOD_KF
Definition: diodefs.h:194
#define DIO_MOD_TT
Definition: diodefs.h:182
#define DIO_MOD_XTI
Definition: diodefs.h:187
unsigned DIOactivationEnergyGiven
Definition: diodefs.h:132
double DIOsatCur
Definition: diodefs.h:141
double DIOresist
Definition: diodefs.h:142
double DIOgradingCoeff
Definition: diodefs.h:148
unsigned DIOjunctionCapGiven
Definition: diodefs.h:129