Jspice3
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;
56 
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 
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 
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 };
int CKTground()
SPICEanalysis DISTOinfo
Definition: distsetp.c:74
int CKTdelTask()
int CKTmodCrt()
int CKTinst2Node()
SPICEdev B2info
Definition: b2.c:326
SPICEanalysis DCOinfo
Definition: dcosetp.c:29
SPICEanalysis PZinfo
Definition: pzsetp.c:92
SPICEanalysis NOISEinfo
Definition: noisetp.c:76
SPICEdev URCinfo
Definition: urc.c:55
int CKTdltInst()
SPICEanalysis ACinfo
Definition: acsetp.c:114
SPICEdev * DEVices[]
Definition: sconfig.c:109
SPICEanalysis OPTinfo
Definition: optsetp.c:197
SPICEdev MOSinfo
Definition: mos.c:189
SPICEanalysis TRANinfo
Definition: transetp.c:76
SPICEdev B1info
Definition: b1.c:214
int CKTinit()
int CKTaskAnalQ()
int CKTdltNod()
static char * specSigList[]
Definition: sconfig.c:168
SPICEdev DIOinfo
Definition: dio.c:72
int CKTmodParam()
SPICEdev SWinfo
Definition: sw.c:68
int CKTsetNodPm()
SPICEanalysis DCTinfo
Definition: dctsetp.c:96
int CKTfndNode()
int CKTnewNode()
SPICEanalysis * analInfo[]
Definition: sconfig.c:57
int CKTsetAnalPm()
#define PARM_NODETYPE
Definition: cktdefs.h:51
int ANALmaxnum
Definition: sconfig.c:88
int CKTdltMod()
int CKTcrtElt()
SPICEdev TRAinfo
Definition: tra.c:60
SPICEdev LTRAinfo
Definition: ltra.c:98
static IFparm nodeParms[]
Definition: sconfig.c:172
int CKTnewAnal()
#define PARM_IC
Definition: cktdefs.h:50
SPICEdev SFFTinfo
#define IF_INTEGER
Definition: ifsim.h:107
int CKTdoJob()
int CKTfndTask()
SPICEdev MESinfo
Definition: mes.c:95
int CKTask()
int CKTnewTask()
char Spice_Version[]
int CKTdestroy()
#define PARM_NS
Definition: cktdefs.h:49
SPICEdev INDinfo
Definition: ind.c:44
int CKTfndMod()
Definition: ifsim.h:54
IFsimulator SIMinfo
Definition: sconfig.c:178
#define IF_REAL
Definition: ifsim.h:108
#define IP(a, b, c, d)
Definition: devdefs.h:118
SPICEdev SRCinfo
Definition: src.c:73
char * CKTtrouble()
int CKTfndDev()
int CKTfndAnal()
int CKTaskNodQst()
int CKTparam()
SPICEdev RESinfo
Definition: res.c:54
SPICEdev MUTinfo
SPICEdev BJTinfo
Definition: bjt.c:176
SPICEanalysis SENSinfo
Definition: senssetp.c:112
int CKTmodAsk()
SPICEdev JJinfo
Definition: jj.c:64
SPICEdev CAPinfo
Definition: cap.c:53
SPICEanalysis TFinfo
Definition: tfsetp.c:90
int DEVmaxnum
Definition: sconfig.c:166
SPICEdev JFETinfo
Definition: jfet.c:99
int CKTbindNode()