conditionally compile PSS analysis
This commit is contained in:
parent
cf793b3760
commit
598238f46a
20
configure.ac
20
configure.ac
|
|
@ -132,27 +132,31 @@ AC_ARG_ENABLE(expdevices,
|
|||
|
||||
dnl --enable-xspice: define XSPICE in the code. This is for xspice support
|
||||
AC_ARG_ENABLE(xspice,
|
||||
AS_HELP_STRING([--enable-xspice],[Enable XSpice enhancements, (experimental) ]))
|
||||
AS_HELP_STRING([--enable-xspice],[Enable XSpice enhancements, (experimental)]))
|
||||
|
||||
dnl --enable-cider: define CIDER in the code. This is for CIDER support
|
||||
AC_ARG_ENABLE(cider,
|
||||
AS_HELP_STRING([--enable-cider],[Enable CIDER enhancements, (experimental) ]))
|
||||
AS_HELP_STRING([--enable-cider],[Enable CIDER enhancements, (experimental)]))
|
||||
|
||||
dnl --enable-adms: define ADMS in the code. This is for the adms Verilog-A compiler support
|
||||
AC_ARG_ENABLE(adms,
|
||||
AS_HELP_STRING([--enable-adms],[Enable ADMS code models, (experimental) ]))
|
||||
AS_HELP_STRING([--enable-adms],[Enable ADMS code models, (experimental)]))
|
||||
|
||||
dnl --enable-adms3: define ADMS in the code. This is for the adms Verilog-A compiler support
|
||||
AC_ARG_ENABLE(adms3,
|
||||
AS_HELP_STRING([--enable-adms3],[Enable ADMS code models, (experimental) (adms3) ]))
|
||||
AS_HELP_STRING([--enable-adms3],[Enable ADMS code models, (experimental) (adms3)]))
|
||||
|
||||
dnl --enable-xspice: define XSPICE in the code. This is for xspice support
|
||||
AC_ARG_ENABLE(pss,
|
||||
AS_HELP_STRING([--enable-pss],[Enable PSS analysis, (very experimental)]))
|
||||
|
||||
dnl --enable-ndev: define NDEV in the code. An interface for external device i.e. numerical device
|
||||
AC_ARG_ENABLE(ndev,
|
||||
AS_HELP_STRING([--enable-ndev],[Enable NDEV interface, (experimental) ]))
|
||||
AS_HELP_STRING([--enable-ndev],[Enable NDEV interface, (experimental)]))
|
||||
|
||||
dnl --enable-cluster: define CLUSTER in the code. This is for cluster support
|
||||
AC_ARG_ENABLE(cluster,
|
||||
AS_HELP_STRING([--enable-cluster],[Enable cluster support, (experimental) ]))
|
||||
AS_HELP_STRING([--enable-cluster],[Enable cluster support, (experimental)]))
|
||||
|
||||
dnl --enable-help: try to force --ansi option to the compiler
|
||||
AC_ARG_ENABLE(help,
|
||||
|
|
@ -782,6 +786,9 @@ if test "$enable_pzdebug" = "yes"; then
|
|||
AC_DEFINE(PZDEBUG,[],[Define if you want to debug pole-zero analysis])
|
||||
AC_MSG_RESULT(WARNING: Pole/Zero analysis debug is enabled)
|
||||
fi
|
||||
if test "$enable_pss" = "yes"; then
|
||||
AC_DEFINE(WITH_PSS,[],[Define if you want PSS analysis])
|
||||
fi
|
||||
if test "$enable_blktmsdebug" = "yes"; then
|
||||
AC_DEFINE(D_DBG_BLOCKTIMES,[],[Define if we want debug distortion analysis (BLOCKTIMES)])
|
||||
AC_MSG_RESULT(WARNING: Distortion analysis debug *D_DBG_BLOCKTIMES* is enabled)
|
||||
|
|
@ -862,6 +869,7 @@ AM_CONDITIONAL([CIDER_WANTED], [test "$enable_cider" = "yes"])
|
|||
AM_CONDITIONAL([NUMDEV_WANTED], [test "$enable_cider" = "yes"])
|
||||
|
||||
|
||||
AM_CONDITIONAL([PSS_WANTED], [test "$enable_pss" = "yes"])
|
||||
|
||||
dnl adms option
|
||||
if test "$enable_adms" = "yes" -o "$enable_adms3" = "yes" ; then
|
||||
|
|
|
|||
|
|
@ -276,12 +276,14 @@ struct comm spcp_coms[] = {
|
|||
{ 0, 0, 0, 0 }, E_DEFHMASK, 0, LOTS,
|
||||
NULL,
|
||||
"[.tran line args] : Do a transient analysis." } ,
|
||||
#ifdef WITH_PSS
|
||||
/* SP: Steady State Analysis */
|
||||
{ "pss", com_pss, TRUE, TRUE,
|
||||
{ 0, 0, 0, 0 }, E_DEFHMASK, 0, LOTS,
|
||||
NULL,
|
||||
"[.pss line args] : Do a periodic state analysis." } ,
|
||||
/* SP */
|
||||
#endif
|
||||
{ "ac", com_ac, TRUE, TRUE,
|
||||
{ 0, 0, 0, 0 }, E_DEFHMASK, 0, LOTS,
|
||||
NULL,
|
||||
|
|
@ -697,12 +699,14 @@ struct comm nutcp_coms[] = {
|
|||
{ 0, 0, 0, 0 }, E_DEFHMASK, 0, LOTS,
|
||||
NULL,
|
||||
"[.tran line args] : Do a transient analysis." } ,
|
||||
#ifdef WITH_PSS
|
||||
/* SP: Steady State Analysis */
|
||||
{ "pss", NULL, TRUE, TRUE,
|
||||
{ 0, 0, 0, 0 }, E_DEFHMASK, 0, LOTS,
|
||||
NULL,
|
||||
"[.pss line args] : Do a periodic steady state analysis." } ,
|
||||
/* SP */
|
||||
#endif
|
||||
{ "ac", NULL, TRUE, TRUE,
|
||||
{ 0, 0, 0, 0 }, E_DEFHMASK, 0, LOTS,
|
||||
NULL,
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ com_noise(wordlist *wl)
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef WITH_PSS
|
||||
/* SP: Steady State Analysis */
|
||||
void
|
||||
com_pss(wordlist *wl)
|
||||
|
|
@ -187,6 +188,7 @@ com_pss(wordlist *wl)
|
|||
return;
|
||||
}
|
||||
/* SP */
|
||||
#endif
|
||||
|
||||
static int
|
||||
dosim(
|
||||
|
|
|
|||
|
|
@ -283,6 +283,7 @@ uic:
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef WITH_PSS
|
||||
/* *********************** */
|
||||
/* PSS - Spertica - 100910 */
|
||||
/* *********************** */
|
||||
|
|
@ -327,6 +328,7 @@ uic:
|
|||
if(error) current->error = INPerrCat(current->error,
|
||||
INPerror(error));
|
||||
}
|
||||
#endif
|
||||
|
||||
next:
|
||||
while(*line) { /* read the entire line */
|
||||
|
|
|
|||
|
|
@ -215,9 +215,12 @@ if_run(CKTcircuit *ckt, char *what, wordlist *args, INPtables *tab)
|
|||
|| eq(what, "sens")
|
||||
|| eq(what,"tf")
|
||||
|| eq(what, "noise")
|
||||
#ifdef WITH_PSS
|
||||
/* SP: Steady State Analysis */
|
||||
|| eq(what, "pss"))
|
||||
|| eq(what, "pss")
|
||||
/* SP */
|
||||
#endif
|
||||
)
|
||||
{
|
||||
s = wl_flatten(args); /* va: tfree char's tmalloc'ed in wl_flatten */
|
||||
(void) sprintf(buf, ".%s", s);
|
||||
|
|
@ -331,9 +334,11 @@ if_run(CKTcircuit *ckt, char *what, wordlist *args, INPtables *tab)
|
|||
||(eq(what, "adjsen"))
|
||||
||(eq(what, "sens"))
|
||||
||(eq(what,"tf"))
|
||||
#ifdef WITH_PSS
|
||||
/* SP: Steady State Analysis */
|
||||
||(eq(what, "pss"))
|
||||
/* SP */
|
||||
#endif
|
||||
||(eq(what, "run")) ) {
|
||||
|
||||
/*CDHW Run the analysis pointed to by ci_curTask CDHW*/
|
||||
|
|
|
|||
|
|
@ -264,6 +264,7 @@ struct CKTcircuit {
|
|||
Enh_Ckt_Data_t *enh; /* data used by general enhancements */
|
||||
#endif
|
||||
/* gtri - evt - wbk - 5/20/91 - add event-driven and enhancements data */
|
||||
#ifdef WITH_PSS
|
||||
/* SP: Steady State Analysis - 100609 */
|
||||
double CKTstabTime; /* PSS stab time */
|
||||
double CKTguessedFreq; /* PSS guessed frequency */
|
||||
|
|
@ -273,6 +274,7 @@ struct CKTcircuit {
|
|||
double CKTsteady_coeff;
|
||||
int CKTsc_iter;
|
||||
/* SP: 100609 */
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
Author: 2010-05 Stefano Perticaroli ``spertica''
|
||||
**********/
|
||||
|
||||
#ifndef PSS
|
||||
#define PSS
|
||||
#ifndef PSS_H
|
||||
#define PSS_H
|
||||
|
||||
#include "ngspice/jobdefs.h"
|
||||
#include "ngspice/tskdefs.h"
|
||||
|
|
@ -35,4 +35,5 @@ typedef struct {
|
|||
#define PSS_UIC 6
|
||||
#define SC_ITER 7
|
||||
#define STEADY_COEFF 8
|
||||
#endif /*PSS*/
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -72,7 +72,6 @@ libckt_la_SOURCES = \
|
|||
dcoaskq.c \
|
||||
dcop.c \
|
||||
dcosetp.c \
|
||||
dcpss.c \
|
||||
dctaskq.c \
|
||||
dctran.c \
|
||||
dctrcurv.c \
|
||||
|
|
@ -86,9 +85,6 @@ libckt_la_SOURCES = \
|
|||
ninteg.c \
|
||||
noisean.c \
|
||||
nsetparm.c \
|
||||
pssaskq.c \
|
||||
pssinit.c \
|
||||
psssetp.c \
|
||||
pzan.c \
|
||||
pzaskq.c \
|
||||
pzsetp.c \
|
||||
|
|
@ -103,5 +99,14 @@ libckt_la_SOURCES = \
|
|||
cluster.c
|
||||
|
||||
|
||||
if PSS_WANTED
|
||||
libckt_la_SOURCES += \
|
||||
dcpss.c \
|
||||
pssaskq.c \
|
||||
pssinit.c \
|
||||
psssetp.c
|
||||
endif
|
||||
|
||||
|
||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include -I$(top_srcdir)/src/spicelib/devices
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
|
|
|||
|
|
@ -17,9 +17,12 @@ extern SPICEanalysis TFinfo;
|
|||
extern SPICEanalysis DISTOinfo;
|
||||
extern SPICEanalysis NOISEinfo;
|
||||
extern SPICEanalysis SENSinfo;
|
||||
|
||||
#ifdef WITH_PSS
|
||||
/* SP: Periodic Steady State*/
|
||||
extern SPICEanalysis PSSinfo;
|
||||
/* SP */
|
||||
#endif
|
||||
|
||||
SPICEanalysis *analInfo[] = {
|
||||
&OPTinfo,
|
||||
|
|
@ -32,7 +35,9 @@ SPICEanalysis *analInfo[] = {
|
|||
&DISTOinfo,
|
||||
&NOISEinfo,
|
||||
&SENSinfo,
|
||||
#ifdef WITH_PSS
|
||||
&PSSinfo,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -627,6 +627,7 @@ dot_sens2(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef WITH_PSS
|
||||
/*SP: Steady State Analyis */
|
||||
static int
|
||||
dot_pss(char *line, void *ckt, INPtables *tab, card *current,
|
||||
|
|
@ -692,6 +693,7 @@ dot_pss(char *line, void *ckt, INPtables *tab, card *current,
|
|||
return (0);
|
||||
}
|
||||
/* SP */
|
||||
#endif
|
||||
|
||||
static int
|
||||
dot_options(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
|
||||
|
|
@ -772,11 +774,13 @@ INP2dot(CKTcircuit *ckt, INPtables *tab, card *current, TSKtask *task, CKTnode *
|
|||
} else if ((strcmp(token, ".tran") == 0)) {
|
||||
rtn = dot_tran(line, ckt, tab, current, task, gnode, foo);
|
||||
goto quit;
|
||||
#ifdef WITH_PSS
|
||||
/* SP: Steady State Analysis */
|
||||
} else if ((strcmp(token, ".pss") == 0)) {
|
||||
rtn = dot_pss(line, ckt, tab, current, task, gnode, foo);
|
||||
goto quit;
|
||||
/* SP */
|
||||
#endif
|
||||
} else if ((strcmp(token, ".subckt") == 0) ||
|
||||
(strcmp(token, ".ends") == 0)) {
|
||||
/* not yet implemented - warn & ignore */
|
||||
|
|
|
|||
|
|
@ -5301,10 +5301,6 @@
|
|||
RelativePath="..\src\spicelib\analysis\dcosetp.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\spicelib\analysis\dcpss.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\spicelib\analysis\dctaskq.c"
|
||||
>
|
||||
|
|
@ -7913,18 +7909,6 @@
|
|||
RelativePath="..\src\spicelib\devices\jfet2\psmodel.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\spicelib\analysis\pssaskq.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\spicelib\analysis\pssinit.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\spicelib\analysis\psssetp.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\spicelib\parser\ptfuncs.c"
|
||||
>
|
||||
|
|
|
|||
Loading…
Reference in New Issue