Jspice3
Main Page
Data Structures
Files
File List
Globals
sconfig.c
Go to the documentation of this file.
1
/**********
2
Copyright 1990 Regents of the University of California. All rights reserved.
3
**********/
4
5
#include "
spice.h
"
6
#define CONFIG
7
8
#include <stdio.h>
9
#include "
devdefs.h
"
10
#include "
cktext.h
"
11
12
#include "
jobdefs.h
"
13
#include "
acdefs.h
"
14
#include "
distodef.h
"
15
#include "
dcodefs.h
"
16
#include "
optdefs.h
"
17
#include "
noisedef.h
"
18
#include "
pzdefs.h
"
19
#include "
tfdefs.h
"
20
#include "
trandefs.h
"
21
#include "
dctdefs.h
"
22
23
#ifndef AN_dc
24
25
#ifdef AN_ac
26
#define AN_dc
27
#endif
28
#ifdef AN_pz
29
#define AN_dc
30
#endif
31
#ifdef AN_tran
32
#define AN_dc
33
#endif
34
#ifdef AN_noise
35
#define AN_dc
36
#endif
37
#ifdef AN_disto
38
#define AN_dc
39
#endif
40
#ifdef AN_sense
41
#define AN_dc
42
#endif
43
44
#endif
45
46
extern
SPICEanalysis
OPTinfo
;
47
extern
SPICEanalysis
ACinfo
;
48
extern
SPICEanalysis
DCTinfo
;
49
extern
SPICEanalysis
DCOinfo
;
50
extern
SPICEanalysis
TRANinfo
;
51
extern
SPICEanalysis
PZinfo
;
52
extern
SPICEanalysis
SENSinfo
;
53
extern
SPICEanalysis
TFinfo
;
54
extern
SPICEanalysis
DISTOinfo
;
55
extern
SPICEanalysis
NOISEinfo
;
56
57
SPICEanalysis
*
analInfo
[] = {
58
&
OPTinfo
,
59
#ifdef AN_ac
60
&
ACinfo
,
61
#endif
62
#ifdef AN_dc
63
&
DCTinfo
,
64
#endif
65
#ifdef AN_op
66
&
DCOinfo
,
67
#endif
68
#ifdef AN_tran
69
&
TRANinfo
,
70
#endif
71
#ifdef AN_pz
72
&
PZinfo
,
73
#endif
74
#ifdef AN_sense
75
&
SENSinfo
,
76
#endif
77
#ifdef AN_tf
78
&
TFinfo
,
79
#endif
80
#ifdef AN_disto
81
&
DISTOinfo
,
82
#endif
83
#ifdef AN_noise
84
&
NOISEinfo
,
85
#endif
86
};
87
88
int
ANALmaxnum
=
sizeof
(
analInfo
)/
sizeof
(
SPICEanalysis
*);
89
90
extern
SPICEdev
BJTinfo
;
91
extern
SPICEdev
B1info
;
92
extern
SPICEdev
B2info
;
93
extern
SPICEdev
CAPinfo
;
94
extern
SPICEdev
DIOinfo
;
95
extern
SPICEdev
INDinfo
;
96
extern
SPICEdev
JFETinfo
;
97
extern
SPICEdev
JJinfo
;
98
extern
SPICEdev
LTRAinfo
;
99
extern
SPICEdev
MESinfo
;
100
extern
SPICEdev
MOSinfo
;
101
extern
SPICEdev
MUTinfo
;
102
extern
SPICEdev
RESinfo
;
103
extern
SPICEdev
SRCinfo
;
104
extern
SPICEdev
SWinfo
;
105
extern
SPICEdev
TRAinfo
;
106
extern
SPICEdev
URCinfo
;
107
extern
SPICEdev
SFFTinfo
;
108
109
SPICEdev
*
DEVices
[] = {
110
111
#ifdef DEV_bjt
112
&
BJTinfo
,
113
#endif
114
#ifdef DEV_bsim1
115
&
B1info
,
116
#endif
117
#ifdef DEV_bsim2
118
&
B2info
,
119
#endif
120
#ifdef DEV_cap
121
&
CAPinfo
,
122
#endif
123
#ifdef DEV_dio
124
&
DIOinfo
,
125
#endif
126
#ifdef DEV_ind
127
&
INDinfo
,
128
&
MUTinfo
,
129
#endif
130
#ifdef DEV_jfet
131
&
JFETinfo
,
132
#endif
133
#ifdef DEV_jj
134
&
JJinfo
,
135
#endif
136
#ifdef DEV_ltra
137
&
LTRAinfo
,
138
#endif
139
#ifdef DEV_mes
140
&
MESinfo
,
141
#endif
142
#ifdef DEV_mos
143
&
MOSinfo
,
144
#endif
145
#ifdef DEV_res
146
&
RESinfo
,
147
#endif
148
#ifdef DEV_src
149
&
SRCinfo
,
150
#endif
151
#ifdef DEV_sw
152
&
SWinfo
,
153
#endif
154
#ifdef DEV_tra
155
&
TRAinfo
,
156
#endif
157
#ifdef DEV_urc
158
&
URCinfo
,
159
#endif
160
#ifdef DEV_sfft
161
&
SFFTinfo
,
162
#endif
163
};
164
165
/* my internal global constant for number of device types */
166
int
DEVmaxnum
=
sizeof
(
DEVices
)/
sizeof
(
SPICEdev
*);
167
168
static
char
*
specSigList
[] = {
169
"time"
170
};
171
172
static
IFparm
nodeParms
[] = {
173
IP
(
"nodeset"
,
PARM_NS
,
IF_REAL
,
"suggested initial voltage"
),
174
IP
(
"ic"
,
PARM_IC
,
IF_REAL
,
"initial voltage"
),
175
IP
(
"type"
,
PARM_NODETYPE
,
IF_INTEGER
,
"output type of equation"
)
176
};
177
178
IFsimulator
SIMinfo
= {
179
"jspice3"
,
/* name */
180
"jspice3 circuit level simulation program"
,
/* more about me */
181
Spice_Version
,
/* version */
182
183
CKTinit
,
/* newCircuit function */
184
CKTdestroy
,
/* deleteCircuit function */
185
186
CKTnewNode
,
/* newNode function */
187
CKTground
,
/* groundNode function */
188
CKTbindNode
,
/* bindNode function */
189
CKTfndNode
,
/* findNode function */
190
CKTinst2Node
,
/* instToNode function */
191
CKTsetNodPm
,
/* setNodeParm function */
192
CKTaskNodQst
,
/* askNodeQuest function */
193
CKTdltNod
,
/* deleteNode function */
194
195
CKTcrtElt
,
/* newInstance function */
196
CKTparam
,
/* setInstanceParm function */
197
CKTask
,
/* askInstanceQuest function */
198
CKTfndDev
,
/* findInstance funciton */
199
CKTdltInst
,
/* deleteInstance function */
200
201
CKTmodCrt
,
/* newModel function */
202
CKTmodParam
,
/* setModelParm function */
203
CKTmodAsk
,
/* askModelQuest function */
204
CKTfndMod
,
/* findModel function */
205
CKTdltMod
,
/* deleteModel function */
206
207
CKTnewTask
,
/* newTask function */
208
CKTnewAnal
,
/* newAnalysis function */
209
CKTsetAnalPm
,
/* setAnalysisParm function */
210
CKTaskAnalQ
,
/* askAnalysisQuest function */
211
CKTfndAnal
,
/* findAnalysis function */
212
CKTfndTask
,
/* findTask function */
213
CKTdelTask
,
/* deleteTask function */
214
215
CKTdoJob
,
/* doAnalyses function */
216
CKTtrouble
,
/* non-convergence message function */
217
218
sizeof
(
DEVices
)/
sizeof
(
SPICEdev
*),
219
(
IFdevice
**)DEVices,
220
221
sizeof
(analInfo)/
sizeof
(
SPICEanalysis
*),
222
(
IFanalysis
**)
analInfo
,
223
224
sizeof
(
nodeParms
)/
sizeof
(
IFparm
),
225
nodeParms
,
226
227
sizeof
(
specSigList
)/
sizeof
(
char
*),
228
specSigList
,
229
230
};
CKTground
int CKTground()
DISTOinfo
SPICEanalysis DISTOinfo
Definition:
distsetp.c:74
dctdefs.h
distodef.h
CKTdelTask
int CKTdelTask()
CKTmodCrt
int CKTmodCrt()
CKTinst2Node
int CKTinst2Node()
B2info
SPICEdev B2info
Definition:
b2.c:326
DCOinfo
SPICEanalysis DCOinfo
Definition:
dcosetp.c:29
PZinfo
SPICEanalysis PZinfo
Definition:
pzsetp.c:92
NOISEinfo
SPICEanalysis NOISEinfo
Definition:
noisetp.c:76
URCinfo
SPICEdev URCinfo
Definition:
urc.c:55
CKTdltInst
int CKTdltInst()
sIFdevice
Definition:
ifsim.h:292
ACinfo
SPICEanalysis ACinfo
Definition:
acsetp.c:114
DEVices
SPICEdev * DEVices[]
Definition:
sconfig.c:109
OPTinfo
SPICEanalysis OPTinfo
Definition:
optsetp.c:197
MOSinfo
SPICEdev MOSinfo
Definition:
mos.c:189
TRANinfo
SPICEanalysis TRANinfo
Definition:
transetp.c:76
B1info
SPICEdev B1info
Definition:
b1.c:214
CKTinit
int CKTinit()
noisedef.h
CKTaskAnalQ
int CKTaskAnalQ()
CKTdltNod
int CKTdltNod()
specSigList
static char * specSigList[]
Definition:
sconfig.c:168
DIOinfo
SPICEdev DIOinfo
Definition:
dio.c:72
CKTmodParam
int CKTmodParam()
SWinfo
SPICEdev SWinfo
Definition:
sw.c:68
jobdefs.h
pzdefs.h
sIFsimulator
Definition:
ifsim.h:356
CKTsetNodPm
int CKTsetNodPm()
DCTinfo
SPICEanalysis DCTinfo
Definition:
dctsetp.c:96
CKTfndNode
int CKTfndNode()
CKTnewNode
int CKTnewNode()
optdefs.h
analInfo
SPICEanalysis * analInfo[]
Definition:
sconfig.c:57
CKTsetAnalPm
int CKTsetAnalPm()
PARM_NODETYPE
#define PARM_NODETYPE
Definition:
cktdefs.h:51
ANALmaxnum
int ANALmaxnum
Definition:
sconfig.c:88
CKTdltMod
int CKTdltMod()
CKTcrtElt
int CKTcrtElt()
TRAinfo
SPICEdev TRAinfo
Definition:
tra.c:60
LTRAinfo
SPICEdev LTRAinfo
Definition:
ltra.c:98
nodeParms
static IFparm nodeParms[]
Definition:
sconfig.c:172
CKTnewAnal
int CKTnewAnal()
PARM_IC
#define PARM_IC
Definition:
cktdefs.h:50
SFFTinfo
SPICEdev SFFTinfo
IF_INTEGER
#define IF_INTEGER
Definition:
ifsim.h:107
CKTdoJob
int CKTdoJob()
CKTfndTask
int CKTfndTask()
MESinfo
SPICEdev MESinfo
Definition:
mes.c:95
CKTask
int CKTask()
CKTnewTask
int CKTnewTask()
spice.h
Spice_Version
char Spice_Version[]
CKTdestroy
int CKTdestroy()
PARM_NS
#define PARM_NS
Definition:
cktdefs.h:49
INDinfo
SPICEdev INDinfo
Definition:
ind.c:44
CKTfndMod
int CKTfndMod()
sIFparm
Definition:
ifsim.h:54
SIMinfo
IFsimulator SIMinfo
Definition:
sconfig.c:178
IF_REAL
#define IF_REAL
Definition:
ifsim.h:108
IP
#define IP(a, b, c, d)
Definition:
devdefs.h:118
cktext.h
SPICEdev
Definition:
devdefs.h:43
trandefs.h
SRCinfo
SPICEdev SRCinfo
Definition:
src.c:73
tfdefs.h
CKTtrouble
char * CKTtrouble()
acdefs.h
CKTfndDev
int CKTfndDev()
CKTfndAnal
int CKTfndAnal()
CKTaskNodQst
int CKTaskNodQst()
CKTparam
int CKTparam()
RESinfo
SPICEdev RESinfo
Definition:
res.c:54
SPICEanalysis
Definition:
jobdefs.h:11
MUTinfo
SPICEdev MUTinfo
BJTinfo
SPICEdev BJTinfo
Definition:
bjt.c:176
SENSinfo
SPICEanalysis SENSinfo
Definition:
senssetp.c:112
dcodefs.h
sIFanalysis
Definition:
ifsim.h:335
CKTmodAsk
int CKTmodAsk()
JJinfo
SPICEdev JJinfo
Definition:
jj.c:64
CAPinfo
SPICEdev CAPinfo
Definition:
cap.c:53
TFinfo
SPICEanalysis TFinfo
Definition:
tfsetp.c:90
DEVmaxnum
int DEVmaxnum
Definition:
sconfig.c:166
devdefs.h
JFETinfo
SPICEdev JFETinfo
Definition:
jfet.c:99
CKTbindNode
int CKTbindNode()
src
bin
sconfig.c
Generated by
1.8.11