Merge branch 'pre-master' of ssh://git.code.sf.net/p/ngspice/ngspice into beta_jdm
This commit is contained in:
commit
8d903d8e30
|
|
@ -37,6 +37,10 @@ Makefile.in
|
|||
/missing
|
||||
/ylwrap
|
||||
/ar-lib
|
||||
/ngspice.pc
|
||||
|
||||
/src/frontend/parse-bison.*
|
||||
/src/spicelib/parser/inpptree-parser.*
|
||||
|
||||
/src/include/ngspice/config.h.in
|
||||
/src/include/ngspice/config.h
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ EXTRA_DIST = FAQ autogen.sh Stuarts_Poly_Notes \
|
|||
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 ar-lib compile config.guess \
|
||||
src/include/ngspice/config.h.in config.sub configure install-sh \
|
||||
missing mkinstalldirs stamp-h.in ltconfig \
|
||||
ltmain.sh depcomp ylwrap
|
||||
ltmain.sh depcomp ylwrap ngspice.pc
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@
|
|||
# Add (optionally) --enable-relpath to avoid absolute paths when searching for code models.
|
||||
# It might be necessary to uncomment and run ./autogen.sh .
|
||||
|
||||
SECONDS=0
|
||||
|
||||
if test "$1" = "32"; then
|
||||
if [ ! -d "release32" ]; then
|
||||
mkdir release32
|
||||
|
|
@ -75,5 +77,8 @@ make install 2>&1 | tee make_install.log
|
|||
exitcode=${PIPESTATUS[0]}
|
||||
if [ $exitcode -ne 0 ]; then echo "make install failed"; exit 1 ; fi
|
||||
|
||||
ELAPSED="Elapsed compile time: $(($SECONDS / 3600))hrs $((($SECONDS / 60) % 60))min $(($SECONDS % 60))sec"
|
||||
echo
|
||||
echo $ELAPSED
|
||||
echo "success"
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -124,16 +124,17 @@ if $?batchmode
|
|||
rusage
|
||||
quit
|
||||
else
|
||||
set nolegend
|
||||
if $?sharedmode or $?win_console
|
||||
gnuplot xnp_pl1 {$plot_out}.vout0 $ just plot the tran output with nominal parameters
|
||||
gnuplot xnp_pl1 {$plot_out}.vout0 ylabel vout0 $ just plot the tran output with nominal parameters
|
||||
else
|
||||
plot {$plot_out}.vout0 $ just plot the tran output with nominal parameters
|
||||
plot {$plot_out}.vout0 ylabel vout0 $ just plot the tran output with nominal parameters
|
||||
end
|
||||
setplot $plot_fft
|
||||
if $?sharedmode or $?win_console
|
||||
gnuplot xnp_pl2 db(mag(ally)) xlimit 0 1G ylimit -80 10
|
||||
gnuplot xnp_pl2 db(mag(ally)) ylabel 'output voltage versus frequency' xlimit 0 1G ylimit -80 10
|
||||
else
|
||||
plot db(mag(ally)) xlimit 0 1G ylimit -80 10
|
||||
plot db(mag(ally)) xlimit 0 1G ylimit -80 10 ylabel 'output voltage versus frequency'
|
||||
end
|
||||
*
|
||||
* create a histogram from vector maxffts
|
||||
|
|
@ -166,9 +167,10 @@ else
|
|||
* plot the histogram
|
||||
let count = yvec - 1 $ subtract 1 because we started with unitvec containing ones
|
||||
if $?sharedmode or $?win_console
|
||||
gnuplot np_pl3 count vs osc_frequ combplot
|
||||
gnuplot np_pl3 count vs osc_frequ combplot ylabel 'counts per bin'
|
||||
else
|
||||
plot count vs osc_frequ combplot
|
||||
set xbrushwidth=5
|
||||
plot count vs osc_frequ combplot ylabel 'counts per bin'
|
||||
end
|
||||
* calculate jitter
|
||||
let diff40 = (vecmax(halfffts) - vecmin(halfffts))*1e-6
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
set ngbehavior=psa
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
*R24 & R25 are optional output offset trimming
|
||||
*
|
||||
VTamb tamb 0 25
|
||||
MQ1 +V N010 N012 tn tcn IRFP240 tnodeout
|
||||
MQ1 +V N010 N012 tn tcn IRFP240 thermal
|
||||
X1 tcn tamb case-ambient
|
||||
MQ2 -V N020 N017 tp tcp IRFP9240 tnodeout
|
||||
MQ2 -V N020 N017 tp tcp IRFP9240 thermal
|
||||
X2 tcp tamb case-ambient
|
||||
R1 OUT N017 .33
|
||||
R2 N012 OUT .33
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
VDMOS self heating test
|
||||
M1 D G 0 tj tc IRFP240 tnodeout
|
||||
M1 D G 0 tj tc IRFP240 thermal
|
||||
rthk tc 0 0.05
|
||||
VG G 0 5V Pulse 0 10 0 1m 1m 100m 200m
|
||||
*RD D D1 4
|
||||
|
|
|
|||
|
|
@ -260,6 +260,7 @@ endif !NO_HELP
|
|||
ngsconvert_SOURCES = ngsconvert.c
|
||||
|
||||
ngsconvert_LDADD = \
|
||||
frontend/com_history.lo \
|
||||
frontend/libfte.la \
|
||||
frontend/parser/libparser.la \
|
||||
maths/misc/libmathmisc.la \
|
||||
|
|
@ -271,6 +272,7 @@ ngsconvert_LDADD = \
|
|||
ngproc2mod_SOURCES = ngproc2mod.c
|
||||
|
||||
ngproc2mod_LDADD = \
|
||||
frontend/libfte.la \
|
||||
frontend/parser/libparser.la \
|
||||
spicelib/parser/libinp.la \
|
||||
misc/libmisc.la
|
||||
|
|
@ -281,6 +283,8 @@ ngproc2mod_LDADD = \
|
|||
ngmultidec_SOURCES = ngmultidec.c
|
||||
|
||||
ngmultidec_LDADD = \
|
||||
frontend/libfte.la \
|
||||
frontend/parser/libparser.la \
|
||||
maths/sparse/libsparse.la \
|
||||
misc/libmisc.la
|
||||
|
||||
|
|
@ -289,6 +293,11 @@ ngmultidec_LDADD = \
|
|||
|
||||
ngmakeidx_SOURCES = makeidx.c
|
||||
|
||||
ngmakeidx_LDADD = \
|
||||
frontend/libfte.la \
|
||||
frontend/parser/libparser.la \
|
||||
misc/libmisc.la
|
||||
|
||||
## create index for online help:
|
||||
|
||||
ngspice.idx: ngmakeidx$(EXEEXT) $(srcdir)/ngspice.txt
|
||||
|
|
|
|||
|
|
@ -1095,6 +1095,7 @@ if_set_binned_model(CKTcircuit *ckt, char *devname, char *param, struct dvec *va
|
|||
return;
|
||||
}
|
||||
w = v->va_V.vV_real;
|
||||
free_struct_variable(v);
|
||||
|
||||
v = if_getparam(ckt, &devname, "l", 0, 0);
|
||||
if (!v) {
|
||||
|
|
@ -1102,6 +1103,7 @@ if_set_binned_model(CKTcircuit *ckt, char *devname, char *param, struct dvec *va
|
|||
return;
|
||||
}
|
||||
l = v->va_V.vV_real;
|
||||
free_struct_variable(v);
|
||||
|
||||
if (param[0] == 'w')
|
||||
w = *val->v_realdata; /* overwrite the width with the alter param */
|
||||
|
|
|
|||
|
|
@ -4088,7 +4088,7 @@ static int get_number_terminals(char *c)
|
|||
char *inst = gettok_instance(&c);
|
||||
strncpy(nam_buf, inst, sizeof(nam_buf) - 1);
|
||||
txfree(inst);
|
||||
if (strstr(nam_buf, "off") || strchr(nam_buf, '=') || strstr(nam_buf, "tnodeout"))
|
||||
if (strstr(nam_buf, "off") || strchr(nam_buf, '=') || strstr(nam_buf, "tnodeout") || strstr(nam_buf, "thermal"))
|
||||
break;
|
||||
i++;
|
||||
}
|
||||
|
|
@ -6964,16 +6964,16 @@ static int inp_vdmos_model(struct card *deck)
|
|||
card->line = new_line;
|
||||
wl_free(wlb);
|
||||
}
|
||||
/* we have a VDMOS instance line with 'tnodeout' and thus need exactly 5 nodes
|
||||
/* we have a VDMOS instance line with 'thermal' flag and thus need exactly 5 nodes
|
||||
*/
|
||||
else if (strstr(curr_line, "tnodeout")) {
|
||||
else if (curr_line[0] == 'm' && strstr(curr_line, "thermal")) {
|
||||
for (i = 0; i < 7; i++)
|
||||
curr_line = nexttok(curr_line);
|
||||
if (!ciprefix("tnodeout", curr_line)) {
|
||||
if (!ciprefix("thermal", curr_line)) {
|
||||
fprintf(cp_err,
|
||||
"Error: We need exactly 5 nodes\n"
|
||||
" drain, gate, source, tjunction, tcase\n"
|
||||
" in VDMOS instance line\n"
|
||||
" in VDMOS instance line with thermal model\n"
|
||||
" %s\n", card->line);
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ static wordlist_l *brac1(size_t offset_ocurl1, const char *p_str_cur);
|
|||
static wordlist_l *brac2(const char *string,
|
||||
size_t *p_n_char_processed);
|
||||
static wordlist *bracexpand(const wordlist *w_exp);
|
||||
static void merge_home_with_rest(wordlist *wl_node,
|
||||
static inline void merge_home_with_rest(wordlist *wl_node,
|
||||
size_t n_char_home, const char *sz_home, size_t n_char_skip);
|
||||
static inline void strip_1st_char(wordlist *wl_node);
|
||||
static void tilde_expand_word(wordlist *wl_node);
|
||||
|
|
|
|||
|
|
@ -354,7 +354,7 @@ bool plotit(wordlist *wl, const char *hcopy, const char *devname)
|
|||
}
|
||||
if (nylabel) {
|
||||
rc_ds |= ds_cat_printf(&ds_cline, " ylabel '%s'", nylabel);
|
||||
tfree(nxlabel);
|
||||
tfree(nylabel);
|
||||
}
|
||||
if (ntitle) {
|
||||
rc_ds |= ds_cat_printf(&ds_cline, " title '%s'", ntitle);
|
||||
|
|
@ -1146,6 +1146,8 @@ quit:
|
|||
ds_free(&ds_cline); /* free dstring resources, if any */
|
||||
free_pnode(names);
|
||||
FREE(title);
|
||||
FREE(xlabel);
|
||||
FREE(ylabel);
|
||||
|
||||
quit1:
|
||||
/* Free any vectors left behing while parsing the plot arguments. These
|
||||
|
|
|
|||
|
|
@ -27,6 +27,10 @@ Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group
|
|||
|
||||
#include "ngspice/inpdefs.h"
|
||||
|
||||
#if defined(XSPICE) && defined(SIMULATOR)
|
||||
#include "ngspice/evtproto.h"
|
||||
#endif
|
||||
|
||||
extern void line_free_x(struct card *deck, bool recurse);
|
||||
extern INPmodel *modtab;
|
||||
|
||||
|
|
@ -237,6 +241,11 @@ com_remcirc(wordlist *wl)
|
|||
/* The next lines stem from com_rset */
|
||||
INPkillMods();
|
||||
|
||||
#if defined(XSPICE) && defined(SIMULATOR)
|
||||
/* remove event queues, if XSPICE and not nutmeg */
|
||||
EVTunsetup(ft_curckt->ci_ckt);
|
||||
#endif
|
||||
|
||||
if_cktfree(ft_curckt->ci_ckt, ft_curckt->ci_symtab);
|
||||
for (v = ft_curckt->ci_vars; v; v = next) {
|
||||
next = v->va_next;
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ void EVTtermInsert(
|
|||
char **err_msg);
|
||||
|
||||
int EVTsetup(CKTcircuit *ckt);
|
||||
int EVTunsetup(CKTcircuit* ckt);
|
||||
|
||||
int EVTdest(Evt_Ckt_Data_t *evt);
|
||||
|
||||
|
|
|
|||
|
|
@ -329,3 +329,6 @@ retry:
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
controlled_exit(int status) { exit(status); }
|
||||
|
|
|
|||
|
|
@ -436,7 +436,7 @@ void cp_ccon(bool o) { NG_IGNORE(o); }
|
|||
char*if_errstring(int c) { NG_IGNORE(c); return copy("error"); }
|
||||
void out_printf(char *fmt, ...) { NG_IGNORE(fmt); }
|
||||
void out_send(char *string) { NG_IGNORE(string); }
|
||||
struct variable * cp_enqvar(char *word, int *tbfreed) { NG_IGNORE(word); NG_IGNORE(*tbfreed); return (NULL); }
|
||||
struct variable * cp_enqvar(const char *word, int *tbfreed) { NG_IGNORE(word); NG_IGNORE(*tbfreed); return (NULL); }
|
||||
struct dvec *vec_get(const char *word) { NG_IGNORE(word); return (NULL); }
|
||||
void cp_ccom(wordlist *w, char *b, bool e) {
|
||||
NG_IGNORE(e);
|
||||
|
|
@ -445,6 +445,7 @@ void cp_ccom(wordlist *w, char *b, bool e) {
|
|||
int cp_usrset(struct variable *v, bool i) {
|
||||
NG_IGNORE(i);
|
||||
NG_IGNORE(v); return(US_OK); }
|
||||
wordlist * cp_doalias(wordlist *wlist) {NG_IGNORE(wlist); return NULL;}
|
||||
|
||||
int disptype;
|
||||
|
||||
|
|
|
|||
|
|
@ -275,7 +275,10 @@ DCtran(CKTcircuit *ckt,
|
|||
fflush(stdout);
|
||||
}
|
||||
|
||||
if(converged != 0) return(converged);
|
||||
if (converged != 0) {
|
||||
SPfrontEnd->OUTendPlot(job->TRANplot);
|
||||
return(converged);
|
||||
}
|
||||
#ifdef XSPICE
|
||||
/* gtri - add - wbk - 12/19/90 - Add IPC stuff */
|
||||
|
||||
|
|
|
|||
|
|
@ -175,10 +175,13 @@ IFparm BJTmPTable[] = { /* model parameters */
|
|||
IOP("tnr1", BJT_MOD_TNR1, IF_REAL, "NR 1. temperature coefficient"),
|
||||
IOP("tnr2", BJT_MOD_TNR2, IF_REAL, "NR 2. temperature coefficient"),
|
||||
IOP("trb1", BJT_MOD_TRB1, IF_REAL, "RB 1. temperature coefficient"),
|
||||
IOPR("trb", BJT_MOD_TRB1, IF_REAL, "RB 1. temperature coefficient"),
|
||||
IOP("trb2", BJT_MOD_TRB2, IF_REAL, "RB 2. temperature coefficient"),
|
||||
IOP("trc1", BJT_MOD_TRC1, IF_REAL, "RC 1. temperature coefficient"),
|
||||
IOPR("trc", BJT_MOD_TRC1, IF_REAL, "RC 1. temperature coefficient"),
|
||||
IOP("trc2", BJT_MOD_TRC2, IF_REAL, "RC 2. temperature coefficient"),
|
||||
IOP("tre1", BJT_MOD_TRE1, IF_REAL, "RE 1. temperature coefficient"),
|
||||
IOPR("tre", BJT_MOD_TRE1, IF_REAL, "RE 1. temperature coefficient"),
|
||||
IOP("tre2", BJT_MOD_TRE2, IF_REAL, "RE 2. temperature coefficient"),
|
||||
IOP("trm1", BJT_MOD_TRM1, IF_REAL, "RBM 1. temperature coefficient"),
|
||||
IOP("trm2", BJT_MOD_TRM2, IF_REAL, "RBM 2. temperature coefficient"),
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ IFparm VDMOSpTable[] = { /* parameters */
|
|||
IOPU("dtemp", VDMOS_DTEMP, IF_REAL, "Instance temperature difference"),
|
||||
IP( "ic", VDMOS_IC, IF_REALVEC, "Vector of D-S, G-S voltages"),
|
||||
|
||||
IOP("tnodeout", VDMOS_TNODEOUT, IF_FLAG, "Thermal model switch on/off"),
|
||||
IOP("thermal", VDMOS_THERMAL, IF_FLAG, "Thermal model switch on/off"),
|
||||
|
||||
OP( "id", VDMOS_CD, IF_REAL, "Drain current"),
|
||||
OP( "is", VDMOS_CS, IF_REAL, "Source current"),
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ VDMOSacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for(here = VDMOSinstances(model); here!= NULL;
|
||||
here = VDMOSnextInstance(here)) {
|
||||
|
||||
selfheat = (here->VDMOStnodeoutGiven) && (model->VDMOSrthjcGiven);
|
||||
selfheat = (here->VDMOSthermalGiven) && (model->VDMOSrthjcGiven);
|
||||
if (here->VDMOSmode < 0) {
|
||||
xnrm=0;
|
||||
xrev=1;
|
||||
|
|
|
|||
|
|
@ -50,8 +50,8 @@ VDMOSask(CKTcircuit *ckt, GENinstance *inst, int which, IFvalue *value,
|
|||
case VDMOS_OFF:
|
||||
value->iValue = here->VDMOSoff;
|
||||
return(OK);
|
||||
case VDMOS_TNODEOUT:
|
||||
value->iValue = here->VDMOStnodeout;
|
||||
case VDMOS_THERMAL:
|
||||
value->iValue = here->VDMOSthermal;
|
||||
return(OK);
|
||||
case VDMOS_IC_VDS:
|
||||
value->rValue = here->VDMOSicVDS;
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ typedef struct sVDMOSinstance {
|
|||
double VDMOSdsConductance; /*conductance of drain to source:set in setup*/
|
||||
double VDMOStemp; /* operating temperature of this instance */
|
||||
double VDMOSdtemp; /* operating temperature of the instance relative to circuit temperature*/
|
||||
int VDMOStnodeout; /* flag indicate self heating on */
|
||||
int VDMOSthermal; /* flag indicate self heating on */
|
||||
|
||||
double VDMOStTransconductance; /* temperature corrected transconductance*/
|
||||
double VDMOStPhi; /* temperature corrected Phi */
|
||||
|
|
@ -157,7 +157,7 @@ typedef struct sVDMOSinstance {
|
|||
unsigned VDMOSsNodePrimeSet :1;
|
||||
unsigned VDMOSicVDSGiven :1;
|
||||
unsigned VDMOSicVGSGiven :1;
|
||||
unsigned VDMOStnodeoutGiven : 1; /* flag indicate self heating on */
|
||||
unsigned VDMOSthermalGiven : 1; /* flag indicate self heating on */
|
||||
unsigned VDMOSvonGiven : 1;
|
||||
unsigned VDMOSvdsatGiven :1;
|
||||
unsigned VDMOSmodeGiven :1;
|
||||
|
|
@ -440,7 +440,7 @@ enum {
|
|||
VDMOS_TEMP,
|
||||
VDMOS_M,
|
||||
VDMOS_DTEMP,
|
||||
VDMOS_TNODEOUT,
|
||||
VDMOS_THERMAL,
|
||||
};
|
||||
|
||||
/* model parameters */
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
for (here = VDMOSinstances(model); here != NULL;
|
||||
here = VDMOSnextInstance(here)) {
|
||||
|
||||
selfheat = (here->VDMOStnodeoutGiven) && (model->VDMOSrthjcGiven);
|
||||
selfheat = (here->VDMOSthermalGiven) && (model->VDMOSrthjcGiven);
|
||||
if (selfheat)
|
||||
Check_mos = 1;
|
||||
else
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ VDMOSnoise (int mode, int operation, GENmodel *genmodel, CKTcircuit *ckt,
|
|||
switch (mode) {
|
||||
|
||||
case N_DENS:
|
||||
if ((inst->VDMOStnodeoutGiven) && (model->VDMOSrthjcGiven))
|
||||
if ((inst->VDMOSthermalGiven) && (model->VDMOSrthjcGiven))
|
||||
tempRatioSH = inst->VDMOSTempSH / ckt->CKTtemp;
|
||||
else
|
||||
tempRatioSH = 1.0;
|
||||
|
|
|
|||
|
|
@ -61,9 +61,9 @@ VDMOSparam(int param, IFvalue *value, GENinstance *inst, IFvalue *select)
|
|||
here->VDMOSicVGS = value->rValue;
|
||||
here->VDMOSicVGSGiven = TRUE;
|
||||
break;
|
||||
case VDMOS_TNODEOUT:
|
||||
here->VDMOStnodeout = (value->iValue != 0);
|
||||
here->VDMOStnodeoutGiven = TRUE;
|
||||
case VDMOS_THERMAL:
|
||||
here->VDMOSthermal = (value->iValue != 0);
|
||||
here->VDMOSthermalGiven = TRUE;
|
||||
break;
|
||||
case VDMOS_IC:
|
||||
switch(value->v.numValue){
|
||||
|
|
|
|||
|
|
@ -342,7 +342,7 @@ VDMOSsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt,
|
|||
here->VDIOposPrimeNode = here->VDMOSsNode;
|
||||
}
|
||||
|
||||
if ((here->VDMOStnodeoutGiven) && (model->VDMOSrthjcGiven)) {
|
||||
if ((here->VDMOSthermalGiven) && (model->VDMOSrthjcGiven)) {
|
||||
if (here->VDMOStempNode == -1) {
|
||||
error = CKTmkVolt(ckt,&tmp,here->VDMOSname,"Tj");
|
||||
if (error) return(error);
|
||||
|
|
@ -374,7 +374,7 @@ do { if((here->ptr = SMPmakeElt(matrix, here->first, here->second)) == NULL){\
|
|||
return(E_NOMEM);\
|
||||
} } while(0)
|
||||
|
||||
if ((here->VDMOStnodeoutGiven) && (model->VDMOSrthjcGiven)) {
|
||||
if ((here->VDMOSthermalGiven) && (model->VDMOSrthjcGiven)) {
|
||||
TSTALLOC(VDMOSTemptempPtr, VDMOStempNode, VDMOStempNode);
|
||||
TSTALLOC(VDMOSTempdpPtr, VDMOStempNode, VDMOSdNodePrime);
|
||||
TSTALLOC(VDMOSTempspPtr, VDMOStempNode, VDMOSsNodePrime);
|
||||
|
|
@ -458,7 +458,7 @@ VDMOSunsetup(GENmodel *inModel, CKTcircuit *ckt)
|
|||
CKTdltNNum(ckt, here->VDIOposPrimeNode);
|
||||
here->VDIOposPrimeNode = 0;
|
||||
|
||||
if ((here->VDMOStnodeoutGiven) && (model->VDMOSrthjcGiven)) {
|
||||
if ((here->VDMOSthermalGiven) && (model->VDMOSrthjcGiven)) {
|
||||
if (here->VDMOStNodePrime > 0)
|
||||
CKTdltNNum(ckt, here->VDMOStNodePrime);
|
||||
here->VDMOStNodePrime = 0;
|
||||
|
|
|
|||
|
|
@ -135,6 +135,29 @@ int EVTsetup(
|
|||
}
|
||||
|
||||
|
||||
int EVTunsetup(
|
||||
CKTcircuit* ckt) /* The circuit structure */
|
||||
{
|
||||
int err;
|
||||
|
||||
/* Exit immediately if no event-driven instances in circuit */
|
||||
if (ckt->evt->counts.num_insts == 0)
|
||||
return(OK);
|
||||
|
||||
/* Clear the inst, node, and output queues, and initialize the to_call */
|
||||
/* elements in the instance queue to call all event-driven instances */
|
||||
err = EVTsetup_queues(ckt);
|
||||
if (err)
|
||||
return(err);
|
||||
|
||||
/* Initialize additional event data */
|
||||
g_mif_info.circuit.evt_step = 0.0;
|
||||
|
||||
/* Return OK */
|
||||
return(OK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -93,8 +93,10 @@ cm-deps := \
|
|||
cm-descr := \
|
||||
$(cm)/cmextrn.h \
|
||||
$(cm)/cminfo.h \
|
||||
$(cm)/cminfo2.h \
|
||||
$(cm)/udnextrn.h \
|
||||
$(cm)/udninfo.h \
|
||||
$(cm)/udninfo2.h \
|
||||
$(cm)/objects.inc
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@
|
|||
|
||||
/cmextrn.h
|
||||
/cminfo.h
|
||||
/cminfo2.h
|
||||
/dlmain.c
|
||||
/objects.inc
|
||||
/udnextrn.h
|
||||
/udninfo.h
|
||||
/udninfo2.h
|
||||
|
||||
/*/*.c
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@
|
|||
|
||||
/cmextrn.h
|
||||
/cminfo.h
|
||||
/cminfo2.h
|
||||
/dlmain.c
|
||||
/objects.inc
|
||||
/udnextrn.h
|
||||
/udninfo.h
|
||||
/udninfo2.h
|
||||
|
||||
/*/*.c
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@
|
|||
|
||||
/cmextrn.h
|
||||
/cminfo.h
|
||||
/cminfo2.h
|
||||
/dlmain.c
|
||||
/objects.inc
|
||||
/udnextrn.h
|
||||
/udninfo.h
|
||||
/udninfo2.h
|
||||
|
||||
/*/*.c
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
/table.cm
|
||||
|
||||
/cmextrn.h
|
||||
/cminfo.h
|
||||
/cminfo2.h
|
||||
/objects.inc
|
||||
/udnextrn.h
|
||||
/udninfo.h
|
||||
/udninfo2.h
|
||||
|
||||
/*/*.c
|
||||
|
|
@ -2,10 +2,12 @@
|
|||
|
||||
/cmextrn.h
|
||||
/cminfo.h
|
||||
/cminfo2.h
|
||||
/dlmain.c
|
||||
/objects.inc
|
||||
/udnextrn.h
|
||||
/udninfo.h
|
||||
/udninfo2.h
|
||||
|
||||
/*/*.c
|
||||
|
||||
|
|
|
|||
|
|
@ -2,10 +2,12 @@
|
|||
|
||||
/cmextrn.h
|
||||
/cminfo.h
|
||||
/cminfo2.h
|
||||
/dlmain.c
|
||||
/objects.inc
|
||||
/udnextrn.h
|
||||
/udninfo.h
|
||||
/udninfo2.h
|
||||
|
||||
/*/*.c
|
||||
|
||||
|
|
|
|||
|
|
@ -456,7 +456,6 @@
|
|||
<ClInclude Include="..\src\frontend\plotting\plotting.h" />
|
||||
<ClInclude Include="..\src\frontend\plotting\pvec.h" />
|
||||
<ClInclude Include="..\src\frontend\plotting\x11.h" />
|
||||
<ClInclude Include="..\src\frontend\plotting\xgraph.h" />
|
||||
<ClInclude Include="..\src\frontend\points.h" />
|
||||
<ClInclude Include="..\src\frontend\postcoms.h" />
|
||||
<ClInclude Include="..\src\frontend\postsc.h" />
|
||||
|
|
@ -1062,7 +1061,6 @@
|
|||
<ClCompile Include="..\src\frontend\plotting\plotting.c" />
|
||||
<ClCompile Include="..\src\frontend\plotting\pvec.c" />
|
||||
<ClCompile Include="..\src\frontend\plotting\x11.c" />
|
||||
<ClCompile Include="..\src\frontend\plotting\xgraph.c" />
|
||||
<ClCompile Include="..\src\frontend\points.c" />
|
||||
<ClCompile Include="..\src\frontend\postcoms.c" />
|
||||
<ClCompile Include="..\src\frontend\postsc.c" />
|
||||
|
|
|
|||
|
|
@ -914,6 +914,7 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3
|
|||
<ClInclude Include="..\src\frontend\variable.h" />
|
||||
<ClInclude Include="..\src\frontend\vectors.h" />
|
||||
<ClInclude Include="..\src\frontend\wdisp\ftegraf.h" />
|
||||
<ClInclude Include="..\src\frontend\wdisp\wincolor.h" />
|
||||
<ClInclude Include="..\src\frontend\wdisp\windisp.h" />
|
||||
<ClInclude Include="..\src\frontend\wdisp\winprint.h" />
|
||||
<ClInclude Include="..\src\frontend\where.h" />
|
||||
|
|
@ -931,6 +932,7 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3
|
|||
<ClInclude Include="..\src\include\ngspice\cmconstants.h" />
|
||||
<ClInclude Include="..\src\include\ngspice\cmproto.h" />
|
||||
<ClInclude Include="..\src\include\ngspice\cmtypes.h" />
|
||||
<ClInclude Include="..\src\include\ngspice\wincolornames.h" />
|
||||
<ClInclude Include="..\src\include\ngspice\compatmode.h" />
|
||||
<ClInclude Include="..\src\include\ngspice\complex.h" />
|
||||
<ClInclude Include="..\src\include\ngspice\const.h" />
|
||||
|
|
@ -1522,6 +1524,7 @@ lib /machine:x64 /def:..\..\fftw-3.3-dll64\libfftw3-3.def /out:$(IntDir)libfftw3
|
|||
<ClCompile Include="..\src\frontend\typesdef.c" />
|
||||
<ClCompile Include="..\src\frontend\variable.c" />
|
||||
<ClCompile Include="..\src\frontend\vectors.c" />
|
||||
<ClCompile Include="..\src\frontend\wdisp\wincolor.c" />
|
||||
<ClCompile Include="..\src\frontend\wdisp\windisp.c" />
|
||||
<ClCompile Include="..\src\frontend\wdisp\winprint.c" />
|
||||
<ClCompile Include="..\src\frontend\where.c" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue