Jspice3
Main Page
Data Structures
Files
File List
Globals
dio.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
1993 Stephen R. Whiteley
6
****************************************************************************/
7
8
#include "
spice.h
"
9
#include <stdio.h>
10
#include "
diodefs.h
"
11
#include "
uflags.h
"
12
13
static
IFparm
DIOpTable
[] = {
/* parameters */
14
IOPU
(
"area"
,
DIO_AREA
,
IF_REAL
,
"Area factor"
),
15
IOPAU
(
"ic"
,
DIO_IC
,
IF_REAL
,
"Initial device voltage"
),
16
IOPU
(
"off"
,
DIO_OFF
,
IF_FLAG
,
"Initially off"
),
17
OP
(
"id"
,
DIO_CURRENT
,
IF_REAL
,
"Diode current"
),
18
OPR
(
"c"
,
DIO_CURRENT
,
IF_REAL
,
"Diode current"
),
19
OP
(
"vd"
,
DIO_VOLTAGE
,
IF_REAL
,
"Diode voltage"
),
20
OPR
(
"voltage"
,
DIO_VOLTAGE
,
IF_REAL
,
"Diode voltage"
),
21
OPU
(
"charge"
,
DIO_CHARGE
,
IF_REAL
,
"Diode capacitor charge"
),
22
OPU
(
"capcur"
,
DIO_CAPCUR
,
IF_REAL
,
"Diode capacitor current"
),
23
OP
(
"gd"
,
DIO_CONDUCT
,
IF_REAL
,
"Diode conductance"
),
24
OPU
(
"p"
,
DIO_POWER
,
IF_REAL
,
"Diode power"
),
25
IOPU
(
"temp"
,
DIO_TEMP
,
IF_REAL
,
"Instance temperature"
),
26
OP
(
"cd"
,
DIO_CAP
,
IF_REAL
,
"Diode capacitance"
)
27
};
28
29
static
IFparm
DIOmPTable
[] = {
/* model parameters */
30
IOP
(
"is"
,
DIO_MOD_IS
,
IF_REAL
,
"Saturation current"
),
31
IOP
(
"rs"
,
DIO_MOD_RS
,
IF_REAL
,
"Ohmic resistance"
),
32
IOP
(
"n"
,
DIO_MOD_N
,
IF_REAL
,
"Emission Coefficient"
),
33
IOPA
(
"tt"
,
DIO_MOD_TT
,
IF_REAL
,
"Transit Time"
),
34
IOPA
(
"cjo"
,
DIO_MOD_CJO
,
IF_REAL
,
"Junction capacitance"
),
35
IOPR
(
"cj0"
,
DIO_MOD_CJO
,
IF_REAL
,
"Junction capacitance"
),
36
IOP
(
"vj"
,
DIO_MOD_VJ
,
IF_REAL
,
"Junction potential"
),
37
IOP
(
"m"
,
DIO_MOD_M
,
IF_REAL
,
"Grading coefficient"
),
38
IOP
(
"eg"
,
DIO_MOD_EG
,
IF_REAL
,
"Activation energy"
),
39
IOP
(
"xti"
,
DIO_MOD_XTI
,
IF_REAL
,
"Saturation current temperature exp."
),
40
IOP
(
"fc"
,
DIO_MOD_FC
,
IF_REAL
,
"Forward bias junction fit parameter"
),
41
IOP
(
"bv"
,
DIO_MOD_BV
,
IF_REAL
,
"Reverse breakdown voltage"
),
42
IOP
(
"ibv"
,
DIO_MOD_IBV
,
IF_REAL
,
"Current at reverse breakdown voltage"
),
43
OPU
(
"cond"
,
DIO_MOD_COND
,
IF_REAL
,
"Ohmic conductance"
),
44
IP
(
"d"
,
DIO_MOD_D
,
IF_FLAG
,
"Diode model"
),
45
IOPU
(
"tnom"
,
DIO_MOD_TNOM
,
IF_REAL
,
"Parameter measurement temperature"
),
46
IP
(
"kf"
,
DIO_MOD_KF
,
IF_REAL
,
"flicker noise coefficient"
),
47
IP
(
"af"
,
DIO_MOD_AF
,
IF_REAL
,
"flicker noise exponent"
)
48
};
49
50
static
char
*
DIOnames
[] = {
51
"D+"
,
52
"D-"
53
};
54
55
static
char
*
DIOmodNames
[] = {
56
"d"
,
57
NULL
58
};
59
60
static
IFkeys
DIOkeys
[] = {
61
{
'd'
,
NUMELEMS
(
DIOnames
),
DIOnames
, 0, 0 },
62
};
63
64
65
static
int
DIOkSize
=
NUMELEMS
(DIOkeys);
66
static
int
DIOpTSize
=
NUMELEMS
(DIOpTable);
67
static
int
DIOmPTSize
=
NUMELEMS
(DIOmPTable);
68
static
int
DIOiSize
=
sizeof
(
DIOinstance
);
69
static
int
DIOmSize
=
sizeof
(
DIOmodel
);
70
71
72
SPICEdev
DIOinfo
= {
73
{
74
"Diode"
,
75
"Junction Diode model"
,
76
77
&
DIOkSize
,
78
DIOkeys
,
79
1,
80
DIOmodNames
,
81
DIOparse
,
82
83
&
DIOpTSize
,
84
DIOpTable
,
85
86
&
DIOmPTSize
,
87
DIOmPTable
,
88
},
89
90
DIOparam
,
91
DIOmParam
,
92
DIOload
,
93
DIOsetup
,
94
DIOsetup
,
95
DIOtemp
,
96
DIOtrunc
,
97
NULL
,
98
DIOacLoad
,
99
NULL
,
100
GENdestroy
,
101
GENmDelete
,
102
GENdelete
,
103
DIOgetic
,
104
DIOask
,
105
DIOmAsk
,
106
DIOpzLoad
,
107
DIOconvTest
,
108
DIOdisto
,
109
DIOnoise
,
110
111
&
DIOiSize
,
112
&
DIOmSize
113
};
diodefs.h
DIO_MOD_AF
#define DIO_MOD_AF
Definition:
diodefs.h:195
DIO_MOD_IBV
#define DIO_MOD_IBV
Definition:
diodefs.h:190
DIO_VOLTAGE
#define DIO_VOLTAGE
Definition:
diodefs.h:169
IOP
#define IOP(a, b, c, d)
Definition:
devdefs.h:120
DIO_MOD_TNOM
#define DIO_MOD_TNOM
Definition:
diodefs.h:193
DIO_IC
#define DIO_IC
Definition:
diodefs.h:166
DIOnames
static char * DIOnames[]
Definition:
dio.c:50
OPU
#define OPU(a, b, c, d)
Definition:
uflags.h:65
NUMELEMS
#define NUMELEMS(ARRAY)
Definition:
spice.h:157
DIO_MOD_VJ
#define DIO_MOD_VJ
Definition:
diodefs.h:184
DIO_MOD_RS
#define DIO_MOD_RS
Definition:
diodefs.h:180
IOPR
#define IOPR(a, b, c, d)
Definition:
uflags.h:57
DIOpTable
static IFparm DIOpTable[]
Definition:
dio.c:13
DIO_CHARGE
#define DIO_CHARGE
Definition:
diodefs.h:170
DIOpzLoad
int DIOpzLoad()
GENdestroy
void GENdestroy()
DIO_CAP
#define DIO_CAP
Definition:
diodefs.h:175
DIOconvTest
int DIOconvTest()
DIOnoise
int DIOnoise()
DIOgetic
int DIOgetic()
DIO_MOD_D
#define DIO_MOD_D
Definition:
diodefs.h:191
DIOsetup
int DIOsetup()
DIO_CURRENT
#define DIO_CURRENT
Definition:
diodefs.h:168
DIO_MOD_N
#define DIO_MOD_N
Definition:
diodefs.h:181
DIOkSize
static int DIOkSize
Definition:
dio.c:65
DIOmAsk
int DIOmAsk()
DIOiSize
static int DIOiSize
Definition:
dio.c:68
DIOinfo
SPICEdev DIOinfo
Definition:
dio.c:72
NULL
#define NULL
Definition:
spdefs.h:121
DIO_MOD_FC
#define DIO_MOD_FC
Definition:
diodefs.h:188
DIOdisto
int DIOdisto()
DIO_MOD_EG
#define DIO_MOD_EG
Definition:
diodefs.h:186
OPR
#define OPR(a, b, c, d)
Definition:
uflags.h:66
DIOtrunc
int DIOtrunc()
uflags.h
IOPA
#define IOPA(a, b, c, d)
Definition:
uflags.h:50
spice.h
DIO_MOD_BV
#define DIO_MOD_BV
Definition:
diodefs.h:189
DIO_TEMP
#define DIO_TEMP
Definition:
diodefs.h:174
sIFparm
Definition:
ifsim.h:54
sIFkeys
Definition:
ifsim.h:267
DIO_MOD_IS
#define DIO_MOD_IS
Definition:
diodefs.h:179
DIO_POWER
#define DIO_POWER
Definition:
diodefs.h:173
IF_REAL
#define IF_REAL
Definition:
ifsim.h:108
DIOmSize
static int DIOmSize
Definition:
dio.c:69
DIOinstance
struct sDIOinstance DIOinstance
IP
#define IP(a, b, c, d)
Definition:
devdefs.h:118
DIO_CAPCUR
#define DIO_CAPCUR
Definition:
diodefs.h:171
SPICEdev
Definition:
devdefs.h:43
DIO_MOD_M
#define DIO_MOD_M
Definition:
diodefs.h:185
IF_FLAG
#define IF_FLAG
Definition:
ifsim.h:106
DIOtemp
int DIOtemp()
DIOmPTSize
static int DIOmPTSize
Definition:
dio.c:67
DIOmParam
int DIOmParam()
GENmDelete
int GENmDelete()
DIOkeys
static IFkeys DIOkeys[]
Definition:
dio.c:60
DIO_CONDUCT
#define DIO_CONDUCT
Definition:
diodefs.h:172
DIO_MOD_CJO
#define DIO_MOD_CJO
Definition:
diodefs.h:183
GENdelete
int GENdelete()
DIO_MOD_COND
#define DIO_MOD_COND
Definition:
diodefs.h:192
DIOload
int DIOload()
DIOask
int DIOask()
DIOpTSize
static int DIOpTSize
Definition:
dio.c:66
DIO_AREA
#define DIO_AREA
Definition:
diodefs.h:165
DIO_OFF
#define DIO_OFF
Definition:
diodefs.h:167
IOPAU
#define IOPAU(a, b, c, d)
Definition:
uflags.h:51
DIO_MOD_KF
#define DIO_MOD_KF
Definition:
diodefs.h:194
DIO_MOD_TT
#define DIO_MOD_TT
Definition:
diodefs.h:182
DIOmPTable
static IFparm DIOmPTable[]
Definition:
dio.c:29
DIOacLoad
int DIOacLoad()
DIO_MOD_XTI
#define DIO_MOD_XTI
Definition:
diodefs.h:187
OP
#define OP(a, b, c, d)
Definition:
devdefs.h:119
IOPU
#define IOPU(a, b, c, d)
Definition:
uflags.h:48
DIOparse
void DIOparse()
DIOparam
int DIOparam()
DIOmodNames
static char * DIOmodNames[]
Definition:
dio.c:55
DIOmodel
struct sDIOmodel DIOmodel
src
lib
dev
dio
dio.c
Generated by
1.8.11