diff options
118 files changed, 195 insertions, 5611 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..37becdf2 --- /dev/null +++ b/Makefile @@ -0,0 +1,18 @@ + +SUBDIRS = \ +plugins + +all: + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir; \ + done + +clean: + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir clean; \ + done + +install: + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir install; \ + done diff --git a/plugins/Makefile b/plugins/Makefile new file mode 100644 index 00000000..19871edf --- /dev/null +++ b/plugins/Makefile @@ -0,0 +1,18 @@ + +SUBDIRS = \ +models-bsim models-jspice3-2.5 models-ngspice17 models-spice3f5 + +all: + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir; \ + done + +clean: + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir clean; \ + done + +install: + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir install; \ + done diff --git a/plugins/models-bsim/BSIM3v301/wrapper.h b/plugins/models-bsim/BSIM3v301/wrapper.h index 565d5c14..9664f2bf 100644 --- a/plugins/models-bsim/BSIM3v301/wrapper.h +++ b/plugins/models-bsim/BSIM3v301/wrapper.h @@ -22,7 +22,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM3v31/wrapper.h b/plugins/models-bsim/BSIM3v31/wrapper.h index da3cca41..2e6e2f14 100644 --- a/plugins/models-bsim/BSIM3v31/wrapper.h +++ b/plugins/models-bsim/BSIM3v31/wrapper.h @@ -22,7 +22,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM3v32/wrapper.h b/plugins/models-bsim/BSIM3v32/wrapper.h index 5e1866b9..7218a63f 100644 --- a/plugins/models-bsim/BSIM3v32/wrapper.h +++ b/plugins/models-bsim/BSIM3v32/wrapper.h @@ -22,7 +22,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM3v321/wrapper.h b/plugins/models-bsim/BSIM3v321/wrapper.h index f213aead..ad426243 100644 --- a/plugins/models-bsim/BSIM3v321/wrapper.h +++ b/plugins/models-bsim/BSIM3v321/wrapper.h @@ -22,7 +22,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM3v322/wrapper.h b/plugins/models-bsim/BSIM3v322/wrapper.h index 51cb4c59..74433983 100644 --- a/plugins/models-bsim/BSIM3v322/wrapper.h +++ b/plugins/models-bsim/BSIM3v322/wrapper.h @@ -22,7 +22,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM3v323/wrapper.h b/plugins/models-bsim/BSIM3v323/wrapper.h index d6b283fb..331d68f3 100644 --- a/plugins/models-bsim/BSIM3v323/wrapper.h +++ b/plugins/models-bsim/BSIM3v323/wrapper.h @@ -22,7 +22,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM3v324/wrapper.h b/plugins/models-bsim/BSIM3v324/wrapper.h index b2a5f9df..7b1d99be 100644 --- a/plugins/models-bsim/BSIM3v324/wrapper.h +++ b/plugins/models-bsim/BSIM3v324/wrapper.h @@ -22,7 +22,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM3v330/wrapper.h b/plugins/models-bsim/BSIM3v330/wrapper.h index d962219d..9c4e7325 100644 --- a/plugins/models-bsim/BSIM3v330/wrapper.h +++ b/plugins/models-bsim/BSIM3v330/wrapper.h @@ -22,7 +22,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM400/wrapper.h b/plugins/models-bsim/BSIM400/wrapper.h index 56334f9c..dd1e71ee 100644 --- a/plugins/models-bsim/BSIM400/wrapper.h +++ b/plugins/models-bsim/BSIM400/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM410/wrapper.h b/plugins/models-bsim/BSIM410/wrapper.h index c025efa6..b6d3cf6d 100644 --- a/plugins/models-bsim/BSIM410/wrapper.h +++ b/plugins/models-bsim/BSIM410/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM420/wrapper.h b/plugins/models-bsim/BSIM420/wrapper.h index db12860b..22694556 100644 --- a/plugins/models-bsim/BSIM420/wrapper.h +++ b/plugins/models-bsim/BSIM420/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM421/wrapper.h b/plugins/models-bsim/BSIM421/wrapper.h index e60cdd8d..36d7af7e 100644 --- a/plugins/models-bsim/BSIM421/wrapper.h +++ b/plugins/models-bsim/BSIM421/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM430/wrapper.h b/plugins/models-bsim/BSIM430/wrapper.h index 23f4e4ff..af39b31e 100644 --- a/plugins/models-bsim/BSIM430/wrapper.h +++ b/plugins/models-bsim/BSIM430/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM440/wrapper.h b/plugins/models-bsim/BSIM440/wrapper.h index 1e95e04c..35279606 100644 --- a/plugins/models-bsim/BSIM440/wrapper.h +++ b/plugins/models-bsim/BSIM440/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM450/wrapper.h b/plugins/models-bsim/BSIM450/wrapper.h index 4daf2dc0..f8da2371 100644 --- a/plugins/models-bsim/BSIM450/wrapper.h +++ b/plugins/models-bsim/BSIM450/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM460/wrapper.h b/plugins/models-bsim/BSIM460/wrapper.h index 6644a6be..b2cd3e1f 100644 --- a/plugins/models-bsim/BSIM460/wrapper.h +++ b/plugins/models-bsim/BSIM460/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM461/wrapper.h b/plugins/models-bsim/BSIM461/wrapper.h index e26b9386..beb1f9bf 100644 --- a/plugins/models-bsim/BSIM461/wrapper.h +++ b/plugins/models-bsim/BSIM461/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM462/wrapper.h b/plugins/models-bsim/BSIM462/wrapper.h index ec3acded..7889f964 100644 --- a/plugins/models-bsim/BSIM462/wrapper.h +++ b/plugins/models-bsim/BSIM462/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM463/wrapper.h b/plugins/models-bsim/BSIM463/wrapper.h index db182de1..510b3c07 100644 --- a/plugins/models-bsim/BSIM463/wrapper.h +++ b/plugins/models-bsim/BSIM463/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM464/wrapper.h b/plugins/models-bsim/BSIM464/wrapper.h index 13abab90..3484ff16 100644 --- a/plugins/models-bsim/BSIM464/wrapper.h +++ b/plugins/models-bsim/BSIM464/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/BSIM465/wrapper.h b/plugins/models-bsim/BSIM465/wrapper.h index efc43458..e4356311 100644 --- a/plugins/models-bsim/BSIM465/wrapper.h +++ b/plugins/models-bsim/BSIM465/wrapper.h @@ -24,7 +24,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-bsim/Gnucap b/plugins/models-bsim/Gnucap deleted file mode 120000 index f5030fe8..00000000 --- a/plugins/models-bsim/Gnucap +++ /dev/null @@ -1 +0,0 @@ -../include
\ No newline at end of file diff --git a/plugins/models-bsim/Make2.gcc b/plugins/models-bsim/Make2.gcc index 9afa3d55..526657e3 100644 --- a/plugins/models-bsim/Make2.gcc +++ b/plugins/models-bsim/Make2.gcc @@ -1,9 +1,9 @@ # $Id$ -*- Makefile -*- -PREFIX = /usr/local/gnucap -INSTALL_DIR = $(PREFIX)/lib/models/bsim +PREFIX = $(shell gnucap-conf --exec_prefix ) +INSTALL_DIR = $(shell gnucap-conf --pkglibdir )/models/bsim SPICE_INCLUDE = ../Include -GNUCAP_INCLUDE = ../Gnucap +GNUCAP_INCLUDE = $(shell gnucap-conf --includedir ) VPATH = .:$(SPICE_INCLUDE):$(GNUCAP_INCLUDE) C_SRCS = $(CFILES) devsup.c @@ -14,11 +14,13 @@ OBJS = ${CC_SRCS:.cc=.o} ${C_SRCS:.c=.o} CC = gcc CCC = g++ -CFLAGS = -O2 -g -I. -I$(SPICE_INCLUDE) -DTRACE_UNTESTED -D$(SPICE_VERSION) \ +C_CC_FLAGS = -O2 -g -I. -I$(SPICE_INCLUDE) -DTRACE_UNTESTED -D$(SPICE_VERSION) \ -DPREDICTOR -DAN_pz -DAN_disto -DAN_noise \ -DHAS_STDLIB -fPIC -CCFLAGS = $(CFLAGS) -I$(GNUCAP_INCLUDE) -Wall -Wextra +CFLAGS = $(C_CC_FLAGS) -std=gnu90 + +CCFLAGS = $(C_CC_FLAGS) -I$(GNUCAP_INCLUDE) -Wall -Wextra LDFLAGS = -shared diff --git a/plugins/models-bsim/Make2.mingw b/plugins/models-bsim/Make2.mingw index 72b608fc..f4f28d76 100644 --- a/plugins/models-bsim/Make2.mingw +++ b/plugins/models-bsim/Make2.mingw @@ -1,9 +1,9 @@ # $Id$ -*- Makefile -*- -PREFIX = /usr/local/gnucap -INSTALL_DIR = $(PREFIX)/lib/models/bsim +PREFIX = $(shell gnucap-conf --exec_prefix ) +INSTALL_DIR = $(shell gnucap-conf --pkglibdir )/models/bsim SPICE_INCLUDE = ../Include -GNUCAP_INCLUDE = ../Gnucap +GNUCAP_INCLUDE = $(shell gnucap-conf --includedir ) VPATH = .:$(SPICE_INCLUDE):$(GNUCAP_INCLUDE) C_SRCS = $(CFILES) devsup.c diff --git a/plugins/models-bsim/Makefile b/plugins/models-bsim/Makefile index e098ac06..4aae8d78 100644 --- a/plugins/models-bsim/Makefile +++ b/plugins/models-bsim/Makefile @@ -1,117 +1,24 @@ +SUBDIRS = \ +BSIM3v301 BSIM3v31 BSIM3v32 BSIM3v321 BSIM3v322 \ +BSIM3v323 BSIM3v324 BSIM3v330 BSIM400 BSIM410 \ +BSIM420 BSIM421 BSIM430 BSIM440 BSIM450 BSIM460 \ +BSIM461 BSIM462 BSIM463 BSIM464 BSIM465 BSIMDD2p1 \ +BSIMFD2p1 BSIMPD2p0 BSIMPD2p1 BSIMPD2p2 BSIMPD2p22 \ +BSIMPD2p23 BSIMSOI3p0 BSIMSOI3p1 BSIMSOI3p11 BSIMSOI3p2 \ +BSIMSOI4p0 BSIMSOI4p1 BSIMSOI4p2 BSIMSOI4p3 BSIMSOI4p31 + all: - -(cd BSIM3v301; make) - -(cd BSIM3v31; make) - -(cd BSIM3v32; make) - -(cd BSIM3v321; make) - -(cd BSIM3v322; make) - -(cd BSIM3v323; make) - -(cd BSIM3v324; make) - -(cd BSIM3v330; make) - -(cd BSIM400; make) - -(cd BSIM410; make) - -(cd BSIM420; make) - -(cd BSIM421; make) - -(cd BSIM430; make) - -(cd BSIM440; make) - -(cd BSIM450; make) - -(cd BSIM460; make) - -(cd BSIM461; make) - -(cd BSIM462; make) - -(cd BSIM463; make) - -(cd BSIM464; make) - -(cd BSIM465; make) - -(cd BSIMDD2p1; make) - -(cd BSIMFD2p1; make) - -(cd BSIMPD2p0; make) - -(cd BSIMPD2p1; make) - -(cd BSIMPD2p2; make) - -(cd BSIMPD2p22; make) - -(cd BSIMPD2p23; make) - -(cd BSIMSOI3p0; make) - -(cd BSIMSOI3p1; make) - -(cd BSIMSOI3p11; make) - -(cd BSIMSOI3p2; make) - -(cd BSIMSOI4p0; make) - -(cd BSIMSOI4p1; make) - -(cd BSIMSOI4p2; make) - -(cd BSIMSOI4p3; make) - -(cd BSIMSOI4p31; make) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir; \ + done clean: - (cd BSIM3v301; make clean) - (cd BSIM3v31; make clean) - (cd BSIM3v32; make clean) - (cd BSIM3v321; make clean) - (cd BSIM3v322; make clean) - (cd BSIM3v323; make clean) - (cd BSIM3v324; make clean) - (cd BSIM3v330; make clean) - (cd BSIM400; make clean) - (cd BSIM410; make clean) - (cd BSIM420; make clean) - (cd BSIM421; make clean) - (cd BSIM430; make clean) - (cd BSIM440; make clean) - (cd BSIM450; make clean) - (cd BSIM460; make clean) - (cd BSIM461; make clean) - (cd BSIM462; make clean) - (cd BSIM463; make clean) - (cd BSIM464; make clean) - (cd BSIM465; make clean) - (cd BSIMDD2p1; make clean) - (cd BSIMFD2p1; make clean) - (cd BSIMPD2p0; make clean) - (cd BSIMPD2p1; make clean) - (cd BSIMPD2p2; make clean) - (cd BSIMPD2p22; make clean) - (cd BSIMPD2p23; make clean) - (cd BSIMSOI3p0; make clean) - (cd BSIMSOI3p1; make clean) - (cd BSIMSOI3p11; make clean) - (cd BSIMSOI3p2; make clean) - (cd BSIMSOI4p0; make clean) - (cd BSIMSOI4p1; make clean) - (cd BSIMSOI4p2; make clean) - (cd BSIMSOI4p3; make clean) - (cd BSIMSOI4p31; make clean) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir clean; \ + done install: - (cd BSIM3v301; make install) - (cd BSIM3v31; make install) - (cd BSIM3v32; make install) - (cd BSIM3v321; make install) - (cd BSIM3v322; make install) - (cd BSIM3v323; make install) - (cd BSIM3v324; make install) - (cd BSIM3v330; make install) - (cd BSIM400; make install) - (cd BSIM410; make install) - (cd BSIM420; make install) - (cd BSIM421; make install) - (cd BSIM430; make install) - (cd BSIM440; make install) - (cd BSIM450; make install) - (cd BSIM460; make install) - (cd BSIM461; make install) - (cd BSIM462; make install) - (cd BSIM463; make install) - (cd BSIM464; make install) - (cd BSIM465; make install) - (cd BSIMDD2p1; make install) - (cd BSIMFD2p1; make install) - (cd BSIMPD2p0; make install) - (cd BSIMPD2p1; make install) - (cd BSIMPD2p2; make install) - (cd BSIMPD2p22; make install) - (cd BSIMPD2p23; make install) - (cd BSIMSOI3p0; make install) - (cd BSIMSOI3p1; make install) - (cd BSIMSOI3p11; make install) - (cd BSIMSOI3p2; make install) - (cd BSIMSOI4p0; make install) - (cd BSIMSOI4p1; make install) - (cd BSIMSOI4p2; make install) - (cd BSIMSOI4p3; make install) - (cd BSIMSOI4p31; make install) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir install; \ + done diff --git a/plugins/models-jspice3-2.5/Gnucap b/plugins/models-jspice3-2.5/Gnucap deleted file mode 120000 index f5030fe8..00000000 --- a/plugins/models-jspice3-2.5/Gnucap +++ /dev/null @@ -1 +0,0 @@ -../include
\ No newline at end of file diff --git a/plugins/models-jspice3-2.5/Include.3f5/acdefs.h b/plugins/models-jspice3-2.5/Include.3f5/acdefs.h deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/acdefs.h +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/capabil.h b/plugins/models-jspice3-2.5/Include.3f5/capabil.h deleted file mode 100644 index 64e5dfd4..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/capabil.h +++ /dev/null @@ -1,133 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -**********/ - -/* - * #define-s that are always on - */ - -#define CAPZEROBYPASS -#define NEWCONV -/* #define CAPBYPASS Internal use only */ - -/* - * #define-s to identify common capabilities - */ - -#ifdef WANT_X11 -# define HAS_X11 -#else -# ifdef WANT_X10 -# define HAS_X10 -# ifdef WANT_XT -# define HAS_XT -# endif -# endif /* X10 */ -#endif /* !X11 */ - -#ifdef WANT_MFB -# define HAS_MFB -#endif - -#ifdef HAS_BSDDIRS -# define HAS_DIRS_ -#endif -#ifdef HAS_SYSVDIRS -# define HAS_DIRS_ -#endif -#ifdef HAS_DOSDIRS -# define HAS_DIRS_ -#endif - -#ifdef HAS_BSDTTY -# define HAS_TTY_ -#endif -#ifdef HAS_SYSVTTY -# define HAS_TTY_ -#endif - -#ifdef HAS_BSDTIME -# define HAS_TIME_ -# define HAS_LOCALTIME -#endif -#ifdef HAS_SYSVTIME -# define HAS_TIME_ -# define HAS_LOCALTIME -#endif - -#ifdef HAS_BSDRLIMIT -# define HAS_RLIMIT_ -#endif -#ifdef HAS_SYSVRLIMIT -# define HAS_RLIMIT_ -#endif -#ifdef HAS_MEMAVL -# define HAS_RLIMIT_ -#endif - -#ifdef HAS_BSDRUSAGE -# define HAS_RUSAGE_ -#endif -#ifdef HAS_SYSVRUSAGE -# define HAS_RUSAGE_ -#endif - -#ifdef HAS_X10 -# define HAS_X_ -#endif -#ifdef HAS_X11 -# define HAS_X_ -#endif - -#ifndef DIR_TERM -# define DIR_TERM 0 -#endif - -#ifndef DIR_PATHSEP -# define DIR_PATHSEP 0 -#endif - -#ifndef DIR_CWD -# define DIR_CWD 0 -#endif - -#ifdef HAS_NO_ERFC -# ifndef HAS_NO_ERFC_DECL -# define HAS_NO_ERFC_DECL -# endif -#endif - -#ifdef HAS_NO_IEEE_LOGB -# ifndef HAS_NO_IEEE_LOGB_DECL -# define HAS_NO_IEEE_LOGB_DECL -# endif -#endif - -#ifdef HAS_IEEE_SCALBN -# define scalb scalbn -#endif - -#ifdef HAS_NO_IEEE_LOGB_DECL -# ifdef __STDC__ -extern double logb(double), scalb(double, int); -# else -extern double logb( ), scalb( ); -# endif -#endif - -#ifdef HAS_NO_ERFC_DECL -# ifdef __STDC__ -extern double erfc(double); -# else -extern double erfc( ); -# endif -#endif - -#ifndef SIGNAL_TYPE -# define SIGNAL_TYPE void -#endif - -#ifndef SIGNAL_FUNCTION -# define SIGNAL_FUNCTION SIGNAL_TYPE (*)( ) -#endif - diff --git a/plugins/models-jspice3-2.5/Include.3f5/cktdefs.h b/plugins/models-jspice3-2.5/Include.3f5/cktdefs.h deleted file mode 100644 index 139fb623..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/cktdefs.h +++ /dev/null @@ -1,437 +0,0 @@ -/* - * Copyright (c) 1985 Thomas L. Quarles - */ -#ifndef CKT -#define CKT "CKTdefs.h $Revision: 1.13 $ on $Date: 89/04/05 13:09:39 $ " - -#define MAXNUMDEVS 32 -extern int DEVmaxnum; -#define MAXNUMDEVNODES 4 - -#include "smpdefs.h" -#include "ifsim.h" -#include "acdefs.h" -#include "gendefs.h" -#include "trcvdefs.h" -#include "optdefs.h" -#include "sen2defs.h" -#include "pzdefs.h" - - - -typedef struct sCKTnode { - IFuid name; - int type; - -#define SP_VOLTAGE 3 -#define SP_CURRENT 4 -#define NODE_VOLTAGE SP_VOLTAGE -#define NODE_CURRENT SP_CURRENT - - int number; - double ic; - double nodeset; - double *ptr; - struct sCKTnode *next; - unsigned int icGiven:1; - unsigned int nsGiven:1; -} CKTnode; - -/* defines for node parameters */ -#define PARM_NS 1 -#define PARM_IC 2 -#define PARM_NODETYPE 3 - - - -typedef struct { - GENmodel *CKThead[MAXNUMDEVS]; - STATistics *CKTstat; - double *(CKTstates[8]); -#define CKTstate0 CKTstates[0] -#define CKTstate1 CKTstates[1] -#define CKTstate2 CKTstates[2] -#define CKTstate3 CKTstates[3] -#define CKTstate4 CKTstates[4] -#define CKTstate5 CKTstates[5] -#define CKTstate6 CKTstates[6] -#define CKTstate7 CKTstates[7] - double CKTtime; - double CKTdelta; - double CKTdeltaOld[7]; - double CKTtemp; - double CKTnomTemp; - double CKTvt; - double CKTag[7]; /* the gear variable coefficient matrix */ -#ifdef PREDICTOR - double CKTagp[7]; /* the gear predictor variable coefficient matrix */ -#endif /*PREDICTOR*/ - int CKTorder; /* the integration method order */ - int CKTmaxOrder; /* maximum integration method order */ - int CKTintegrateMethod; /* the integration method to be used */ - -/* known integration methods */ -#define TRAPEZOIDAL 1 -#define GEAR 2 - - SMPmatrix *CKTmatrix; /* pointer to sparse matrix */ - int CKTniState; /* internal state */ - double *CKTrhs; /* current rhs value - being loaded */ - double *CKTrhsOld; /* previous rhs value for convergence testing */ - double *CKTrhsSpare; /* spare rhs value for reordering */ - double *CKTirhs; /* current rhs value - being loaded (imag) */ - double *CKTirhsOld; /* previous rhs value (imaginary)*/ - double *CKTirhsSpare; /* spare rhs value (imaginary)*/ -#ifdef PREDICTOR - double *CKTpred; /* predicted solution vector */ - double *CKTsols[8]; /* previous 8 solutions */ -#endif /* PREDICTOR */ - - double *CKTrhsOp; /* opearating point values */ - double *CKTsenRhs; /* current sensitivity rhs values */ - double *CKTseniRhs; /* current sensitivity rhs values (imag)*/ - - -/* - * symbolic constants for CKTniState - * Note that they are bitwise disjoint - */ - -#define NISHOULDREORDER 0x1 -#define NIREORDERED 0x2 -#define NIUNINITIALIZED 0x4 -#define NIACSHOULDREORDER 0x10 -#define NIACREORDERED 0x20 -#define NIACUNINITIALIZED 0x40 -#define NIDIDPREORDER 0x100 -#define NIPZSHOULDREORDER 0x200 - - int CKTmaxEqNum; - int CKTcurrentAnalysis; /* the analysis in progress (if any) */ - -/* defines for the value of CKTcurrentAnalysis */ -/* are in TSKdefs.h */ - - CKTnode *CKTnodes; - CKTnode *CKTlastNode; -#define NODENAME(ckt,nodenum) CKTnodName(ckt,nodenum) - int CKTnumStates; - long CKTmode; - -/* defines for CKTmode */ - -/* old 'mode' parameters */ -#define MODE 0x3 -#define MODETRAN 0x1 -#define MODEAC 0x2 - -/* old 'modedc' parameters */ -#define MODEDC 0x70 -#define MODEDCOP 0x10 -#define MODETRANOP 0x20 -#define MODEDCTRANCURVE 0x40 - -/* old 'initf' parameters */ -#define INITF 0x3f00 -#define MODEINITFLOAT 0x100 -#define MODEINITJCT 0x200 -#define MODEINITFIX 0x400 -#define MODEINITSMSIG 0x800 -#define MODEINITTRAN 0x1000 -#define MODEINITPRED 0x2000 - -/* old 'nosolv' paramater */ -#define MODEUIC 0x10000l - - int CKTbypass; - int CKTdcMaxIter; /* iteration limit for dc op. (itl1) */ - int CKTdcTrcvMaxIter; /* iteration limit for dc tran. curv (itl2) */ - int CKTtranMaxIter; /* iteration limit for each timepoint for tran*/ - /* (itl4) */ - int CKTbreakSize; - int CKTbreak; - double CKTsaveDelta; - double CKTminBreak; - double *CKTbreaks; - double CKTabstol; - double CKTpivotAbsTol; - double CKTpivotRelTol; - double CKTreltol; - double CKTchgtol; - double CKTvoltTol; -#ifdef NEWTRUNC - double CKTlteReltol; - double CKTlteAbstol; -#endif /* NEWTRUNC */ - double CKTgmin; - double CKTdelmin; - double CKTtrtol; - double CKTfinalTime; - double CKTstep; - double CKTmaxStep; - double CKTinitTime; - double CKTomega; - double CKTsrcFact; - double CKTdiagGmin; - int CKTnumSrcSteps; - int CKTnumGminSteps; - int CKTnoncon; - double CKTdefaultMosL; - double CKTdefaultMosW; - double CKTdefaultMosAD; - double CKTdefaultMosAS; - unsigned int CKThadNodeset:1; - unsigned int CKTfixLimit:1; /* flag to indicate that the limiting of - * MOSFETs should be done as in SPICE2 */ - unsigned int CKTnoOpIter:1; /* flag to indicate not to try the operating - * point brute force, but to use gmin stepping - * first */ - unsigned int CKTisSetup:1; /* flag to indicate if CKTsetup done */ - JOB *CKTcurJob; - - SENstruct *CKTsenInfo; /* the sensitivity information */ - double *CKTtimePoints; /* list of all accepted timepoints in the - current transient simulation */ - double *CKTdeltaList; /* list of all timesteps in the current - transient simulation */ - int CKTtimeListSize; /* size of above lists */ - int CKTtimeIndex; /* current position in above lists */ - int CKTsizeIncr; /* amount to increment size of above arrays - when you run out of space */ - unsigned int CKTtryToCompact:1; /* try to compact past history for LTRA - lines */ - unsigned int CKTbadMos3:1; /* Use old, unfixed MOS3 equations */ - unsigned int CKTkeepOpInfo:1; /* flag for small signal analyses */ - int CKTtroubleNode; /* Non-convergent node number */ - GENinstance *CKTtroubleElt; /* Non-convergent device instance */ - -} CKTcircuit; - -#ifdef __STDC__ -int ACan( CKTcircuit *, int ); -int ACaskQuest( CKTcircuit *, GENERIC *, int , IFvalue *); -int ACsetParm( CKTcircuit *, GENERIC *, int , IFvalue *); -int CKTacDump( CKTcircuit *, double , GENERIC *); -int CKTacLoad( CKTcircuit *); -int CKTaccept( CKTcircuit *); -int CKTacct( CKTcircuit *, GENERIC *, int , IFvalue *); -int CKTask( GENERIC *, GENERIC *, int , IFvalue *, IFvalue *); -int CKTaskAnalQ( GENERIC *, GENERIC *, int , IFvalue *, IFvalue *); -int CKTaskNodQst( GENERIC *, GENERIC *, int , IFvalue *, IFvalue *); -int CKTbindNode( GENERIC *, GENERIC *, int , GENERIC *); -void CKTbreakDump( CKTcircuit *); -int CKTclrBreak( CKTcircuit *); -int CKTconvTest( CKTcircuit *); -int CKTcrtElt( GENERIC *, GENERIC *, GENERIC **, IFuid ); -int CKTdelTask( GENERIC *, GENERIC *); -int CKTdestroy( GENERIC *); -int CKTdltAnal( GENERIC *, GENERIC *, GENERIC *); -int CKTdltInst( GENERIC *, GENERIC *); -int CKTdltMod( GENERIC *, GENERIC *); -int CKTdltNod( GENERIC *, GENERIC *); -int CKTdoJob( GENERIC *, int , GENERIC *); -void CKTdump( CKTcircuit *, double, GENERIC *); -int CKTfndAnal( GENERIC *, int *, GENERIC **, IFuid , GENERIC *, IFuid ); -int CKTfndBranch( CKTcircuit *, IFuid); -int CKTfndDev( GENERIC *, int *, GENERIC **, IFuid , GENERIC *, IFuid ); -int CKTfndMod( GENERIC *, int *, GENERIC **, IFuid ); -int CKTfndNode( GENERIC *, GENERIC **, IFuid ); -int CKTfndTask( GENERIC *, GENERIC **, IFuid ); -int CKTground( GENERIC *, GENERIC **, IFuid ); -int CKTic( CKTcircuit *); -int CKTinit( GENERIC **); -int CKTinst2Node( GENERIC *, GENERIC *, int , GENERIC **, IFuid *); -int CKTlinkEq(CKTcircuit*,CKTnode*); -int CKTload( CKTcircuit *); -int CKTmapNode( GENERIC *, GENERIC **, IFuid ); -int CKTmkCur( CKTcircuit *, CKTnode **, IFuid , char *); -int CKTmkNode(CKTcircuit*,CKTnode**); -int CKTmkVolt( CKTcircuit *, CKTnode **, IFuid , char *); -int CKTmodAsk( GENERIC *, GENERIC *, int , IFvalue *, IFvalue *); -int CKTmodCrt( GENERIC *, int , GENERIC **, IFuid ); -int CKTmodParam( GENERIC *, GENERIC *, int , IFvalue *, IFvalue *); -int CKTnames(CKTcircuit *, int *, IFuid **); -int CKTnewAnal( GENERIC *, int , IFuid , GENERIC **, GENERIC *); -int CKTnewEq( GENERIC *, GENERIC **, IFuid ); -int CKTnewNode( GENERIC *, GENERIC **, IFuid ); -int CKTnewTask( GENERIC *, GENERIC **, IFuid ); -IFuid CKTnodName( CKTcircuit *, int ); -void CKTnodOut( CKTcircuit *); -CKTnode * CKTnum2nod( CKTcircuit *, int ); -int CKTop(CKTcircuit *, long, long, int ); -int CKTpModName( char *, IFvalue *, CKTcircuit *, int , IFuid , GENmodel **); -int CKTpName( char *, IFvalue *, CKTcircuit *, int , char *, GENinstance **); -int CKTparam( GENERIC *, GENERIC *, int , IFvalue *, IFvalue *); -int CKTpzFindZeros( CKTcircuit *, PZtrial **, int * ); -int CKTpzLoad( CKTcircuit *, SPcomplex * ); -int CKTpzSetup( CKTcircuit *, int); -int CKTsenAC( CKTcircuit *); -int CKTsenComp( CKTcircuit *); -int CKTsenDCtran( CKTcircuit *); -int CKTsenLoad( CKTcircuit *); -void CKTsenPrint( CKTcircuit *); -int CKTsenSetup( CKTcircuit *); -int CKTsenUpdate( CKTcircuit *); -int CKTsetAnalPm( GENERIC *, GENERIC *, int , IFvalue *, IFvalue *); -int CKTsetBreak( CKTcircuit *, double ); -int CKTsetNodPm( GENERIC *, GENERIC *, int , IFvalue *, IFvalue *); -int CKTsetOpt( GENERIC *, GENERIC *, int , IFvalue *); -int CKTsetup( CKTcircuit *); -int CKTtemp( CKTcircuit *); -char *CKTtrouble(GENERIC *, char *); -void CKTterr( int , CKTcircuit *, double *); -int CKTtrunc( CKTcircuit *, double *); -int CKTtypelook( char *); -int DCOaskQuest( CKTcircuit *, GENERIC *, int , IFvalue *); -int DCOsetParm( CKTcircuit *, GENERIC *, int , IFvalue *); -int DCTaskQuest( CKTcircuit *, GENERIC *, int , IFvalue *); -int DCTsetParm( CKTcircuit *, GENERIC *, int , IFvalue *); -int DCop( CKTcircuit *); -int DCtrCurv( CKTcircuit *, int ); -int DCtran( CKTcircuit *, int ); -int DISTOan(CKTcircuit *, int); -int NOISEan(CKTcircuit *, int); -int PZan( CKTcircuit *, int ); -int PZinit( CKTcircuit * ); -int PZpost( CKTcircuit * ); -int PZaskQuest( CKTcircuit *, GENERIC *, int , IFvalue *); -int PZsetParm( CKTcircuit *, GENERIC *, int , IFvalue *); -int SENaskQuest( CKTcircuit *, GENERIC *, int , IFvalue *); -void SENdestroy( SENstruct *); -int SENsetParm( CKTcircuit *, GENERIC *, int , IFvalue *); -int SENstartup( CKTcircuit *); -int SPIinit( IFfrontEnd *, IFsimulator **); -char * SPerror( int ); -int TFanal( CKTcircuit *, int ); -int TFaskQuest( CKTcircuit *, GENERIC *, int , IFvalue *); -int TFsetParm( CKTcircuit *, GENERIC *, int , IFvalue *); -int TRANaskQuest( CKTcircuit *, GENERIC *, int , IFvalue *); -int TRANsetParm( CKTcircuit *, GENERIC *, int , IFvalue *); -int TRANinit(CKTcircuit *, JOB *); -int NIacIter( CKTcircuit * ); -int NIcomCof( CKTcircuit * ); -int NIconvTest(CKTcircuit * ); -void NIdestroy(CKTcircuit * ); -int NIinit( CKTcircuit * ); -int NIintegrate( CKTcircuit *, double *, double *, double , int ); -int NIiter( CKTcircuit * , int ); -int NIpzMuller(PZtrial **, PZtrial *); -int NIpzComplex(PZtrial **, PZtrial *); -int NIpzSym(PZtrial **, PZtrial *); -int NIpzSym2(PZtrial **, PZtrial *); -int NIreinit( CKTcircuit *); -int NIsenReinit( CKTcircuit *); -#else /* stdc */ -int ACan(); -int ACaskQuest(); -int ACsetParm(); -int CKTacDump(); -int CKTacLoad(); -int CKTaccept(); -int CKTacct(); -int CKTask(); -int CKTaskAnalQ(); -int CKTaskNodQst(); -int CKTbindNode(); -void CKTbreakDump(); -int CKTclrBreak(); -int CKTcrtElt(); -int CKTdelTask(); -int CKTdestroy(); -int CKTdltAnal(); -int CKTdltInst(); -int CKTdltMod(); -int CKTdltNod(); -int CKTdoJob(); -void CKTdump(); -int CKTfndAnal(); -int CKTfndBranch(); -int CKTfndDev(); -int CKTfndMod(); -int CKTfndNode(); -int CKTfndTask(); -int CKTground(); -int CKTic(); -int CKTinit(); -int CKTinst2Node(); -int CKTlinkEq(); -int CKTload(); -int CKTmapNode(); -int CKTmkCur(); -int CKTmkNode(); -int CKTmkVolt(); -int CKTmodAsk(); -int CKTmodCrt(); -int CKTmodParam(); -int CKTnames(); -int CKTnewAnal(); -int CKTnewEq(); -int CKTnewNode(); -int CKTnewTask(); -IFuid CKTnodName(); -void CKTnodOut(); -CKTnode * CKTnum2nod(); -int CKTop(); -int CKTpModName(); -int CKTpName(); -int CKTparam(); -int CKTpzLoad(); -int CKTpzSetup(); -int CKTsenAC(); -int CKTsenComp(); -int CKTsenDCtran(); -int CKTsenLoad(); -void CKTsenPrint(); -int CKTsenSetup(); -int CKTsenUpdate(); -int CKTsetAnalPm(); -int CKTsetBreak(); -int CKTsetNodPm(); -int CKTsetOpt(); -int CKTsetup(); -int CKTpzSetup(); -int CKTtemp(); -char *CKTtrouble( ); -void CKTterr(); -int CKTtrunc(); -int CKTtypelook(); -int DCOaskQuest(); -int DCOsetParm(); -int DCTaskQuest(); -int DCTsetParm(); -int DCop(); -int DCtrCurv(); -int DCtran(); -int DISTOan(); -int NOISEan(); -int PZan(); -int PZaskQuest(); -int PZsetParm(); -int SENaskQuest(); -void SENdestroy(); -int SENsetParm(); -int SENstartup(); -int SPIinit(); -char * SPerror(); -int TFanal(); -int TFaskQuest(); -int TFsetParm(); -int TRANaskQuest(); -int TRANsetParm(); -int TRANinit( ); -int NIacIter(); -int NIcomCof(); -int NIconvTest(); -void NIdestroy(); -int NIinit(); -int NIintegrate(); -int NIiter(); -int NIpzMuller(); -int NIpzSolve(); -int NIreinit(); -int NIsenReinit(); -#endif /* stdc */ - -extern IFfrontEnd *SPfrontEnd; - -#endif /*CKT*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/complex.h b/plugins/models-jspice3-2.5/Include.3f5/complex.h deleted file mode 100644 index 42948e50..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/complex.h +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (c) 1985 Thomas L. Quarles - */ -#ifndef CMPLX -#define CMPLX "complex.h $Revision: 1.5 $ on $Date: 88/11/22 02:51:07 $ " - -/* header file containing definitions for complex functions - * - * Each expects two arguments for each complex number - a real and an - * imaginary part. - */ -typedef struct { - double real; - double imag; -} SPcomplex; - - -#define DC_ABS(a,b) (FABS(a) + FABS(b)) - -#ifdef notdef -#define DC_DIV(a,b,c,d,x,y) { \ - double r,s;\ - if(FABS(c)>FABS(d)) { \ - r=(d)/(c);\ - s=(c)+r*(d);\ - x=((a)+(b)*r)/s;\ - y=((b)-(a)*r)/s;\ - } else { \ - r=(c)/(d);\ - s=(d)+r*(c);\ - x=((a)*r+(b))/s;\ - y=((b)*r-(a))/s;\ - }\ -} -#endif /*notdef */ - -#ifndef HAS_SHORTMACRO -#define DC_DIVEQ(a,b,c,d) { \ - double r,s,x,y;\ - if(FABS(c)>FABS(d)) { \ - r=(d)/(c);\ - s=(c)+r*(d);\ - x=((*(a))+(*(b))*r)/s;\ - y=((*(b))-(*(a))*r)/s;\ - } else { \ - r=(c)/(d);\ - s=(d)+r*(c);\ - x=((*(a))*r+(*(b)))/s;\ - y=((*(b))*r-(*(a)))/s;\ - }\ - (*(a)) = x; \ - (*(b)) = y; \ -} -#else /*HAS_SHORTMACRO*/ -#define DC_DIVEQ DCdiveq -#ifdef __STDC__ -extern void DCdiveq(double*,double*,double,double); -#else /* stdc */ -extern void DCdiveq(); -#endif /* stdc */ -#endif /*HAS_SHORTMACRO*/ - -#ifndef HAS_SHORTMACRO -#define DC_MULT(a,b,c,d,x,y) { \ - *(x) = (a) * (c) - (b) * (d) ;\ - *(y) = (a) * (d) + (b) * (c) ;\ -} -#else /*HAS_SHORTMACRO*/ -#define DC_MULT DCmult -#ifdef __STDC__ -extern void DCmult(double,double,double,double,double*,double*); -#else /* stdc */ -extern void DCmult(); -#endif /* stdc */ -#endif /*HAS_SHORTMACRO*/ - -#ifdef notdef -#define DC_MINUS(a,b,c,d,x,y) { \ - (x) = (a) - (c) ;\ - (y) = (b) - (d) ;\ -} -#endif /*notdef*/ - -#ifndef HAS_SHORTMACRO -#define DC_MINUSEQ(a,b,c,d) { \ - *(a) -= (c) ;\ - *(b) -= (d) ;\ -} -#else /*HAS_SHORTMACRO*/ -#define DC_MINUSEQ DCminusEq -#ifdef __STDC__ -extern void DCminusEq(double*,double*,double,double); -#else /* stdc */ -extern void DCminusEq(); -#endif /* stdc */ -#endif /*HAS_SHORTMACRO*/ - -#define C_SQRT(A) { \ - double _mag, _a; \ - if ((A).imag == 0.0) { \ - if ((A).real < 0.0) { \ - (A).imag = sqrt(-(A).real); \ - (A).real = 0.0; \ - } else { \ - (A).real = sqrt((A).real); \ - (A).imag = 0.0; \ - } \ - } else { \ - _mag = sqrt((A).real * (A).real + (A).imag * (A).imag); \ - _a = (_mag - (A).real) / 2.0; \ - if (_a <= 0.0) { \ - (A).real = sqrt(_mag); \ - (A).imag /= (2.0 * (A).real); /*XXX*/ \ - } else { \ - _a = sqrt(_a); \ - (A).real = (A).imag / (2.0 * _a); \ - (A).imag = _a; \ - } \ - } \ - } - -#define C_MAG2(A) (((A).real = (A).real * (A).real + (A).imag * (A).imag), \ - (A).imag = 0.0) - -#define C_CONJ(A) ((A).imag *= -1.0) - -#define C_CONJEQ(A,B) { \ - (A).real = (B.real); \ - (A).imag = - (B.imag); \ - } - -#define C_EQ(A,B) { \ - (A).real = (B.real); \ - (A).imag = (B.imag); \ - } - -#define C_NORM(A,B) { \ - if ((A).real == 0.0 && (A).imag == 0.0) { \ - (B) = 0; \ - } else { \ - while (FABS((A).real) > 1.0 || FABS((A).imag) > 1.0) { \ - (B) += 1; \ - (A).real /= 2.0; \ - (A).imag /= 2.0; \ - } \ - while (FABS((A).real) <= 0.5 && FABS((A).imag) <= 0.5) { \ - (B) -= 1; \ - (A).real *= 2.0; \ - (A).imag *= 2.0; \ - } \ - } \ - } - -#define C_ABS(A) (sqrt((A).real * (A.real) + (A.imag * A.imag))) - -#define C_MUL(A,B) { \ - double TMP1, TMP2; \ - TMP1 = (A.real); \ - TMP2 = (B.real); \ - (A).real = TMP1 * TMP2 - (A.imag) * (B.imag); \ - (A).imag = TMP1 * (B.imag) + (A.imag) * TMP2; \ - } - -#define C_MULEQ(A,B,C) { \ - (A).real = (B.real) * (C.real) - (B.imag) * (C.imag); \ - (A).imag = (B.real) * (C.imag) + (B.imag) * (C.real); \ - } - -#define C_DIV(A,B) { \ - double _tmp, _mag; \ - _tmp = (A.real); \ - (A).real = _tmp * (B.real) + (A).imag * (B.imag); \ - (A).imag = - _tmp * (B.imag) + (A.imag) * (B.real); \ - _mag = (B.real) * (B.real) + (B.imag) * (B.imag); \ - (A).real /= _mag; \ - (A).imag /= _mag; \ - } - -#define C_DIVEQ(A,B,C) { \ - double _mag; \ - (A).real = (B.real) * (C.real) + (B.imag) * (C.imag); \ - (A).imag = (B.imag) * (C.real) - (B.real) * (C.imag) ; \ - _mag = (C.real) * (C.real) + (C.imag) * (C.imag); \ - (A).real /= _mag; \ - (A).imag /= _mag; \ - } - -#define C_ADD(A,B) { \ - (A).real += (B.real); \ - (A).imag += (B.imag); \ - } - -#define C_ADDEQ(A,B,C) { \ - (A).real = (B.real) + (C.real); \ - (A).imag = (B.imag) + (C.imag); \ - } - -#define C_SUB(A,B) { \ - (A).real -= (B.real); \ - (A).imag -= (B.imag); \ - } - -#define C_SUBEQ(A,B,C) { \ - (A).real = (B.real) - (C.real); \ - (A).imag = (B.imag) - (C.imag); \ - } - - - -#endif /*CMPLX*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/config.h b/plugins/models-jspice3-2.5/Include.3f5/config.h deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/config.h +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/const.h b/plugins/models-jspice3-2.5/Include.3f5/const.h deleted file mode 100644 index c03df684..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/const.h +++ /dev/null @@ -1,20 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ -/* - */ -#ifndef CONST -#define CONST - -#define CHARGE (1.6021918e-19) -#define CONSTCtoK (273.15) -#define CONSTboltz (1.3806226e-23) -#define REFTEMP 300.15 /* 27 degrees C */ - - extern double CONSTroot2; - extern double CONSTvt0; - extern double CONSTKoverQ; - extern double CONSTe; - -#endif /*CONST*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/cpdefs.h b/plugins/models-jspice3-2.5/Include.3f5/cpdefs.h deleted file mode 100644 index c527089d..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/cpdefs.h +++ /dev/null @@ -1,120 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group -**********/ - -/* - * General stuff for the C-shell parser. - */ - -/* Standard definitions */ -#ifndef CPDEFS -#define CPDEFS - -#include "cpstd.h" - -#define MAXWORDS 512 - -/* Information about spice commands. */ - -struct comm { - char *co_comname; /* The name of the command. */ - void (*co_func) (); /* The function that handles the command. */ - bool co_stringargs; /* Collapse the arguments into a string. */ - bool co_spiceonly; /* These can't be used from nutmeg. */ - bool co_major; /* Is this a "major" command? */ - long co_cctypes[4]; /* Bitmasks for command completion. */ - unsigned int co_env;/* print help message on this environment mask */ - int co_minargs; /* minimum number of arguments required */ - int co_maxargs; /* maximum number of arguments allowed */ - int (*co_argfn) (); /* The fn that prompts the user. */ - char *co_help; /* When these are printed, printf(string, av[0]) .. */ -}; - -#define LOTS 1000 - -/* The history list. Things get put here after the first (basic) parse. - * The word list will change later, so be sure to copy it. - */ - -struct histent { - int hi_event; - wordlist *hi_wlist; - struct histent *hi_next; - struct histent *hi_prev; -}; - -/* Variables that are accessible to the parser via $varname expansions. - * If the type is VT_LIST the value is a pointer to a list of the elements. - */ - -struct variable { - char va_type; - char *va_name; - union { - bool vV_bool; - int vV_num; - double vV_real; - char *vV_string; - struct variable *vV_list; - } va_V; - struct variable *va_next; /* Link. */ -} ; - -#define va_bool va_V.vV_bool -#define va_num va_V.vV_num -#define va_real va_V.vV_real -#define va_string va_V.vV_string -#define va_vlist va_V.vV_list - -#define VT_BOOL 1 -#define VT_NUM 2 -#define VT_REAL 3 -#define VT_STRING 4 -#define VT_LIST 5 - -/* The values returned by cp_userset(). */ - -#define US_OK 1 /* Either not relevant or nothing special. */ -#define US_READONLY 2 /* Complain and don't set this var. */ -#define US_DONTRECORD 3 /* Ok, but don't keep track of this one. */ -#define US_SIMVAR 4 /* OK, recorded in options struct */ -#define US_NOSIMVAR 5 /* Not OK, simulation param but circuit not loaded */ - -/* Aliases. These will be expanded if the word is the first in an input - * line. The substitution string may contain arg selectors. - */ - -struct alias { - char *al_name; /* The word to be substituted for. */ - wordlist *al_text; /* What to substitute for it. */ - struct alias *al_next; - struct alias *al_prev; -} ; - -/* The current record of what characters are special. */ - -#define CPC_BRR 004 /* Break word to right of character. */ -#define CPC_BRL 010 /* Break word to left of character. */ - -/* For quoting individual characters. '' strings are all quoted, but `` and - * "" strings are maintained as single words with the quotes around them. - * Note that this won't work on non-ascii machines. - */ - -#ifdef HAS_ASCII -#define quote(c) ((c) | 0200) -#define strip(c) ((c) & 0177) -#else /* HAS_ASCII */ -#define quote(c) (c) -#define strip(c) (c) -#endif /* !HAS_ASCII */ - -#define CT_ALIASES 1 -#define CT_LABEL 15 - -/* Get all the extern definitions... */ - -#include "cpextern.h" - -#endif /*CPDEFS*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/cpextern.h b/plugins/models-jspice3-2.5/Include.3f5/cpextern.h deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/cpextern.h +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/cpstd.h b/plugins/models-jspice3-2.5/Include.3f5/cpstd.h deleted file mode 100644 index d8d01093..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/cpstd.h +++ /dev/null @@ -1,74 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1986 Wayne A. Christopher, U. C. Berkeley CAD Group -**********/ - -/* - * Standard definitions. This file serves as the header file for std.c and - * wlist.c - */ - -#ifndef _STD_H_ -#define _STD_H_ - -typedef int bool; - -#include "misc.h" - -#ifndef FILE -/* XXX Bogus */ -# include <stdio.h> -#endif - -/* Doubly linked lists of words. */ - -struct wordlist { - char *wl_word; - struct wordlist *wl_next; - struct wordlist *wl_prev; -} ; - -typedef struct wordlist wordlist; - -/* Complex numbers. */ - -struct _complex { /* IBM portability... */ - double cx_real; - double cx_imag; -} ; - -typedef struct _complex complex; - -#define realpart(cval) ((struct _complex *) (cval))->cx_real -#define imagpart(cval) ((struct _complex *) (cval))->cx_imag - -/* Externs defined in std.c */ - -extern char *getusername(); -extern char *gethome(); -extern char *tildexpand(); -extern char *printnum(); -extern int cp_numdgt; -extern void fatal(); -#ifndef linux -extern void setenv(); -#endif /* linux */ -extern void cp_printword(); - -/* Externs from wlist.c */ - -extern char **wl_mkvec(); -extern char *wl_flatten(); -extern int wl_length(); -extern void wl_free(); -extern void wl_print(); -extern void wl_sort(); -extern wordlist *wl_append(); -extern wordlist *wl_build(); -extern wordlist *wl_copy(); -extern wordlist *wl_range(); -extern wordlist *wl_nthelem(); -extern wordlist *wl_reverse(); -extern wordlist *wl_splice(); - -#endif /* _STD_H_*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/devdefs.h b/plugins/models-jspice3-2.5/Include.3f5/devdefs.h deleted file mode 100644 index 748d9aa2..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/devdefs.h +++ /dev/null @@ -1,239 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ - -#ifndef DEV -#define DEV - -#include "optdefs.h" -#include "gendefs.h" -#include "ifsim.h" -#include "cktdefs.h" -#include "noisedef.h" -#include "complex.h" - -#ifdef __STDC__ -double DEVlimvds(double,double); -double DEVpnjlim(double,double,double,double,int*); -double DEVfetlim(double,double,double); -void DEVcmeyer(double,double,double,double,double,double,double,double,double, - double,double,double*,double*,double*,double,double,double,double); -void DEVqmeyer(double,double,double,double,double,double*,double*,double*, - double,double); -#ifdef notdef -void DEVcap(CKTcircuit*, double, double, double, double, double, double, - double, double, double, double, double, double, double, double, - double*, double*, double*, double*, double*, double*, double*, - double*, double*, double*, double*, double*, double, double, - double, double*, double*, double); -#endif -double DEVpred(CKTcircuit*,int); -#else /* stdc */ -double DEVlimvds(); -double DEVpnjlim(); -double DEVfetlim(); -void DEVcmeyer(); -void DEVqmeyer(); -#ifdef notdef -void DEVcap(); -#endif -double DEVpred(); -#endif /* stdc */ - -typedef struct SPICEdev { - IFdevice DEVpublic; - -#ifdef __STDC__ - int (*DEVparam)(int,IFvalue*,GENinstance*,IFvalue *); - /* routine to input a parameter to a device instance */ - int (*DEVmodParam)(int,IFvalue*,GENmodel*); - /* routine to input a paramater to a model */ - int (*DEVload)(GENmodel*,CKTcircuit*); - /* routine to load the device into the matrix */ - int (*DEVsetup)(SMPmatrix*,GENmodel*,CKTcircuit*,int*); - /* setup routine to preprocess devices once before soloution begins */ -#ifndef SPICE_3e - int (*DEVunsetup)(GENmodel*,CKTcircuit*); - /* clean up before running again */ -#endif - int (*DEVpzSetup)(SMPmatrix*,GENmodel*,CKTcircuit*,int*); - /* setup routine to process devices specially for pz analysis */ - int (*DEVtemperature)(GENmodel*,CKTcircuit*); - /* subroutine to do temperature dependent setup processing */ - int (*DEVtrunc)(GENmodel*,CKTcircuit*,double*); - /* subroutine to perform truncation error calc. */ - int (*DEVfindBranch)(CKTcircuit*,GENmodel*,IFuid); - /* subroutine to search for device branch eq.s */ - int (*DEVacLoad)(GENmodel*,CKTcircuit*); - /* ac analysis loading function */ - int (*DEVaccept)(CKTcircuit*,GENmodel*); - /* subroutine to call on acceptance of a timepoint */ - void (*DEVdestroy)(GENmodel**); - /* subroutine to destroy all models and instances */ - int (*DEVmodDelete)(GENmodel**,IFuid,GENmodel*); - /* subroutine to delete a model and all instances */ - int (*DEVdelete)(GENmodel*,IFuid,GENinstance**); - /* subroutine to delete an instance */ - int (*DEVsetic)(GENmodel*,CKTcircuit*); - /* routine to pick up device init conds from rhs */ - int (*DEVask)(CKTcircuit*,GENinstance*,int,IFvalue*,IFvalue*); - /* routine to ask about device details*/ - int (*DEVmodAsk)(CKTcircuit*,GENmodel*,int,IFvalue*); - /* routine to ask about model details*/ - int (*DEVpzLoad)(GENmodel*,CKTcircuit*,SPcomplex*); - /* routine to load for pole-zero analysis */ - int (*DEVconvTest)(GENmodel*,CKTcircuit*); - /* convergence test function */ - - int (*DEVsenSetup)(SENstruct*,GENmodel*); - /* routine to setup the device sensitivity info */ - int (*DEVsenLoad)(GENmodel*,CKTcircuit*); - /* routine to load the device sensitivity info */ - int (*DEVsenUpdate)(GENmodel*,CKTcircuit*); - /* routine to update the device sensitivity info */ - int (*DEVsenAcLoad)(GENmodel*,CKTcircuit*); - /* routine to load the device ac sensitivity info */ - void (*DEVsenPrint)(GENmodel*,CKTcircuit*); - /* subroutine to print out sensitivity info */ - int (*DEVsenTrunc)(GENmodel*,CKTcircuit*,double*); - /* subroutine to print out sensitivity info */ - int (*DEVdisto)(int,GENmodel*,CKTcircuit*); - /* procedure to do distortion operations */ - int (*DEVnoise)(int, int, GENmodel*,CKTcircuit*, Ndata *, double *); - /* noise routine */ - -#else /* stdc */ - - int (*DEVparam)(); /* routine to input a parameter to a device instance */ - int (*DEVmodParam)(); /* routine to input a paramater to a model */ - int (*DEVload)(); /* routine to load the device into the matrix */ - int (*DEVsetup)(); /* setup routine to preprocess devices once before - * soloution begins */ -#ifndef SPICE_3e - int (*DEVunsetup)(); /* clean up before running again */ -#endif - - int (*DEVpzSetup)(); /* setup routine to process devices specially for - * pz analysis */ - int (*DEVtemperature)(); /* subroutine to do temperature dependent - * setup processing */ - int (*DEVtrunc)(); /* subroutine to perform truncation error calc. */ - int (*DEVfindBranch)(); /* subroutine to search for device branch eq.s */ - int (*DEVacLoad)(); /* ac analysis loading function */ - int (*DEVaccept)(); /* subroutine to call on acceptance of a timepoint */ - void (*DEVdestroy)(); /* subroutine to destroy all models and instances */ - int (*DEVmodDelete)(); /* subroutine to delete a model and all instances */ - int (*DEVdelete)(); /* subroutine to delete an instance */ - int (*DEVsetic)(); /* routine to pick up device init conds from rhs */ - int (*DEVask)(); /* routine to ask about device details*/ - int (*DEVmodAsk)(); /* routine to ask about model details*/ - int (*DEVpzLoad)(); /* routine to load for pole-zero analysis */ - int (*DEVconvTest)(); /* convergence test function */ - - int (*DEVsenSetup)(); /* routine to setup the device sensitivity info */ - int (*DEVsenLoad)(); /* routine to load the device sensitivity info */ - int (*DEVsenUpdate)(); /* routine to update the device sensitivity info */ - int (*DEVsenAcLoad)(); /* routine to load the device ac sensitivity info*/ - void (*DEVsenPrint)(); /* subroutine to print out sensitivity info */ - int (*DEVsenTrunc)(); /* subroutine to print out sensitivity info */ - int (*DEVdisto)(); /* distortion routine */ - int (*DEVnoise)(); /* noise routine */ - -#endif /* stdc */ - - int *DEVinstSize; /* size of an instance */ - int *DEVmodSize; /* size of a model */ - -} SPICEdev; /* instance of structure for each possible type of device */ - -/* IOP( ) Input/output parameter - * IOPP( ) IO parameter which the principle value of a device (used - * for naming output variables in sensetivity) - * IOPA( ) IO parameter significant for time-varying (non-dc) analyses - * IOPAP( ) Principle value is significant for time-varying analyses - * IOPAA( ) IO parameter significant for ac analyses only - * IOPAAP( ) IO parameter principle value for ac analyses only - * IOPN( ) IO parameter significant for noise analyses only - * IOPR( ) Redundant IO parameter name (e.g. "vto" vs. "vt0") - * IOPX( ) IO parameter which is not used by sensetivity in any case - * - * IOPQ( ) This (Q) parameter must be non-zero for sensetivity of - * following Z parameter (model params done first) - * IOPZ( ) Prev. 'Q' parameter must be non-zero for sensetivity - * IOPQO( ) Like Q, but or-ed with previous Q value - * ....U( ) uninteresting for default "show" command output - */ - -#ifndef HAS_MINDATA - -# define IOP(a,b,c,d) { a, b, c|IF_SET|IF_ASK, d } -# define IOPU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_UNINTERESTING, d } -# define IOPP(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_PRINCIPAL, d } -# define IOPA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC, d } -# define IOPAU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC|IF_UNINTERESTING,d } -# define IOPAP(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC|IF_PRINCIPAL, d } -# define IOPAA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY, d } -# define IOPAAU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_UNINTERESTING,d} -# define IOPPA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_PRINCIPAL, d } -# define IOPN(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NOISE, d } -# define IOPR(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_REDUNDANT, NULL } -# define IOPX(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NONSENSE, d } -# define IOPXU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NONSENSE|IF_UNINTERESTING,\ - d } -# define IOPQ(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_SETQUERY, d } -# define IOPQU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_SETQUERY|IF_UNINTERESTING,\ - d } -# define IOPZ(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_CHKQUERY, d } -# define IOPZU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_CHKQUERY|IF_UNINTERESTING,\ - d } -# define IOPQO(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_ORQUERY, d } - -# define IP(a,b,c,d) { a , b , c|IF_SET , d } -# define OP(a,b,c,d) { a , b , c|IF_ASK , d } -# define OPU(a,b,c,d) { a , b , c|IF_ASK|IF_UNINTERESTING , d } -# define OPR(a,b,c,d) { a , b , c|IF_ASK|IF_REDUNDANT , d } -# define P(a,b,c,d) { a , b , c , d } - -#else /* HAS_MINDATA */ - -/* - * these are for the IBM PC which gets upset by the long description - * strings used in IFparm definitions because they add up to more than - * 64k of static data - */ - -# define IOP(a,b,c,d) { a, b, c|IF_SET|IF_ASK, NULL } -# define IOPU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_UNINTERESTING, NULL } -# define IOPP(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_PRINCIPAL, NULL } -# define IOPA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC, NULL } -# define IOPAU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC|IF_UNINTERESTING, NULL } -# define IOPAP(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC|IF_PRINCIPAL, NULL } -# define IOPAA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY, NULL } -# define IOPAAU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_UNINTERESTING,\ - NULL } -# define IOPPA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_PRINCIPAL,NULL } -# define IOPN(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NOISE, NULL } -# define IOPR(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_REDUNDANT, NULL } -# define IOPX(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NONSENSE, NULL } -# define IOPXU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NONSENSE|IF_UNINTERESTING,\ - NULL } -# define IOPQ(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_SETQUERY, NULL } -# define IOPQU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_SETQUERY|IF_UNINTERESTING,\ - NULL } -# define IOPZ(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_CHKQUERY, NULL } -# define IOPZU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_CHKQUERY|IF_UNINTERESTING,\ - NULL } -# define IOPQO(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_ORQUERY, NULL } - -# define IP(a,b,c,d) { a, b, c|IF_SET , NULL } -# define OP(a,b,c,d) { a, b, c|IF_ASK , NULL } -# define OPU(a,b,c,d) { a , b , c|IF_ASK|IF_UNINTERESTING , NULL } -# define OPR(a,b,c,d) { a , b , c|IF_ASK|IF_REDUNDANT , NULL } -# define P(a,b,c,d) { a, b, c , NULL } - -#endif /* HAS_MINDATA */ - -#define DEV_DEFAULT 0x1 - -#endif /*DEV*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/devdefs.h.orig b/plugins/models-jspice3-2.5/Include.3f5/devdefs.h.orig deleted file mode 100644 index f68b20c1..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/devdefs.h.orig +++ /dev/null @@ -1,235 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ - -#ifndef DEV -#define DEV - -#include "optdefs.h" -#include "gendefs.h" -#include "ifsim.h" -#include "cktdefs.h" -#include "noisedef.h" -#include "complex.h" - -#ifdef __STDC__ -double DEVlimvds(double,double); -double DEVpnjlim(double,double,double,double,int*); -double DEVfetlim(double,double,double); -void DEVcmeyer(double,double,double,double,double,double,double,double,double, - double,double,double*,double*,double*,double,double,double,double); -void DEVqmeyer(double,double,double,double,double,double*,double*,double*, - double,double); -#ifdef notdef -void DEVcap(CKTcircuit*, double, double, double, double, double, double, - double, double, double, double, double, double, double, double, - double*, double*, double*, double*, double*, double*, double*, - double*, double*, double*, double*, double*, double, double, - double, double*, double*, double); -#endif -double DEVpred(CKTcircuit*,int); -#else /* stdc */ -double DEVlimvds(); -double DEVpnjlim(); -double DEVfetlim(); -void DEVcmeyer(); -void DEVqmeyer(); -#ifdef notdef -void DEVcap(); -#endif -double DEVpred(); -#endif /* stdc */ - -typedef struct SPICEdev { - IFdevice DEVpublic; - -#ifdef __STDC__ - int (*DEVparam)(int,IFvalue*,GENinstance*,IFvalue *); - /* routine to input a parameter to a device instance */ - int (*DEVmodParam)(int,IFvalue*,GENmodel*); - /* routine to input a paramater to a model */ - int (*DEVload)(GENmodel*,CKTcircuit*); - /* routine to load the device into the matrix */ - int (*DEVsetup)(SMPmatrix*,GENmodel*,CKTcircuit*,int*); - /* setup routine to preprocess devices once before soloution begins */ - int (*DEVunsetup)(GENmodel*,CKTcircuit*); - /* clean up before running again */ - int (*DEVpzSetup)(SMPmatrix*,GENmodel*,CKTcircuit*,int*); - /* setup routine to process devices specially for pz analysis */ - int (*DEVtemperature)(GENmodel*,CKTcircuit*); - /* subroutine to do temperature dependent setup processing */ - int (*DEVtrunc)(GENmodel*,CKTcircuit*,double*); - /* subroutine to perform truncation error calc. */ - int (*DEVfindBranch)(CKTcircuit*,GENmodel*,IFuid); - /* subroutine to search for device branch eq.s */ - int (*DEVacLoad)(GENmodel*,CKTcircuit*); - /* ac analysis loading function */ - int (*DEVaccept)(CKTcircuit*,GENmodel*); - /* subroutine to call on acceptance of a timepoint */ - void (*DEVdestroy)(GENmodel**); - /* subroutine to destroy all models and instances */ - int (*DEVmodDelete)(GENmodel**,IFuid,GENmodel*); - /* subroutine to delete a model and all instances */ - int (*DEVdelete)(GENmodel*,IFuid,GENinstance**); - /* subroutine to delete an instance */ - int (*DEVsetic)(GENmodel*,CKTcircuit*); - /* routine to pick up device init conds from rhs */ - int (*DEVask)(CKTcircuit*,GENinstance*,int,IFvalue*,IFvalue*); - /* routine to ask about device details*/ - int (*DEVmodAsk)(CKTcircuit*,GENmodel*,int,IFvalue*); - /* routine to ask about model details*/ - int (*DEVpzLoad)(GENmodel*,CKTcircuit*,SPcomplex*); - /* routine to load for pole-zero analysis */ - int (*DEVconvTest)(GENmodel*,CKTcircuit*); - /* convergence test function */ - - int (*DEVsenSetup)(SENstruct*,GENmodel*); - /* routine to setup the device sensitivity info */ - int (*DEVsenLoad)(GENmodel*,CKTcircuit*); - /* routine to load the device sensitivity info */ - int (*DEVsenUpdate)(GENmodel*,CKTcircuit*); - /* routine to update the device sensitivity info */ - int (*DEVsenAcLoad)(GENmodel*,CKTcircuit*); - /* routine to load the device ac sensitivity info */ - void (*DEVsenPrint)(GENmodel*,CKTcircuit*); - /* subroutine to print out sensitivity info */ - int (*DEVsenTrunc)(GENmodel*,CKTcircuit*,double*); - /* subroutine to print out sensitivity info */ - int (*DEVdisto)(int,GENmodel*,CKTcircuit*); - /* procedure to do distortion operations */ - int (*DEVnoise)(int, int, GENmodel*,CKTcircuit*, Ndata *, double *); - /* noise routine */ - -#else /* stdc */ - - int (*DEVparam)(); /* routine to input a parameter to a device instance */ - int (*DEVmodParam)(); /* routine to input a paramater to a model */ - int (*DEVload)(); /* routine to load the device into the matrix */ - int (*DEVsetup)(); /* setup routine to preprocess devices once before - * soloution begins */ - int (*DEVunsetup)(); /* clean up before running again */ - - int (*DEVpzSetup)(); /* setup routine to process devices specially for - * pz analysis */ - int (*DEVtemperature)(); /* subroutine to do temperature dependent - * setup processing */ - int (*DEVtrunc)(); /* subroutine to perform truncation error calc. */ - int (*DEVfindBranch)(); /* subroutine to search for device branch eq.s */ - int (*DEVacLoad)(); /* ac analysis loading function */ - int (*DEVaccept)(); /* subroutine to call on acceptance of a timepoint */ - void (*DEVdestroy)(); /* subroutine to destroy all models and instances */ - int (*DEVmodDelete)(); /* subroutine to delete a model and all instances */ - int (*DEVdelete)(); /* subroutine to delete an instance */ - int (*DEVsetic)(); /* routine to pick up device init conds from rhs */ - int (*DEVask)(); /* routine to ask about device details*/ - int (*DEVmodAsk)(); /* routine to ask about model details*/ - int (*DEVpzLoad)(); /* routine to load for pole-zero analysis */ - int (*DEVconvTest)(); /* convergence test function */ - - int (*DEVsenSetup)(); /* routine to setup the device sensitivity info */ - int (*DEVsenLoad)(); /* routine to load the device sensitivity info */ - int (*DEVsenUpdate)(); /* routine to update the device sensitivity info */ - int (*DEVsenAcLoad)(); /* routine to load the device ac sensitivity info*/ - void (*DEVsenPrint)(); /* subroutine to print out sensitivity info */ - int (*DEVsenTrunc)(); /* subroutine to print out sensitivity info */ - int (*DEVdisto)(); /* distortion routine */ - int (*DEVnoise)(); /* noise routine */ - -#endif /* stdc */ - - int *DEVinstSize; /* size of an instance */ - int *DEVmodSize; /* size of a model */ - -} SPICEdev; /* instance of structure for each possible type of device */ - -/* IOP( ) Input/output parameter - * IOPP( ) IO parameter which the principle value of a device (used - * for naming output variables in sensetivity) - * IOPA( ) IO parameter significant for time-varying (non-dc) analyses - * IOPAP( ) Principle value is significant for time-varying analyses - * IOPAA( ) IO parameter significant for ac analyses only - * IOPAAP( ) IO parameter principle value for ac analyses only - * IOPN( ) IO parameter significant for noise analyses only - * IOPR( ) Redundant IO parameter name (e.g. "vto" vs. "vt0") - * IOPX( ) IO parameter which is not used by sensetivity in any case - * - * IOPQ( ) This (Q) parameter must be non-zero for sensetivity of - * following Z parameter (model params done first) - * IOPZ( ) Prev. 'Q' parameter must be non-zero for sensetivity - * IOPQO( ) Like Q, but or-ed with previous Q value - * ....U( ) uninteresting for default "show" command output - */ - -#ifndef HAS_MINDATA - -# define IOP(a,b,c,d) { a, b, c|IF_SET|IF_ASK, d } -# define IOPU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_UNINTERESTING, d } -# define IOPP(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_PRINCIPAL, d } -# define IOPA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC, d } -# define IOPAU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC|IF_UNINTERESTING,d } -# define IOPAP(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC|IF_PRINCIPAL, d } -# define IOPAA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY, d } -# define IOPAAU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_UNINTERESTING,d} -# define IOPPA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_PRINCIPAL, d } -# define IOPN(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NOISE, d } -# define IOPR(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_REDUNDANT, NULL } -# define IOPX(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NONSENSE, d } -# define IOPXU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NONSENSE|IF_UNINTERESTING,\ - d } -# define IOPQ(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_SETQUERY, d } -# define IOPQU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_SETQUERY|IF_UNINTERESTING,\ - d } -# define IOPZ(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_CHKQUERY, d } -# define IOPZU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_CHKQUERY|IF_UNINTERESTING,\ - d } -# define IOPQO(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_ORQUERY, d } - -# define IP(a,b,c,d) { a , b , c|IF_SET , d } -# define OP(a,b,c,d) { a , b , c|IF_ASK , d } -# define OPU(a,b,c,d) { a , b , c|IF_ASK|IF_UNINTERESTING , d } -# define OPR(a,b,c,d) { a , b , c|IF_ASK|IF_REDUNDANT , d } -# define P(a,b,c,d) { a , b , c , d } - -#else /* HAS_MINDATA */ - -/* - * these are for the IBM PC which gets upset by the long description - * strings used in IFparm definitions because they add up to more than - * 64k of static data - */ - -# define IOP(a,b,c,d) { a, b, c|IF_SET|IF_ASK, NULL } -# define IOPU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_UNINTERESTING, NULL } -# define IOPP(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_PRINCIPAL, NULL } -# define IOPA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC, NULL } -# define IOPAU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC|IF_UNINTERESTING, NULL } -# define IOPAP(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC|IF_PRINCIPAL, NULL } -# define IOPAA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY, NULL } -# define IOPAAU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_UNINTERESTING,\ - NULL } -# define IOPPA(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_AC_ONLY|IF_PRINCIPAL,NULL } -# define IOPN(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NOISE, NULL } -# define IOPR(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_REDUNDANT, NULL } -# define IOPX(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NONSENSE, NULL } -# define IOPXU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_NONSENSE|IF_UNINTERESTING,\ - NULL } -# define IOPQ(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_SETQUERY, NULL } -# define IOPQU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_SETQUERY|IF_UNINTERESTING,\ - NULL } -# define IOPZ(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_CHKQUERY, NULL } -# define IOPZU(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_CHKQUERY|IF_UNINTERESTING,\ - NULL } -# define IOPQO(a,b,c,d) { a, b, c|IF_SET|IF_ASK|IF_ORQUERY, NULL } - -# define IP(a,b,c,d) { a, b, c|IF_SET , NULL } -# define OP(a,b,c,d) { a, b, c|IF_ASK , NULL } -# define OPU(a,b,c,d) { a , b , c|IF_ASK|IF_UNINTERESTING , NULL } -# define OPR(a,b,c,d) { a , b , c|IF_ASK|IF_REDUNDANT , NULL } -# define P(a,b,c,d) { a, b, c , NULL } - -#endif /* HAS_MINDATA */ - -#define DEV_DEFAULT 0x1 - -#endif /*DEV*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/devsup.c b/plugins/models-jspice3-2.5/Include.3f5/devsup.c deleted file mode 100644 index e92d9835..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/devsup.c +++ /dev/null @@ -1,428 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ - - /* support routines for device models */ - -#include "spice.h" -#include "devdefs.h" -#include "cktdefs.h" -#include "util.h" -#include "suffix.h" - - /* DEVlimvds(vnew,vold) - * limit the per-iteration change of VDS - */ - -double -DEVlimvds(vnew,vold) - double vnew; - double vold; - -{ - - if(vold >= 3.5) { - if(vnew > vold) { - vnew = MIN(vnew,(3 * vold) +2); - } else { - if (vnew < 3.5) { - vnew = MAX(vnew,2); - } - } - } else { - if(vnew > vold) { - vnew = MIN(vnew,4); - } else { - vnew = MAX(vnew,-.5); - } - } - return(vnew); -} - - - /* DEVpnjlim(vnew,vold,vt,vcrit,icheck) - * limit the per-iteration change of PN junction voltages - */ - - -double -DEVpnjlim(vnew,vold,vt,vcrit,icheck) - - double vnew; - double vold; - double vt; - double vcrit; - int *icheck; - -{ - double arg; - - if((vnew > vcrit) && (FABS(vnew - vold) > (vt + vt))) { - if(vold > 0) { - arg = 1 + (vnew - vold) / vt; - if(arg > 0) { - vnew = vold + vt * log(arg); - } else { - vnew = vcrit; - } - } else { - vnew = vt *log(vnew/vt); - } - *icheck = 1; - } else { - *icheck = 0; - } - return(vnew); -} - - /* - * DEVfetlim(vnew,vold.vto) - * - * limit the per-iteration change of FET voltages - */ - -double -DEVfetlim(vnew,vold,vto) - double vnew; - double vold; - double vto; - -{ - double vtsthi; - double vtstlo; - double vtox; - double delv; - double vtemp; - - vtsthi = FABS(2*(vold-vto))+2; - vtstlo = vtsthi/2 +2; - vtox = vto + 3.5; - delv = vnew-vold; - - if (vold >= vto) { - if(vold >= vtox) { - if(delv <= 0) { - /* going off */ - if(vnew >= vtox) { - if(-delv >vtstlo) { - vnew = vold - vtstlo; - } - } else { - vnew = MAX(vnew,vto+2); - } - } else { - /* staying on */ - if(delv >= vtsthi) { - vnew = vold + vtsthi; - } - } - } else { - /* middle region */ - if(delv <= 0) { - /* decreasing */ - vnew = MAX(vnew,vto-.5); - } else { - /* increasing */ - vnew = MIN(vnew,vto+4); - } - } - } else { - /* off */ - if(delv <= 0) { - if(-delv >vtsthi) { - vnew = vold - vtsthi; - } - } else { - vtemp = vto + .5; - if(vnew <= vtemp) { - if(delv >vtstlo) { - vnew = vold + vtstlo; - } - } else { - vnew = vtemp; - } - } - } - return(vnew); -} - - - /* - * DEVcmeyer(vgs0,vgd0,vgb0,von0,vdsat0, - * vgs1,vgd1,vgb1,covlgs,covlgd,covlgb, - * cgs0,cgd0,cgb0, - * von,vdsat) - * - * Compute the MOS overlap capacitances as functions of the - * device terminal voltages - */ - -void -DEVcmeyer(vgs0,vgd0,vgb0,von0,vdsat0, - vgs1,vgd1,vgb1,covlgs,covlgd,covlgb, - cgs,cgd,cgb, - phi,cox,von,vdsat) -double vgs0; /* initial voltage gate-source */ -double vgd0; /* initial voltage gate-drain */ -double vgb0; /* initial voltage gate-bulk */ -double von0; -double vdsat0; -double vgs1; /* final voltage gate-source */ -double vgd1; /* final voltage gate-drain */ -double vgb1; /* final voltage gate-bulk */ -double covlgs; /* overlap capacitance gate-source */ -double covlgd; /* overlap capacitance gate-drain */ -double covlgb; /* overlap capacitance gate-bulk */ -register double *cgs; -register double *cgd; -register double *cgb; -double phi; -double cox; -double von; -double vdsat; - -{ - - - double vdb; - double vdbsat; - double vddif; - double vddif1; - double vddif2; - double vgbt; - - *cgs = 0; - *cgd = 0; - *cgb = 0; - - vgbt = vgs1-von; - if (vgbt <= -phi) { - *cgb = cox; - } else if (vgbt <= -phi/2) { - *cgb = -vgbt*cox/phi; - } else if (vgbt <= 0) { - *cgb = -vgbt*cox/phi; - *cgs = cox/(7.5e-1*phi)*vgbt+cox/1.5; - } else { - vdbsat = vdsat-(vgs1-vgb1); - vdb = vgb1-vgd1; - if (vdbsat <= vdb) { - *cgs = cox/1.5; - } else { - vddif = 2.0*vdbsat-vdb; - vddif1 = vdbsat-vdb-1.0e-12; - vddif2 = vddif*vddif; - *cgd = cox*(1.0-vdbsat*vdbsat/vddif2)/1.5; - *cgs = cox*(1.0-vddif1*vddif1/vddif2)/1.5; - } - } - - vgbt = vgs0-von0; - if (vgbt <= -phi) { - *cgb += cox; - } else if (vgbt <= -phi/2) { - *cgb += -vgbt*cox/phi; - } else if (vgbt <= 0) { - *cgb += -vgbt*cox/phi; - *cgs += cox/(7.5e-1*phi)*vgbt+cox/1.5; - } else { - vdbsat = vdsat0-(vgs0-vgb0); - vdb = vgb0-vgd0; - if (vdbsat <= vdb) { - *cgs += cox/1.5; - } else { - vddif = 2.0*vdbsat-vdb; - vddif1 = vdbsat-vdb-1.0e-12; - vddif2 = vddif*vddif; - *cgd += cox*(1.0-vdbsat*vdbsat/vddif2)/1.5; - *cgs += cox*(1.0-vddif1*vddif1/vddif2)/1.5; - } - } - - *cgs = *cgs *.5 + covlgs; - *cgd = *cgd *.5 + covlgd; - *cgb = *cgb *.5 + covlgb; -} - - - /* - * DEVqmeyer(vgs,vgd,vgb,von,vdsat,capgs,capgd,capgb,phi,cox) - * - * - * - * Compute the MOS overlap capacitances as functions of the - * device terminal voltages - */ - -/* ARGSUSED */ /* because vgb is no longer used */ -void -DEVqmeyer(vgs,vgd,vgb,von,vdsat,capgs,capgd,capgb,phi,cox) -double vgs; /* initial voltage gate-source */ -double vgd; /* initial voltage gate-drain */ -double vgb; /* initial voltage gate-bulk */ -double von; -double vdsat; -double *capgs; /* non-constant portion of g-s overlap capacitance */ -double *capgd; /* non-constant portion of g-d overlap capacitance */ -double *capgb; /* non-constant portion of g-b overlap capacitance */ -double phi; -double cox; /* oxide capactiance */ - -{ - - - double vds; - double vddif; - double vddif1; - double vddif2; - double vgst; - - - vgst = vgs-von; - if (vgst <= -phi) { - *capgb = cox/2; - *capgs = 0; - *capgd = 0; - } else if (vgst <= -phi/2) { - *capgb = -vgst*cox/(2*phi); - *capgs = 0; - *capgd = 0; - } else if (vgst <= 0) { - *capgb = -vgst*cox/(2*phi); - *capgs = vgst*cox/(1.5*phi)+cox/3; - *capgd = 0; - } else { - vds = vgs-vgd; - if (vdsat <= vds) { - *capgs = cox/3; - *capgd = 0; - *capgb = 0; - } else { - vddif = 2.0*vdsat-vds; - vddif1 = vdsat-vds/*-1.0e-12*/; - vddif2 = vddif*vddif; - *capgd = cox*(1.0-vdsat*vdsat/vddif2)/3; - *capgs = cox*(1.0-vddif1*vddif1/vddif2)/3; - *capgb = 0; - } - } - -} - -#ifdef notdef -/* XXX This is no longer used, apparently */ -void -DEVcap(ckt,vgd,vgs,vgb,covlgd,covlgs,covlgb, - capbd,capbs,cggb,cgdb,cgsb,cbgb,cbdb,cbsb, - gcggb,gcgdb,gcgsb,gcbgb,gcbdb,gcbsb, - gcdgb,gcddb,gcdsb,gcsgb,gcsdb,gcssb, - qgate,qchan,qbulk,qdrn,qsrc,xqc) - -register CKTcircuit *ckt; - double vgd; - double vgs; - double vgb; - double covlgd; - double covlgs; - double covlgb; - double capbd; - double capbs; - double cggb; - double cgdb; - double cgsb; - double cbgb; - double cbdb; - double cbsb; - double *gcggb; - double *gcgdb; - double *gcgsb; - double *gcbgb; - double *gcbdb; - double *gcbsb; - double *gcdgb; - double *gcddb; - double *gcdsb; - double *gcsgb; - double *gcsdb; - double *gcssb; - double qgate; - double qchan; - double qbulk; - double *qdrn; - double *qsrc; - double xqc; - - /* - * compute equivalent conductances - * divide up the channel charge (1-xqc)/xqc to source and drain - */ -{ - - double gcd; - double gcdxd; - double gcdxs; - double gcg; - double gcgxd; - double gcgxs; - double gcs; - double gcsxd; - double gcsxs; - double qgb; - double qgd; - double qgs; - - gcg = (cggb+cbgb)*ckt->CKTag[1]; - gcd = (cgdb+cbdb)*ckt->CKTag[1]; - gcs = (cgsb+cbsb)*ckt->CKTag[1]; - gcgxd = -xqc*gcg; - gcgxs = -(1-xqc)*gcg; - gcdxd = -xqc*gcd; - gcdxs = -(1-xqc)*gcd; - gcsxd = -xqc*gcs; - gcsxs = -(1-xqc)*gcs; - *gcdgb = gcgxd-covlgd*ckt->CKTag[1]; - *gcddb = gcdxd+(capbd+covlgd)*ckt->CKTag[1]; - *gcdsb = gcsxd; - *gcsgb = gcgxs-covlgs*ckt->CKTag[1]; - *gcsdb = gcdxs; - *gcssb = gcsxs+(capbs+covlgs)*ckt->CKTag[1]; - *gcggb = (cggb+covlgd+covlgs+covlgb)*ckt->CKTag[1]; - *gcgdb = (cgdb-covlgd)*ckt->CKTag[1]; - *gcgsb = (cgsb-covlgs)*ckt->CKTag[1]; - *gcbgb = (cbgb-covlgb)*ckt->CKTag[1]; - *gcbdb = (cbdb-capbd)*ckt->CKTag[1]; - *gcbsb = (cbsb-capbs)*ckt->CKTag[1]; - /* - * compute total terminal charges - */ - qgd = covlgd*vgd; - qgs = covlgs*vgs; - qgb = covlgb*vgb; - qgate = qgate+qgd+qgs+qgb; - qbulk = qbulk-qgb; - *qdrn = xqc*qchan-qgd; - *qsrc = (1-xqc)*qchan-qgs; - /* - * finished - */ -} -#endif - -double DEVpred(ckt,loct) - CKTcircuit *ckt; - int loct; -{ - - /* predict a value for the capacitor at loct by - * extrapolating from previous values - */ - -#ifndef NEWTRUNC - double xfact; - xfact = ckt->CKTdelta/ckt->CKTdeltaOld[1]; - return( ( (1+xfact) * *(ckt->CKTstate1+loct) ) - - ( xfact * *(ckt->CKTstate2+loct) ) ); -#endif /*NEWTRUNC*/ - -} diff --git a/plugins/models-jspice3-2.5/Include.3f5/distodef.h b/plugins/models-jspice3-2.5/Include.3f5/distodef.h deleted file mode 100644 index 2424f6f3..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/distodef.h +++ /dev/null @@ -1,220 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1988 Jaijeet S Roychowdhury -**********/ - -#ifndef DISTODEF -#define DISTODEF - -#ifdef D_DBG_ALLTIMES -#define D_DBG_BLOCKTIMES -#define D_DBG_SMALLTIMES -#endif - -#include "jobdefs.h" -#include "gendefs.h" -#include "cktdefs.h" - -/* structure for passing a large number of values */ -typedef struct { - -double cxx; -double cyy; -double czz; -double cxy; -double cyz; -double cxz; -double cxxx; -double cyyy; -double czzz; -double cxxy; -double cxxz; -double cxyy; -double cyyz; -double cxzz; -double cyzz; -double cxyz; -double r1h1x; -double i1h1x; -double r1h1y; -double i1h1y; -double r1h1z; -double i1h1z; -double r1h2x; -double i1h2x; -double r1h2y; -double i1h2y; -double r1h2z; -double i1h2z; -double r2h11x; -double i2h11x; -double r2h11y; -double i2h11y; -double r2h11z; -double i2h11z; -double h2f1f2x; -double ih2f1f2x; -double h2f1f2y; -double ih2f1f2y; -double h2f1f2z; -double ih2f1f2z; - -} DpassStr; - -/* structure to keep derivatives of upto 3rd order w.r.t 3 variables */ -typedef struct { -double value; -double d1_p; -double d1_q; -double d1_r; -double d2_p2; -double d2_q2; -double d2_r2; -double d2_pq; -double d2_qr; -double d2_pr; -double d3_p3; -double d3_q3; -double d3_r3; -double d3_p2q; -double d3_p2r; -double d3_pq2; -double d3_q2r; -double d3_pr2; -double d3_qr2; -double d3_pqr; -} Dderivs; - - /* structure used to describe an DISTO analysis to be performed */ -typedef struct { - int JOBtype; - JOB *JOBnextJob; /* pointer to next thing to do */ - char *JOBname; /* name of this job */ - double DstartF1; /* the start value of the higher frequency for distortion analysis */ - double DstopF1; /* the stop value ove above */ - double DfreqDelta; /* multiplier for decade/octave stepping, */ - /* step for linear steps. */ - double DsaveF1; /* frequency at which we left off last time*/ - int DstepType; /* values described below */ - int DnumSteps; - int Df2wanted; /* set if f2overf1 is given in the disto command line */ - int Df2given; /* set if at least 1 source has an f2 input */ - double Df2ovrF1; /* ratio of f2 over f1 if 2 frequencies given - should be < 1 */ - double Domega1; /* current omega1 */ - double Domega2; /* current omega2 */ - - double* r1H1ptr; - double* i1H1ptr; - double* r2H11ptr; - double* i2H11ptr; - double* r3H11ptr; - double* i3H11ptr; - double* r1H2ptr; /* distortion analysis Volterra transforms */ - double* i1H2ptr; - double* r2H12ptr; - double* i2H12ptr; - double* r2H1m2ptr; - double* i2H1m2ptr; - double* r3H1m2ptr; - double* i3H1m2ptr; - - double** r1H1stor; - double** i1H1stor; - double** r2H11stor; - double** i2H11stor; - double** r3H11stor; - double** i3H11stor; /*these store computed values*/ - double** r1H2stor; /* for the plots */ - double** i1H2stor; - double** r2H12stor; - double** i2H12stor; - double** r2H1m2stor; - double** i2H1m2stor; - double** r3H1m2stor; - double** i3H1m2stor; -} DISTOAN; - -/* available step types: */ - -#define DECADE 1 -#define OCTAVE 2 -#define LINEAR 3 - -/* defns. used in DsetParm */ - -#define D_DEC 1 -#define D_OCT 2 -#define D_LIN 3 -#define D_START 4 -#define D_STOP 5 -#define D_STEPS 6 -#define D_F2OVRF1 7 - -/* defns. used by CKTdisto for calling different functions */ - -#define D_SETUP 1 -#define D_F1 2 -#define D_F2 3 -#define D_TWOF1 4 -#define D_THRF1 5 -#define D_F1PF2 6 -#define D_F1MF2 7 -#define D_2F1MF2 8 -#define D_RHSF1 9 -#define D_RHSF2 10 - -#ifdef __STDC__ -extern int DsetParm(CKTcircuit*,GENERIC*,int,IFvalue*); -extern int DaskQuest(CKTcircuit*,GENERIC*,int,IFvalue*); -extern double D1i2F1(double, double, double); -extern double D1i3F1(double, double, double, double, double, double); -extern double D1iF12(double, double, double, double, double); -extern double D1i2F12(double, double, double, double, double, double, double, double, double, double); -extern double D1n2F1(double, double, double); -extern double D1n3F1(double, double, double, double, double, double); -extern double D1nF12(double, double, double, double, double); -extern double D1n2F12(double, double, double, double, double, double, double, double, double, double); -extern double DFn2F1(double, double, double, double, double, - double, double, double, double, double, double, double); -extern double DFi2F1(double, double, double, double, double, - double, double, double, double, double, double, double); -extern double DFi3F1(double, double, double, double, - double, double, double, double, double, double, double, - double, double, double, double, double, double, double, - double, double, double, double, double, double, double, - double, double, double); -extern double DFn3F1(double, double, double, double, - double, double, double, double, double, double, double, - double, double, double, double, double, double, double, - double, double, double, double, double, double, double, - double, double, double); -extern double DFnF12(double, double, double, double, - double, double, double, double, double, double, double, - double, double, double, double, double, double, double); -extern double DFiF12(double, double, double, double, - double, double, double, double, double, double, double, - double, double, double, double, double, double, double); -extern double DFn2F12(DpassStr*); -extern double DFi2F12(DpassStr*); -#else /* stdc */ -extern int DsetParm(); -extern int DaskQuest(); -extern double D1i2F1(); -extern double D1i3F1(); -extern double D1iF12(); -extern double D1i2F12(); -extern double D1n2F1(); -extern double D1n3F1(); -extern double D1nF12(); -extern double D1n2F12(); -extern double DFn2F1(); -extern double DFi2F1(); -extern double DFn3F1(); -extern double DFi3F1(); -extern double DFnF12(); -extern double DFiF12(); -extern double DFn2F12(); -extern double DFi2F12(); -#endif /* stdc */ -#endif /*DISTODEFS*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/fteconst.h b/plugins/models-jspice3-2.5/Include.3f5/fteconst.h deleted file mode 100644 index c36ab9e0..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/fteconst.h +++ /dev/null @@ -1,101 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group -**********/ - -/* Vector types. */ - -#ifndef _CONSTANTS_ -#define _CONSTANTS_ - -#define SV_NOTYPE 0 -#define SV_TIME 1 -#define SV_FREQUENCY 2 -#define SV_VOLTAGE 3 -#define SV_CURRENT 4 -#define SV_OUTPUT_N_DENS 5 -#define SV_OUTPUT_NOISE 6 -#define SV_INPUT_N_DENS 7 -#define SV_INPUT_NOISE 8 -#define SV_POLE 9 -#define SV_ZERO 10 -#define SV_SPARAM 11 - -#ifdef notdef -#define SV_OUTPUT_NOISE 5 -#define SV_INPUT_NOISE 6 -#define SV_HD2 7 -#define SV_HD3 8 -#define SV_DIM2 9 -#define SV_SIM2 10 -#define SV_DIM3 11 -#define SV_POLE 12 -#define SV_ZERO 13 -#define SV_SPARAM 14 -#endif - -/* Dvec flags. */ - -#define VF_REAL (1 << 0) /* The data is real. */ -#define VF_COMPLEX (1 << 1) /* The data is complex. */ -#define VF_ACCUM (1 << 2) /* writedata should save this vector. */ -#define VF_PLOT (1 << 3) /* writedata should incrementally plot it. */ -#define VF_PRINT (1 << 4) /* writedata should print this vector. */ -#define VF_MINGIVEN (1 << 5) /* The v_minsignal value is valid. */ -#define VF_MAXGIVEN (1 << 6) /* The v_maxsignal value is valid. */ -#define VF_PERMANENT (1 << 7) /* Don't garbage collect this vector. */ - -/* Grid types. */ - -/* -#define GRID_NONE 0 -#define GRID_LIN 1 -#define GRID_LOGLOG 2 -#define GRID_XLOG 3 -#define GRID_YLOG 4 -#define GRID_POLAR 5 -#define GRID_SMITH 6 -*/ - -/* SMITHGRID is only a smith grid, SMITH transforms the data */ -typedef enum { - GRID_NONE = 0, GRID_LIN = 1, GRID_LOGLOG = 2, GRID_XLOG = 3, - GRID_YLOG = 4, GRID_POLAR = 5, GRID_SMITH = 6, GRID_SMITHGRID = 7 -} GRIDTYPE; - -/* Plot types. */ - -/* -#define PLOT_LIN 0 -#define PLOT_COMB 1 -#define PLOT_POINT 2 -*/ - -typedef enum { - PLOT_LIN = 0, PLOT_COMB = 1, PLOT_POINT = 2 -} PLOTTYPE; - -/* The types for command completion keywords. Note that these constants - * are built into cmdtab.c, so DON'T change them unless you want to - * change all of the bitmasks in cp_coms. - * Note that this is spice- and nutmeg- dependent. - */ - -#define CT_FILENAME 0 -#define CT_CKTNAMES 2 -#define CT_COMMANDS 3 -#define CT_DBNUMS 4 -#define CT_DEVNAMES 5 -#define CT_LISTINGARGS 6 -#define CT_NODENAMES 7 -#define CT_PLOT 8 -#define CT_PLOTKEYWORDS 9 -#define CT_RUSEARGS 10 -#define CT_STOPARGS 11 -#define CT_UDFUNCS 12 -#define CT_VARIABLES 13 -#define CT_VECTOR 14 -#define CT_TYPENAMES 16 - -#endif - diff --git a/plugins/models-jspice3-2.5/Include.3f5/ftedata.h b/plugins/models-jspice3-2.5/Include.3f5/ftedata.h deleted file mode 100644 index f8a087c4..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/ftedata.h +++ /dev/null @@ -1,71 +0,0 @@ - -/* RCS Info: $Revision: 1.5 $ on $Date: 88/11/17 02:35:21 $ - * $Source: /ic3/quarles/shared/include/RCS/FTEdata.h,v $ - * Copyright (c) 1985 Wayne A. Christopher, U. C. Berkeley CAD Group - * - * Structures used for representing spice data in nutmeg. - */ - -#ifndef FTEdata_h -#define FTEdata_h - -#include "cpstd.h" /* for struct complex */ -#include "fteconst.h" - -/* A (possibly multi-dimensional) data vector. The data is represented - * internally by a 1-d array. The number of dimensions and the size - * of each dimension is recorded, along with v_length, the total size of - * the array. If the dimensionality is 0 or 1, v_length is significant - * instead of v_numdims and v_dims, and the vector is handled in the old - * manner. - */ - -#define MAXDIMS 8 - -struct dvec { - char *v_name; /* Same as so_vname. */ - int v_type; /* Same as so_vtype. */ - short v_flags; /* Flags (a combination of VF_*). */ - double *v_realdata; /* Real data. */ - complex *v_compdata; /* Complex data. */ - double v_minsignal; /* Minimum value to plot. */ - double v_maxsignal; /* Maximum value to plot. */ - GRIDTYPE v_gridtype; /* One of GRID_*. */ - PLOTTYPE v_plottype; /* One of PLOT_*. */ - int v_length; /* Length of the vector. */ - int v_rlength; /* How much space we really have. */ - int v_outindex; /* Index if writedata is building the vector. */ - int v_linestyle; /* What line style we are using. */ - int v_color; /* What color we are using. */ - char *v_defcolor; /* The name of a color to use. */ - int v_numdims; /* How many dims -- 0 = scalar (len = 1). */ - int v_dims[MAXDIMS]; /* The actual size in each dimension. */ - struct plot *v_plot; /* The plot structure (if it has one). */ - struct dvec *v_next; /* Link for list of plot vectors. */ - struct dvec *v_link2; /* Extra link for things like print. */ - struct dvec *v_scale; /* If this has a non-standard scale... */ -} ; - -#define isreal(v) ((v)->v_flags & VF_REAL) -#define iscomplex(v) ((v)->v_flags & VF_COMPLEX) - -/* The information for a particular set of vectors that come from one - * plot. - */ - -struct plot { - char *pl_title; /* The title card. */ - char *pl_date; /* Date. */ - char *pl_name; /* The plot name. */ - char *pl_typename; /* Tran1, op2, etc. */ - struct dvec *pl_dvecs; /* The data vectors in this plot. */ - struct dvec *pl_scale; /* The "scale" for the rest of the vectors. */ - struct plot *pl_next; /* List of plots. */ - wordlist *pl_commands; /* Commands to execute for this plot. */ - struct variable *pl_env;/* The 'environment' for this plot. */ - char *pl_ccom; /* The ccom struct for this plot. */ - bool pl_written; /* Some or all of the vecs have been saved. */ - int pl_ndims; /* Number of dimensions */ -} ; - -#endif /* FTEdata_h */ diff --git a/plugins/models-jspice3-2.5/Include.3f5/ftedefs.h b/plugins/models-jspice3-2.5/Include.3f5/ftedefs.h deleted file mode 100644 index accd8850..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/ftedefs.h +++ /dev/null @@ -1,58 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group -**********/ - -/* - * - * General front end stuff. - */ -#ifndef FTEdefs_h -#define FTEdefs_h - -#define DEF_WIDTH 80 /* Line printer width. */ -#define DEF_HEIGHT 60 /* Line printer height. */ -#define IPOINTMIN 20 /* When we start plotting incremental plots. */ -#include "fteparse.h" -#include "fteinp.h" - -/* The curcuits that are currently available to the user. */ - -struct circ { - char *ci_name; /* What the circuit can be called. */ - char *ci_ckt; /* The CKTcircuit structure. */ - INPtables *ci_symtab; /* The INP symbol table. */ - struct line *ci_deck; /* The input deck. */ - struct line *ci_origdeck;/* The input deck, before subckt expansion. */ - struct line *ci_options;/* The .option cards from the deck... */ - struct variable *ci_vars; /* ... and the parsed versions. */ - bool ci_inprogress; /* We are in a break now. */ - bool ci_runonce; /* So com_run can to a reset if necessary... */ - wordlist *ci_commands; /* Things to do when this circuit is done. */ - struct circ *ci_next; /* The next in the list. */ - char *ci_nodes; /* ccom structs for the nodes... */ - char *ci_devices; /* and devices in the circuit. */ - char *ci_filename; /* Where this circuit came from. */ - char *ci_defTask; /* the default task for this circuit */ - char *ci_specTask; /* the special task for command line jobs */ - char *ci_curTask; /* the most recent task for this circuit */ - char *ci_defOpt; /* the default options anal. for this circuit */ - char *ci_specOpt; /* the special options anal. for command line jobs */ - char *ci_curOpt; /* the most recent options anal. for the circuit */ -} ; - -struct subcirc { - char *sc_name; /* Whatever... */ -} ; - -struct save_info { - char *name; - IFuid *analysis; - int used; -}; - -#define mylog10(xx) (((xx) > 0.0) ? log10(xx) : (- log10(HUGE))) - -#include "fteext.h" - -#endif /* FTEdefs_h */ diff --git a/plugins/models-jspice3-2.5/Include.3f5/fteext.h b/plugins/models-jspice3-2.5/Include.3f5/fteext.h deleted file mode 100644 index 4c2ab118..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/fteext.h +++ /dev/null @@ -1,525 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1986 Wayne A. Christopher, U. C. Berkeley CAD Group -**********/ - -/* - * Definitions for all external symbols in FTE. - */ - -#ifndef FTEext_h -#define FTEext_h - -/* needed to find out what the interface structures look like */ -#include "ifsim.h" -#include "fteparse.h" -#include "cpdefs.h" -#include "ftedefs.h" -#include "fteinp.h" - -/* agraf.c */ - -extern void ft_agraf(); - -/* arg.c */ - -extern int arg_plot(); -extern int arg_display(); -extern int arg_print(); -extern int arg_let(); -extern int arg_load(); -extern int arg_set(); -extern void outmenuprompt(); - -/* aspice.c */ - -extern void com_aspice(); -extern void com_jobs(); -extern void com_rspice(); -extern void ft_checkkids(); - -/* binary.c */ - -extern void braw_write(); -extern struct plot *braw_read(); - -/* breakpoint.c */ - -extern bool ft_bpcheck(); -extern void com_delete(); -extern void com_iplot(); -extern void com_save(); -extern void com_step(); -extern void com_stop(); -extern void com_sttus(); -extern void com_trce(); -extern void ft_trquery(); -extern void dbfree( ); - -/* circuits.c */ - -extern struct circ *ft_curckt; -extern struct circ *ft_circuits; -extern struct subcirc *ft_subcircuits; -extern void ft_setccirc(); -extern void ft_newcirc(); -extern void ft_newsubcirc(); - -/* clip.c */ - -extern bool clip_line(); -extern bool clip_to_circle(); - -/* cmath1.c */ - -extern bool cx_degrees; -extern char *cx_mag(); -extern char *cx_ph(); -extern char *cx_j(); -extern char *cx_real(); -extern char *cx_imag(); -extern char *cx_pos(); -extern char *cx_db(); -extern char *cx_log(); -extern char *cx_ln(); -extern char *cx_exp(); -extern char *cx_sqrt(); -extern char *cx_sin(); -extern char *cx_cos(); - -/* cmath2.c */ - -extern char *cx_tan(); -extern char *cx_atan(); -extern char *cx_norm(); -extern char *cx_uminus(); -extern char *cx_rnd(); -extern char *cx_mean(); -extern char *cx_length(); -extern char *cx_vector(); -extern char *cx_unitvec(); -extern char *cx_plus(); -extern char *cx_minus(); -extern char *cx_times(); -extern char *cx_mod(); - -/* cmath3.c */ - -extern char *cx_divide(); -extern char *cx_comma(); -extern char *cx_power(); -extern char *cx_eq(); -extern char *cx_gt(); -extern char *cx_lt(); -extern char *cx_ge(); -extern char *cx_le(); -extern char *cx_ne(); - -/* cmath4.c */ - -extern char *cx_and(); -extern char *cx_or(); -extern char *cx_not(); -extern char *cx_interpolate(); -extern char *cx_deriv(); - -/* cmdtab.c */ - -extern struct comm *cp_coms; - -/* compose.c */ - -extern void com_compose(); - -/* cpinterface.c symbols declared in CPextern.h */ - -/* debugcoms.c */ - -extern void com_dump(); -extern void com_state(); - -/* define.c */ - -extern struct pnode *ft_substdef(); -extern void com_define(); -extern void com_undefine(); -extern void ft_pnode(); - -/* device.c */ - -extern void com_show(); -extern void com_showmod(); -extern void com_alter(); - -/* diff.c */ - -extern void com_diff(); - -/* doplot.c */ - -extern void com_asciiplot(); -extern void com_hardcopy(); -extern void com_plot(); -extern void com_xgraph(); - -/* dotcards.c */ - -extern bool ft_acctprint; -extern bool ft_listprint; -extern bool ft_nopage; -extern bool ft_nomod; -extern bool ft_nodesprint; -extern bool ft_optsprint; -extern int ft_cktcoms(); -extern void ft_dotsaves(); -extern int ft_savedotargs(); - -/* error.c */ - -extern void fatal(); -extern void fperror(); -extern void ft_sperror(); -extern char ErrorMessage[]; - -/* evaluate.c */ - -extern struct dvec *op_and(); -extern struct dvec *op_comma(); -extern struct dvec *op_divide(); -extern struct dvec *op_eq(); -extern struct dvec *ft_evaluate(); -extern struct dvec *op_ge(); -extern struct dvec *op_gt(); -extern struct dvec *op_le(); -extern struct dvec *op_lt(); -extern struct dvec *op_minus(); -extern struct dvec *op_mod(); -extern struct dvec *op_ne(); -extern struct dvec *op_not(); -extern struct dvec *op_or(); -extern struct dvec *op_ind(); -extern struct dvec *op_plus(); -extern struct dvec *op_power(); -extern struct dvec *op_times(); -extern struct dvec *op_uminus(); -extern struct dvec *op_range(); - -/* fourier.c */ - -extern void com_fourier(); - -/* ginterface.c */ - -extern bool gi_init(); -extern bool gi_endpause; -extern bool gi_rottext; -extern int gi_fntheight; -extern int gi_fntwidth; -extern int gi_maxx; -extern int gi_maxy; -extern int gi_nolst; -extern int gi_nocolors; -extern int gi_package; -extern void gi_arc(); -extern void gi_clearscreen(); -extern void gi_close(); -extern void gi_drawline(); -extern void gi_redraw(); -extern void gi_setcolor(); -extern void gi_resetcolor(); -extern void gi_setlinestyle(); -extern void gi_text(); -extern void gi_update(); - -/* graf.c */ - -extern bool gr_gmode; -extern bool gr_hmode; -extern bool gr_init(); -extern void gr_clean(); -extern void gr_end(); -extern void gr_iplot(); -extern void gr_iplot_end(); -extern void gr_pmsg(); -extern void gr_point(); -extern void gr_start(); -extern double gr_xrange[2]; -extern double gr_yrange[2]; -extern int gr_xmargin; -extern int gr_ymargin; -extern int gr_xcenter; -extern int gr_ycenter; -extern int gr_radius; -extern bool gr_circular; - -/* grid.c */ - -extern void gr_fixgrid(); - -/* inp.c */ - -extern void com_edit(); -extern void com_listing(); -extern void com_source(); -extern void inp_dodeck(); -extern void inp_source(); -extern void inp_spsource(); -extern void inp_casefix(); -extern void inp_list(); -extern void inp_readall(); -extern FILE *inp_pathopen(); - -/* nutinp.c */ - -extern void inp_nutsource(); -extern void nutinp_dodeck(); -extern void nutcom_source(); - -/* interpolate.c */ - -extern bool ft_interpolate(); -extern bool ft_polyfit(); -extern double ft_peval(); -extern void ft_polyderiv( ); -extern void com_linearize(); - -/* mfbinterface.c */ - -extern void mi_arc(); -extern bool mi_init(); -extern void mi_clearscreen(); -extern void mi_close(); -extern void mi_drawline(); -extern void mi_resetcolor(); -extern void mi_setcolor(); -extern void mi_setlinestyle(); -extern void mi_text(); -extern void mi_update(); - -/* misccoms.c */ - -extern void com_bug(); -extern void com_ahelp(); -extern void com_ghelp(); -extern void com_help(); -extern void com_quit(); -extern void com_version(); -extern int hcomp(); -extern void com_where(); - -/* numparse.c */ - -extern bool ft_strictnumparse; -extern double *ft_numparse(); - -/* options.c */ - -extern bool ft_simdb; -extern bool ft_parsedb; -extern bool ft_evdb; -extern bool ft_vecdb; -extern bool ft_grdb; -extern bool ft_gidb; -extern bool ft_controldb; -extern bool ft_asyncdb; -extern char *ft_setkwords[]; -extern struct line *inp_getopts(); -extern struct variable *cp_enqvar(); -extern struct variable *cp_uservars(); -extern int cp_userset(); - -/* parse.c */ - -extern struct func ft_funcs[]; -extern struct func func_not; -extern struct func func_uminus; -extern struct pnode *ft_getpnames(); -extern void free_pnode(); - -/* plotcurve.c */ - -extern int ft_findpoint(); -extern double *ft_minmax(); -extern void ft_graf(); - -/* plotinterface.c */ - -extern void pi_arc(); -extern bool pi_init(); -extern void pi_clearscreen(); -extern void pi_close(); -extern void pi_drawline(); -extern void pi_resetcolor(); -extern void pi_setcolor(); -extern void pi_setlinestyle(); -extern void pi_text(); -extern void pi_update(); - -/* postcoms.c */ - -extern void com_cross(); -extern void com_display(); -extern void com_let(); -extern void com_unlet(); -extern void com_load(); -extern void com_print(); -extern void com_write(); -extern void com_destroy(); -extern void com_splot(); -extern void com_setscale(); -extern void com_transpose(); - -/* rawfile.c */ - -extern int raw_prec; -extern void raw_write(); -extern struct plot *raw_read(); - -/* resource.c */ - -extern void com_rusage(); -extern void ft_ckspace(); -extern void init_rlimits(); - -/* runcoms.c */ - -extern void com_ac(); -extern void com_dc(); -extern void com_op(); -extern void com_pz(); -extern void com_sens(); -extern void com_rset(); -extern void com_resume(); -extern void com_run(); -extern void com_tran(); -extern void com_tf(); -extern void com_scirc(); -extern void com_disto(); -extern void com_noise(); -extern int ft_dorun(); - -/* spice.c & nutmeg.c */ - -extern bool menumode; -extern bool ft_batchmode; -extern bool ft_nutmeg; -extern bool ft_servermode; -extern IFsimulator *ft_sim; -extern char *ft_rawfile; -extern char *cp_program; -extern SIGNAL_TYPE ft_sigintr(); -extern SIGNAL_TYPE sigfloat(); -extern SIGNAL_TYPE sigstop(); -extern SIGNAL_TYPE sigquit(); -extern SIGNAL_TYPE sigill(); -extern SIGNAL_TYPE sigbus(); -extern SIGNAL_TYPE sigsegv(); -extern SIGNAL_TYPE sig_sys(); -extern void main(); - -/* spiceif.c & nutmegif.c */ - -extern bool if_tranparams(); -extern char *if_errstring(); -extern char *if_inpdeck(); -extern int if_run(); -extern int if_sens_run(); -extern struct variable *(*if_getparam)(); -extern struct variable *nutif_getparam(); -extern struct variable *spif_getparam(); -extern void if_cktfree(); -extern void if_dump(); -extern int if_option(); -extern void if_setndnames(); -extern void if_setparam(); -extern struct variable *if_getstat(); - -/* subckt.c */ - -extern struct line *inp_deckcopy(); -extern struct line *inp_subcktexpand(); -extern int inp_numnodes(); - -/* types.c */ - -extern void com_dftype(); -extern void com_stype(); -extern char *ft_typabbrev(); -extern char *ft_typenames(); -extern char *ft_plotabbrev(); -extern int ft_typnum(); - -/* vectors.c */ - -extern bool vec_eq(); -extern int plot_num; -extern struct dvec *vec_fromplot(); -extern struct dvec *vec_copy(); -extern struct dvec *vec_get(); -extern struct dvec *vec_mkfamily(); -extern struct plot *plot_cur; -extern struct plot *plot_alloc(); -extern struct plot *plot_list; -extern int plotl_changed; -extern void plot_add(); -extern void vec_free(); -extern void vec_gc(); -extern void ft_loadfile(); -extern void vec_new(); -extern void plot_docoms(); -extern void vec_remove(); -extern void ft_sdatafree(); -extern void plot_setcur(); -extern void plot_new(); -extern char *vec_basename(); -extern bool plot_prefix(); -extern void vec_transpose(); - -/* writedata.c */ - -extern bool ft_intrpt; -extern bool ft_setflag; -extern int wrd_close(); -extern int wrd_command(); -extern int wrd_cptime; -extern int wrd_end(); -extern int wrd_init(); -extern int wrd_limpts; -extern int wrd_open(); -extern int wrd_output(); -extern int wrd_point(); -extern int wrd_pt2(); -extern int wrd_run(); -extern int wrd_stopnow(); -extern void wrd_chtrace(); -extern void wrd_error(); -extern void wrd_version(); -extern wordlist *wrd_saves; - -/* xinterface.c */ - -extern void xi_arc(); -extern bool xi_init(); -extern bool xi_dump(); -extern void xi_clearscreen(); -extern void xi_close(); -extern void xi_drawline(); -extern void xi_resetcolor(); -extern void xi_setcolor(); -extern void xi_setlinestyle(); -extern void xi_text(); -extern void xi_update(); -extern void xi_zoomdata(); -extern struct screen *screens; -extern void com_clearplot(); - -/* newcoms.c */ -extern void com_reshape(); - -/* dimens.c */ -extern char *dimstring(); -extern int atodims(); -extern char *indexstring(); -extern int incindex( ); - -#endif /* FTEext_h */ diff --git a/plugins/models-jspice3-2.5/Include.3f5/fteinp.h b/plugins/models-jspice3-2.5/Include.3f5/fteinp.h deleted file mode 100644 index 0efc28c4..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/fteinp.h +++ /dev/null @@ -1,31 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group -**********/ - -/* - * - * Note that this definition must be the same as struct card in INPdefs.h... - */ - -#ifndef FTEinput_h -#define FTEinput_h - -#include "inpdefs.h" - -struct line { - int li_linenum; - char *li_line; - char *li_error; - struct line *li_next; - struct line *li_actual; -} ; - -/* Listing types. */ - -#define LS_LOGICAL 1 -#define LS_PHYSICAL 2 -#define LS_DECK 3 - -#endif /* FTEinput_h */ - diff --git a/plugins/models-jspice3-2.5/Include.3f5/fteparse.h b/plugins/models-jspice3-2.5/Include.3f5/fteparse.h deleted file mode 100644 index 60b4f29a..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/fteparse.h +++ /dev/null @@ -1,103 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group -**********/ - -/* - * - * Stuff for parsing -- used by the parser and in ft_evaluate(). - */ - -#ifndef FTEPARSE -#define FTEPARSE - - -#include "ftedata.h" - -struct pnode { - char *pn_name; /* If non-NULL, the name. */ - struct dvec *pn_value; /* Non-NULL in a terminal node. */ - struct func *pn_func; /* Non-NULL is a function. */ - struct op *pn_op; /* Operation if the above two NULL. */ - struct pnode *pn_left; /* Left branch or function argument. */ - struct pnode *pn_right; /* Right branch. */ - struct pnode *pn_next; /* For expression lists. */ -} ; - -/* Operations. These should really be considered functions. */ - -struct op { - int op_num; /* From parser #defines. */ - char *op_name; /* Printing name. */ - char op_arity; /* One or two. */ - struct dvec *(*op_func)(); /* The function to do the work. */ -} ; - -/* The functions that are available. */ - -struct func { - char *fu_name; /* The print name of the function. */ - char *(*fu_func)(); /* The function. */ -} ; - -/* User-definable functions. The idea of ud_name is that the args are - * kept in strings after the name, all seperated by '\0's. There - * will be ud_arity of them. - */ - -struct udfunc { - char *ud_name; /* The name. */ - int ud_arity; /* The arity of the function. */ - struct pnode *ud_text; /* The definition. */ - struct udfunc *ud_next; /* Link pointer. */ -} ; - -#define MAXARITY 32 - -/* Parser elements. */ - -struct element { - int e_token; /* One of the below. */ - int e_type; /* If the token is VALUE. */ - union { - char *un_string; - double un_double; - struct pnode *un_pnode; - } e_un; -#define e_string e_un.un_string -#define e_double e_un.un_double -#define e_indices e_un.un_indices -#define e_pnode e_un.un_pnode -}; - -/* See the table in parse.c */ - -#define END 0 -#define PLUS 1 -#define MINUS 2 -#define TIMES 3 -#define MOD 4 -#define DIVIDE 5 -#define POWER 6 -#define UMINUS 7 -#define LPAREN 8 -#define RPAREN 9 -#define COMMA 10 -#define VALUE 11 -#define EQ 12 -#define GT 13 -#define LT 14 -#define GE 15 -#define LE 16 -#define NE 17 -#define AND 18 -#define OR 19 -#define NOT 20 -#define INDX 21 -#define RANGE 22 - -#define NUM 1 -#define STRING 2 -#define PNODE 3 - -#endif /* FTEPARSE */ diff --git a/plugins/models-jspice3-2.5/Include.3f5/gendefs.h b/plugins/models-jspice3-2.5/Include.3f5/gendefs.h deleted file mode 100644 index 5b93edca..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/gendefs.h +++ /dev/null @@ -1,46 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ - -#ifndef GEN -#define GEN - -#include "ifsim.h" - - /* definitions used to describe generic devices */ - -/* information used to describe a single instance */ - -typedef struct sGENinstance { - struct sGENmodel *GENmodPtr; /* backpointer to model */ - struct sGENinstance *GENnextInstance; /* pointer to next instance of - * current model*/ - IFuid GENname; /* pointer to character string naming this instance */ -#ifndef SPICE_3e - int GENstate; /* state index number */ -#endif - int GENnode1; /* appropriate node numbers */ - int GENnode2; /* appropriate node numbers */ - int GENnode3; /* appropriate node numbers */ - int GENnode4; /* appropriate node numbers */ - int GENnode5; /* appropriate node numbers */ -} GENinstance ; - - -/* Generic circuit data */ - -typedef void GENcircuit; - -/* per model data */ - -typedef struct sGENmodel { /* model structure for a resistor */ - int GENmodType; /* type index of this device type */ - struct sGENmodel *GENnextModel; /* pointer to next possible model in - * linked list */ - GENinstance * GENinstances; /* pointer to list of instances that have this - * model */ - IFuid GENmodName; /* pointer to character string naming this model */ -} GENmodel; - -#endif /*GEN*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/gendefs.h.orig b/plugins/models-jspice3-2.5/Include.3f5/gendefs.h.orig deleted file mode 100644 index 75da9da0..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/gendefs.h.orig +++ /dev/null @@ -1,44 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ - -#ifndef GEN -#define GEN - -#include "ifsim.h" - - /* definitions used to describe generic devices */ - -/* information used to describe a single instance */ - -typedef struct sGENinstance { - struct sGENmodel *GENmodPtr; /* backpointer to model */ - struct sGENinstance *GENnextInstance; /* pointer to next instance of - * current model*/ - IFuid GENname; /* pointer to character string naming this instance */ - int GENstate; /* state index number */ - int GENnode1; /* appropriate node numbers */ - int GENnode2; /* appropriate node numbers */ - int GENnode3; /* appropriate node numbers */ - int GENnode4; /* appropriate node numbers */ - int GENnode5; /* appropriate node numbers */ -} GENinstance ; - - -/* Generic circuit data */ - -typedef void GENcircuit; - -/* per model data */ - -typedef struct sGENmodel { /* model structure for a resistor */ - int GENmodType; /* type index of this device type */ - struct sGENmodel *GENnextModel; /* pointer to next possible model in - * linked list */ - GENinstance * GENinstances; /* pointer to list of instances that have this - * model */ - IFuid GENmodName; /* pointer to character string naming this model */ -} GENmodel; - -#endif /*GEN*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/hw.h b/plugins/models-jspice3-2.5/Include.3f5/hw.h deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/hw.h +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/iferrmsg.h b/plugins/models-jspice3-2.5/Include.3f5/iferrmsg.h deleted file mode 100644 index 630b5b29..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/iferrmsg.h +++ /dev/null @@ -1,58 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1986 Thomas L. Quarles -**********/ - -/* - */ - -#ifndef IFERRMSGS -#define IFERRMSGS - - - /* common error message descriptions */ - -#define E_PAUSE -1 /* pausing on demand */ - -#define OK 0 - -#define E_PANIC 1 /* vague internal error for "can't get here" cases */ -#define E_EXISTS 2 /* warning/error - attempt to create duplicate */ - /* instance or model. Old one reused instead */ -#define E_NODEV 3 /* attempt to modify a non-existant instance */ -#define E_NOMOD 4 /* attempt to modify a non-existant model */ -#define E_NOANAL 5 /* attempt to modify a non-existant analysis */ -#define E_NOTERM 6 /* attempt to bind to a non-existant terminal */ -#define E_BADPARM 7 /* attempt to specify a non-existant parameter */ -#define E_NOMEM 8 /* insufficient memory available - VERY FATAL */ -#define E_NODECON 9 /* warning/error - node already connected, old */ - /* connection replaced */ -#define E_UNSUPP 10 /* the specified operation is unsupported by the */ - /* simulator */ -#define E_PARMVAL 11 /* the parameter value specified is illegal */ -#define E_NOTEMPTY 12 /* deleted still referenced item. */ -#define E_NOCHANGE 13 /* simulator can't tolerate any more topology changes */ -#define E_NOTFOUND 14 /* simulator can't find something it was looking for */ -#define E_BAD_DOMAIN 15 /* output interface begin/end domain calls mismatched */ - - -#define E_PRIVATE 100 /* messages above this number are private to */ - /* the simulator and MUST be accompanied by */ - /* a proper setting of errMsg */ - /* this constant should be added to all such messages */ - /* to ensure error free operation if it must be */ - /* changed in the future */ - -extern char *errMsg; /* descriptive message about what went wrong */ - /* MUST be malloc()'d - front end will free() */ - /* this should be a detailed message,and is assumed */ - /* malloc()'d so that you will feel free to add */ - /* lots of descriptive information with sprintf*/ - -extern char *errRtn; /* name of the routine declaring error */ - /* should not be malloc()'d, will not be free()'d */ - /* This should be a simple constant in your routine */ - /* and thus can be set correctly even if we run out */ - /* of memory */ - -#endif /*IFERRMSGS*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/ifsim.h b/plugins/models-jspice3-2.5/Include.3f5/ifsim.h deleted file mode 100644 index 1066f9cb..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/ifsim.h +++ /dev/null @@ -1,531 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1986 Thomas L. Quarles -**********/ - -#ifndef IFSIMULATOR -#define IFSIMULATOR - -/* - * We don't always have access to an ANSI C compiler yet, so we - * make the following convenient definition - */ - -#ifdef __STDC__ - - /* using an ansi C compiler, so we have the void* construct */ - -typedef void GENERIC; - -#else - - /* not using an ansi C compiler, so we have to use char* as the */ - /* most generic pointer type */ - -typedef char GENERIC; - -#endif -/* - * structure: IFparm - * - * - * The structure used to describe all values passed - * between the front end and the simulator when there is any - * possibility one argument of the function could have more - * than one type. - * - * keyword is provided for the front end and is the token - * the user is expected to label the data with. - * - * id is an integer intended to uniquely identify the parameter - * to the simulator - * - * dataType is an integer which indicates the type of argument - * that must be passed for this parameter - * - * description is a longer description intended for help menus - * the description should all fit on one line, but should - * give a knowledgable user a good idea what the parameter is - * used for. - */ - -typedef struct sIFparm { - char *keyword; - int id; - int dataType; - char *description; -} IFparm; - -/* - * - * datatype: IFuid - * - * unique identifier for all name-type data in the simulator. - * this permits the front end to use something other than - * a unique, fully qualified character string to identify - * an object. - * - */ - -typedef GENERIC *IFuid; - -/* - * - * types for IFnewUid - * - */ - -#define UID_ANALYSIS 0x1 -#define UID_TASK 0x2 -#define UID_INSTANCE 0x4 -#define UID_MODEL 0x8 -#define UID_SIGNAL 0x10 -#define UID_OTHER 0x20 - - -/* - * dataType values: - * - * Note: These structures are put together by ORing together the - * appropriate bits from the fields below as is shown for the vector - * types. - * IF_REQUIRED indicates that the parameter must be specified. - * The front end does not NEED to check for this, but can to save time, - * since failure to do so will cause the simulator to fail. - * IF_SET indicates that the specified item is an input parameter. - * IF_ASK indicates that the specified item is something the simulator - * can provide information about. - * IF_SET and IF_ASK are NOT mutually exclusive. - * if IF_SET and IF_ASK are both zero, it indicates a parameter that - * the simulator recoginizes are being a reasonable paremeter, but - * which this simulator does not implement. - */ - -#define IF_FLAG 0x1 -#define IF_INTEGER 0x2 -#define IF_REAL 0x4 -#define IF_COMPLEX 0x8 -#define IF_NODE 0x10 -#define IF_STRING 0x20 -#define IF_INSTANCE 0x40 -#define IF_PARSETREE 0x80 - -/* indicates that for a query the integer field will have a selector - * in it to pick a sub-field */ -#define IF_SELECT 0x800 -#define IF_VSELECT 0x400 - -/* indicates a vector of the specified type */ -#define IF_VECTOR 0x8000 - -#define IF_FLAGVEC (IF_FLAG|IF_VECTOR) -#define IF_INTVEC (IF_INTEGER|IF_VECTOR) -#define IF_REALVEC (IF_REAL|IF_VECTOR) -#define IF_CPLXVEC (IF_COMPLEX|IF_VECTOR) -#define IF_NODEVEC (IF_NODE|IF_VECTOR) -#define IF_STRINGVEC (IF_STRING|IF_VECTOR) -#define IF_INSTVEC (IF_INSTANCE|IF_VECTOR) - -#define IF_REQUIRED 0x4000 - -#define IF_VARTYPES 0x80ff - -#define IF_SET 0x2000 -#define IF_ASK 0x1000 - -/* If you AND with IF_UNIMP_MASK and get 0, it is recognized, but not - * implemented - */ -#define IF_UNIMP_MASK (~0xfff) - -/* Used by sensetivity to check if a parameter is or is not useful */ -#define IF_REDUNDANT 0x0010000 -#define IF_PRINCIPAL 0x0020000 -#define IF_AC 0x0040000 -#define IF_AC_ONLY 0x0080000 -#define IF_NOISE 0x0100000 -#define IF_NONSENSE 0x0200000 - -#define IF_SETQUERY 0x0400000 -#define IF_ORQUERY 0x0800000 -#define IF_CHKQUERY 0x1000000 - -/* For "show" command: do not print value in a table by default */ -#define IF_UNINTERESTING 0x2000000 - -/* Structure: IFparseTree - * - * This structure is returned by the parser for a IF_PARSETREE valued - * parameter and describes the information that the simulator needs - * to know about the parse tree in order to use it. - * It is expected that the front end will have a more extensive - * structure which this structure will be a prefix of. - * - * Note that the function pointer is provided as a hook for - * versions which may want to compile code for the parse trees - * if they are used heavily. - * - */ - -typedef struct sIFparseTree { - int numVars; /* number of variables used */ - int *varTypes; /* array of types of variables */ - union uIFvalue * vars; /* array of structures describing values */ -#ifdef __STDC__ - int ((*IFeval)(struct sIFparseTree*,double,double*,double*,double*)); -#else - int ((*IFeval)()); /* function to call to get evaluated */ -#endif /* STDC */ -} IFparseTree; - - -/* - * Structure: IFvalue - * - * structure used to pass the values corresponding to the above - * dataType. All types are passed in one of these structures, with - * relatively simple rules concerning the handling of the structure. - * - * whoever makes the subroutine call allocates a single instance of the - * structure. The basic data structure belongs to you, and you - * should arrange to free it when appropriate. - * - * The responsibilities of the data supplier are: - * Any vectors referenced by the structure are to be malloc()'d - * and are assumed to have been turned over to the recipient and - * thus should not be re-used or free()'d. - * - * The responsibilities of the data recipient are: - * scalar valued data is to be copied by the recipient - * vector valued data is now the property of the recipient, - * and must be free()'d when no longer needed. - * - * Character strings are a special case: Since it is assumed - * that all character strings are directly descended from input - * tokens, it is assumed that they are static, thus nobody - * frees them until the circuit is deleted, when the front end - * may do so. - * - * EVERYBODY's responsibility is to be SURE that the right data - * is filled in and read out of the structure as per the IFparm - * structure describing the parameter being passed. Programs - * neglecting this rule are fated to die of data corruption - * - */ - -/* - * Some preliminary definitions: - * - * IFnode's are returned by the simulator, thus we don't really - * know what they look like, just that we get to carry pointers - * to them around all the time, and will need to save them occasionally - * - */ - - -typedef void * IFnode; - -/* - * and of course, the standard complex data type - */ -typedef struct sIFcomplex { - double real; - double imag; -} IFcomplex; - - -typedef union uIFvalue { - int iValue; /* integer or flag valued data */ - double rValue; /* real valued data */ - IFcomplex cValue; /* complex valued data */ - char *sValue; /* string valued data */ - IFuid uValue; /* UID valued data */ - IFnode nValue; /* node valued data */ - IFparseTree *tValue; /* parse tree */ - struct { - int numValue; /* length of vector */ - union { - int *iVec; /* pointer to integer vector */ - double *rVec; /* pointer to real vector */ - IFcomplex *cVec;/* pointer to complex vector */ - char **sVec; /* pointer to string vector */ - IFuid *uVec; /* pointer to UID vector */ - IFnode *nVec; /* pointer to node vector */ - }vec; - }v; -} IFvalue; - - -/* - * structure: IFdevice - * - * This structure contains all the information available to the - * front end about a particular device. The simulator will - * present the front end with an array of pointers to these structures - * which it will use to determine legal device types and parameters. - * - * Note to simulators: you are passing an array of pointers to - * these structures, so you may in fact make this the first component - * in a larger, more complex structure which includes other data - * which you need, but which is not needed in the common - * front end interface. - * - */ - -typedef struct sIFdevice { - const char *name; /* name of this type of device */ - const char *description; /* description of this type of device */ - - int *terms; /* number of terminals on this device */ - int *numNames; /* number of names in termNames */ - char **termNames; /* pointer to array of pointers to names */ - /* array contains 'terms' pointers */ - - int *numInstanceParms; /* number of instance parameter descriptors */ - IFparm *instanceParms; /* array of instance parameter descriptors */ - - int *numModelParms; /* number of model parameter descriptors */ - IFparm *modelParms; /* array of model parameter descriptors */ - -#ifndef SPICE_3e - int flags; /* DEV_ */ -#endif - -} IFdevice; - - -/* - * Structure: IFanalysis - * - * This structure contains all the information available to the - * front end about a particular analysis type. The simulator will - * present the front end with an array of pointers to these structures - * which it will use to determine legal analysis types and parameters. - * - * Note to simulators: As for IFdevice above, you pass an array of pointers - * to these, so you can make this structure a prefix to a larger structure - * which you use internally. - * - */ - -typedef struct sIFanalysis { - char *name; /* name of this analysis type */ - char *description; /* description of this type of analysis */ - - int numParms; /* number of analysis parameter descriptors */ - IFparm *analysisParms; /* array of analysis parameter descriptors */ - -} IFanalysis; - - -/* - * Structure: IFsimulator - * - * This is what we have been leading up to all along. - * This structure describes a simulator to the front end, and is - * returned from the SIMinit command to the front end. - * This is where all those neat structures we described in the first - * few hundred lines of this file come from. - * - */ - -typedef struct sIFsimulator { - char *simulator; /* the simulator's name */ - char *description; /* description of this simulator */ - char *version; /* version or revision level of simulator*/ - -#ifdef __STDC__ - int ((*newCircuit)(GENERIC **)); - /* create new circuit */ - int ((*deleteCircuit)(GENERIC *)); - /* destroy old circuit's data structures*/ - - int ((*newNode)(GENERIC *,GENERIC**,IFuid)); - /* create new node */ - int ((*groundNode)(GENERIC*,GENERIC**,IFuid)); - /* create ground node */ - int ((*bindNode)(GENERIC *,GENERIC*,int,GENERIC*)); - /* bind a node to a terminal */ - int ((*findNode)(GENERIC *,GENERIC**,IFuid)); - /* find a node by name */ - int ((*instToNode)(GENERIC *,GENERIC *,int,GENERIC **,IFuid *)); - /* find the node attached to a terminal */ - int ((*setNodeParm)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* set a parameter on a node */ - int ((*askNodeQuest)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* ask a question about a node */ - int ((*deleteNode)(GENERIC*,GENERIC*)); - /* delete a node from the circuit */ - - int ((*newInstance)(GENERIC*,GENERIC*,GENERIC**,IFuid)); - /* create new instance */ - int ((*setInstanceParm)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* set a parameter on an instance */ - int ((*askInstanceQuest)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* ask a question about an instance */ - int ((*findInstance)(GENERIC*,int*,GENERIC**,IFuid,GENERIC*,IFuid)); - /* find a specific instance */ - int ((*deleteInstance)(GENERIC*,GENERIC*)); - /* delete an instance from the circuit */ - - int ((*newModel)(GENERIC*,int,GENERIC**,IFuid)); - /* create new model */ - int ((*setModelParm)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* set a parameter on a model */ - int ((*askModelQuest)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* ask a questions about a model */ - int ((*findModel)(GENERIC*,int*,GENERIC**,IFuid)); - /* find a specific model */ - int ((*deleteModel)(GENERIC*,GENERIC*)); - /* delete a model from the circuit*/ - - int ((*newTask)(GENERIC*,GENERIC**,IFuid)); - /* create a new task */ - int ((*newAnalysis)(GENERIC*,int,IFuid,GENERIC**,GENERIC*)); - /* create new analysis within a task */ - int ((*setAnalysisParm)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* set a parameter on an analysis */ - int ((*askAnalysisQuest)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* ask a question about an analysis */ - int ((*findAnalysis)(GENERIC*,int*,GENERIC**,IFuid,GENERIC*,IFuid)); - /* find a specific analysis */ - int ((*findTask)(GENERIC*,GENERIC**,IFuid)); - /* find a specific task */ - int ((*deleteTask)(GENERIC*,GENERIC*)); - /* delete a task */ - - int ((*doAnalyses)(GENERIC*,int,GENERIC*)); - char *((*nonconvErr)(GENERIC*,char *)); /* return nonconvergence error */ -#else - int ((*newCircuit)()); /* create new circuit */ - int ((*deleteCircuit)()); /* destroy old circuit's data structures */ - - int ((*newNode)()); /* create new node */ - int ((*groundNode)()); /* create ground node */ - int ((*bindNode)()); /* bind a node to a terminal */ - int ((*findNode)()); /* find a node by name */ - int ((*instToNode)()); /* find the node attached to a terminal */ - int ((*setNodeParm)()); /* set a parameter on a node */ - int ((*askNodeQuest)()); /* ask a question about a node */ - int ((*deleteNode)()); /* delete a node from the circuit */ - - int ((*newInstance)()); /* create new instance */ - int ((*setInstanceParm)()); /* set a parameter on an instance */ - int ((*askInstanceQuest)()); /* ask a question about an instance */ - int ((*findInstance)()); /* find a specific instance */ - int ((*deleteInstance)()); /* delete an instance from the circuit */ - - int ((*newModel)()); /* create new model */ - int ((*setModelParm)()); /* set a parameter on a model */ - int ((*askModelQuest)()); /* ask a questions about a model */ - int ((*findModel)()); /* find a specific model */ - int ((*deleteModel)()); /* delete a model from the circuit*/ - - int ((*newTask)()); /* create a new task */ - int ((*newAnalysis)()); /* create new analysis within a task */ - int ((*setAnalysisParm)()); /* set a parameter on an analysis */ - int ((*askAnalysisQuest)()); /* ask a question about an analysis */ - int ((*findAnalysis)()); /* find a specific analysis */ - int ((*findTask)()); /* find a specific task */ - int ((*deleteTask)()); /* delete a task */ - - int ((*doAnalyses)()); /* run a specified task */ - char *((*nonconvErr)()); /* return nonconvergence error */ -#endif /* STDC */ - - int numDevices; /* number of device types supported */ - IFdevice **devices; /* array of device type descriptors */ - - int numAnalyses; /* number of analysis types supported */ - IFanalysis **analyses; /* array of analysis type descriptors */ - - int numNodeParms; /* number of node parameters supported */ - IFparm *nodeParms; /* array of node parameter descriptors */ - - int numSpecSigs; /* number of special signals legal in parse trees */ - char **specSigs; /* names of special signals legal in parse trees */ - -} IFsimulator; - -/* - * Structure: IFfrontEnd - * - * This structure provides the simulator with all the information - * it needs about the front end. This is the entire set of - * front end and back end related routines the simulator - * should know about. - * - */ - -typedef struct sIFfrontEnd { -#ifdef __STDC__ - int ((*IFnewUid)(GENERIC*,IFuid*,IFuid,char*,int,GENERIC**)); - /* create a new UID in the circuit */ - int ((*IFdelUid)(GENERIC*,IFuid,int)); - /* create a new UID in the circuit */ - int ((*IFpauseTest)(void)); - /* should we stop now? */ - double ((*IFseconds)(void)); - /* what time is it? */ - int ((*IFerror)(int,char*,IFuid*)); - /* output an error or warning message */ - int ((*OUTpBeginPlot)(GENERIC*,GENERIC*,IFuid,IFuid,int, - int,IFuid*,int,GENERIC**)); - /* start pointwise output plot */ - int ((*OUTpData)(GENERIC*,IFvalue*,IFvalue*)); - /* data for pointwise plot */ - int ((*OUTwBeginPlot)(GENERIC*,GENERIC*,IFuid,IFuid,int, - int,IFuid*,int,GENERIC**)); - /* start windowed output plot */ - int ((*OUTwReference)(GENERIC*,IFvalue*,GENERIC**)); - /* independent vector for windowed plot */ - int ((*OUTwData)(GENERIC*,int,IFvalue*,GENERIC*)); - /* data for windowed plot */ - int ((*OUTwEnd)(GENERIC*)); - /* signal end of windows */ - int ((*OUTendPlot)(GENERIC*)); - /* end of plot */ - int ((*OUTbeginDomain)(GENERIC*,IFuid,int,IFvalue*)); - /* start nested domain */ - int ((*OUTendDomain)(GENERIC*)); - /* end nested domain */ - int ((*OUTattributes)(GENERIC *,IFuid*,int,IFvalue*)); - /* specify output attributes of node */ -#else /* not STDC */ - int ((*IFnewUid)()); /* create a new UID in the circuit */ - int ((*IFdelUid)()); /* create a new UID in the circuit */ - int ((*IFpauseTest)()); /* should we stop now? */ - double ((*IFseconds)()); /* what time is it? */ - int ((*IFerror)()); /* output an error or warning message */ - int ((*OUTpBeginPlot)()); /* start pointwise output plot */ - int ((*OUTpData)()); /* data for pointwise plot */ - int ((*OUTwBeginPlot)()); /* start windowed output plot */ - int ((*OUTwReference)()); /* independent vector for windowed plot */ - int ((*OUTwData)()); /* data for windowed plot */ - int ((*OUTwEnd)()); /* signal end of windows */ - int ((*OUTendPlot)()); /* end of plot */ - int ((*OUTbeginDomain)()); /* start nested domain */ - int ((*OUTendDomain)()); /* end nested domain */ - int ((*OUTattributes)()); /* specify output attributes of node */ -#endif /* STDC */ -} IFfrontEnd; - -/* flags for the first argument to IFerror */ -#define ERR_WARNING 0x1 -#define ERR_FATAL 0x2 -#define ERR_PANIC 0x4 -#define ERR_INFO 0x8 - - /* valid values for the second argument to doAnalyses */ - - /* continue the analysis from where we left off */ -#define RESUME 0 - /* start everything over from the beginning of this task*/ -#define RESTART 1 - /* abandon the current analysis and go on the the next in the task*/ -#define SKIPTONEXT 2 - -#define OUT_SCALE_LIN 1 -#define OUT_SCALE_LOG 2 - -#endif /*IFSIMULATOR*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/ifsim.h.orig b/plugins/models-jspice3-2.5/Include.3f5/ifsim.h.orig deleted file mode 100644 index 58578a94..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/ifsim.h.orig +++ /dev/null @@ -1,529 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1986 Thomas L. Quarles -**********/ - -#ifndef IFSIMULATOR -#define IFSIMULATOR - -/* - * We don't always have access to an ANSI C compiler yet, so we - * make the following convenient definition - */ - -#ifdef __STDC__ - - /* using an ansi C compiler, so we have the void* construct */ - -typedef void GENERIC; - -#else - - /* not using an ansi C compiler, so we have to use char* as the */ - /* most generic pointer type */ - -typedef char GENERIC; - -#endif -/* - * structure: IFparm - * - * - * The structure used to describe all values passed - * between the front end and the simulator when there is any - * possibility one argument of the function could have more - * than one type. - * - * keyword is provided for the front end and is the token - * the user is expected to label the data with. - * - * id is an integer intended to uniquely identify the parameter - * to the simulator - * - * dataType is an integer which indicates the type of argument - * that must be passed for this parameter - * - * description is a longer description intended for help menus - * the description should all fit on one line, but should - * give a knowledgable user a good idea what the parameter is - * used for. - */ - -typedef struct sIFparm { - char *keyword; - int id; - int dataType; - char *description; -} IFparm; - -/* - * - * datatype: IFuid - * - * unique identifier for all name-type data in the simulator. - * this permits the front end to use something other than - * a unique, fully qualified character string to identify - * an object. - * - */ - -typedef GENERIC *IFuid; - -/* - * - * types for IFnewUid - * - */ - -#define UID_ANALYSIS 0x1 -#define UID_TASK 0x2 -#define UID_INSTANCE 0x4 -#define UID_MODEL 0x8 -#define UID_SIGNAL 0x10 -#define UID_OTHER 0x20 - - -/* - * dataType values: - * - * Note: These structures are put together by ORing together the - * appropriate bits from the fields below as is shown for the vector - * types. - * IF_REQUIRED indicates that the parameter must be specified. - * The front end does not NEED to check for this, but can to save time, - * since failure to do so will cause the simulator to fail. - * IF_SET indicates that the specified item is an input parameter. - * IF_ASK indicates that the specified item is something the simulator - * can provide information about. - * IF_SET and IF_ASK are NOT mutually exclusive. - * if IF_SET and IF_ASK are both zero, it indicates a parameter that - * the simulator recoginizes are being a reasonable paremeter, but - * which this simulator does not implement. - */ - -#define IF_FLAG 0x1 -#define IF_INTEGER 0x2 -#define IF_REAL 0x4 -#define IF_COMPLEX 0x8 -#define IF_NODE 0x10 -#define IF_STRING 0x20 -#define IF_INSTANCE 0x40 -#define IF_PARSETREE 0x80 - -/* indicates that for a query the integer field will have a selector - * in it to pick a sub-field */ -#define IF_SELECT 0x800 -#define IF_VSELECT 0x400 - -/* indicates a vector of the specified type */ -#define IF_VECTOR 0x8000 - -#define IF_FLAGVEC (IF_FLAG|IF_VECTOR) -#define IF_INTVEC (IF_INTEGER|IF_VECTOR) -#define IF_REALVEC (IF_REAL|IF_VECTOR) -#define IF_CPLXVEC (IF_COMPLEX|IF_VECTOR) -#define IF_NODEVEC (IF_NODE|IF_VECTOR) -#define IF_STRINGVEC (IF_STRING|IF_VECTOR) -#define IF_INSTVEC (IF_INSTANCE|IF_VECTOR) - -#define IF_REQUIRED 0x4000 - -#define IF_VARTYPES 0x80ff - -#define IF_SET 0x2000 -#define IF_ASK 0x1000 - -/* If you AND with IF_UNIMP_MASK and get 0, it is recognized, but not - * implemented - */ -#define IF_UNIMP_MASK (~0xfff) - -/* Used by sensetivity to check if a parameter is or is not useful */ -#define IF_REDUNDANT 0x0010000 -#define IF_PRINCIPAL 0x0020000 -#define IF_AC 0x0040000 -#define IF_AC_ONLY 0x0080000 -#define IF_NOISE 0x0100000 -#define IF_NONSENSE 0x0200000 - -#define IF_SETQUERY 0x0400000 -#define IF_ORQUERY 0x0800000 -#define IF_CHKQUERY 0x1000000 - -/* For "show" command: do not print value in a table by default */ -#define IF_UNINTERESTING 0x2000000 - -/* Structure: IFparseTree - * - * This structure is returned by the parser for a IF_PARSETREE valued - * parameter and describes the information that the simulator needs - * to know about the parse tree in order to use it. - * It is expected that the front end will have a more extensive - * structure which this structure will be a prefix of. - * - * Note that the function pointer is provided as a hook for - * versions which may want to compile code for the parse trees - * if they are used heavily. - * - */ - -typedef struct sIFparseTree { - int numVars; /* number of variables used */ - int *varTypes; /* array of types of variables */ - union uIFvalue * vars; /* array of structures describing values */ -#ifdef __STDC__ - int ((*IFeval)(struct sIFparseTree*,double,double*,double*,double*)); -#else - int ((*IFeval)()); /* function to call to get evaluated */ -#endif /* STDC */ -} IFparseTree; - - -/* - * Structure: IFvalue - * - * structure used to pass the values corresponding to the above - * dataType. All types are passed in one of these structures, with - * relatively simple rules concerning the handling of the structure. - * - * whoever makes the subroutine call allocates a single instance of the - * structure. The basic data structure belongs to you, and you - * should arrange to free it when appropriate. - * - * The responsibilities of the data supplier are: - * Any vectors referenced by the structure are to be malloc()'d - * and are assumed to have been turned over to the recipient and - * thus should not be re-used or free()'d. - * - * The responsibilities of the data recipient are: - * scalar valued data is to be copied by the recipient - * vector valued data is now the property of the recipient, - * and must be free()'d when no longer needed. - * - * Character strings are a special case: Since it is assumed - * that all character strings are directly descended from input - * tokens, it is assumed that they are static, thus nobody - * frees them until the circuit is deleted, when the front end - * may do so. - * - * EVERYBODY's responsibility is to be SURE that the right data - * is filled in and read out of the structure as per the IFparm - * structure describing the parameter being passed. Programs - * neglecting this rule are fated to die of data corruption - * - */ - -/* - * Some preliminary definitions: - * - * IFnode's are returned by the simulator, thus we don't really - * know what they look like, just that we get to carry pointers - * to them around all the time, and will need to save them occasionally - * - */ - - -typedef void * IFnode; - -/* - * and of course, the standard complex data type - */ -typedef struct sIFcomplex { - double real; - double imag; -} IFcomplex; - - -typedef union uIFvalue { - int iValue; /* integer or flag valued data */ - double rValue; /* real valued data */ - IFcomplex cValue; /* complex valued data */ - char *sValue; /* string valued data */ - IFuid uValue; /* UID valued data */ - IFnode nValue; /* node valued data */ - IFparseTree *tValue; /* parse tree */ - struct { - int numValue; /* length of vector */ - union { - int *iVec; /* pointer to integer vector */ - double *rVec; /* pointer to real vector */ - IFcomplex *cVec;/* pointer to complex vector */ - char **sVec; /* pointer to string vector */ - IFuid *uVec; /* pointer to UID vector */ - IFnode *nVec; /* pointer to node vector */ - }vec; - }v; -} IFvalue; - - -/* - * structure: IFdevice - * - * This structure contains all the information available to the - * front end about a particular device. The simulator will - * present the front end with an array of pointers to these structures - * which it will use to determine legal device types and parameters. - * - * Note to simulators: you are passing an array of pointers to - * these structures, so you may in fact make this the first component - * in a larger, more complex structure which includes other data - * which you need, but which is not needed in the common - * front end interface. - * - */ - -typedef struct sIFdevice { - char *name; /* name of this type of device */ - char *description; /* description of this type of device */ - - int *terms; /* number of terminals on this device */ - int *numNames; /* number of names in termNames */ - char **termNames; /* pointer to array of pointers to names */ - /* array contains 'terms' pointers */ - - int *numInstanceParms; /* number of instance parameter descriptors */ - IFparm *instanceParms; /* array of instance parameter descriptors */ - - int *numModelParms; /* number of model parameter descriptors */ - IFparm *modelParms; /* array of model parameter descriptors */ - - int flags; /* DEV_ */ - -} IFdevice; - - -/* - * Structure: IFanalysis - * - * This structure contains all the information available to the - * front end about a particular analysis type. The simulator will - * present the front end with an array of pointers to these structures - * which it will use to determine legal analysis types and parameters. - * - * Note to simulators: As for IFdevice above, you pass an array of pointers - * to these, so you can make this structure a prefix to a larger structure - * which you use internally. - * - */ - -typedef struct sIFanalysis { - char *name; /* name of this analysis type */ - char *description; /* description of this type of analysis */ - - int numParms; /* number of analysis parameter descriptors */ - IFparm *analysisParms; /* array of analysis parameter descriptors */ - -} IFanalysis; - - -/* - * Structure: IFsimulator - * - * This is what we have been leading up to all along. - * This structure describes a simulator to the front end, and is - * returned from the SIMinit command to the front end. - * This is where all those neat structures we described in the first - * few hundred lines of this file come from. - * - */ - -typedef struct sIFsimulator { - char *simulator; /* the simulator's name */ - char *description; /* description of this simulator */ - char *version; /* version or revision level of simulator*/ - -#ifdef __STDC__ - int ((*newCircuit)(GENERIC **)); - /* create new circuit */ - int ((*deleteCircuit)(GENERIC *)); - /* destroy old circuit's data structures*/ - - int ((*newNode)(GENERIC *,GENERIC**,IFuid)); - /* create new node */ - int ((*groundNode)(GENERIC*,GENERIC**,IFuid)); - /* create ground node */ - int ((*bindNode)(GENERIC *,GENERIC*,int,GENERIC*)); - /* bind a node to a terminal */ - int ((*findNode)(GENERIC *,GENERIC**,IFuid)); - /* find a node by name */ - int ((*instToNode)(GENERIC *,GENERIC *,int,GENERIC **,IFuid *)); - /* find the node attached to a terminal */ - int ((*setNodeParm)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* set a parameter on a node */ - int ((*askNodeQuest)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* ask a question about a node */ - int ((*deleteNode)(GENERIC*,GENERIC*)); - /* delete a node from the circuit */ - - int ((*newInstance)(GENERIC*,GENERIC*,GENERIC**,IFuid)); - /* create new instance */ - int ((*setInstanceParm)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* set a parameter on an instance */ - int ((*askInstanceQuest)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* ask a question about an instance */ - int ((*findInstance)(GENERIC*,int*,GENERIC**,IFuid,GENERIC*,IFuid)); - /* find a specific instance */ - int ((*deleteInstance)(GENERIC*,GENERIC*)); - /* delete an instance from the circuit */ - - int ((*newModel)(GENERIC*,int,GENERIC**,IFuid)); - /* create new model */ - int ((*setModelParm)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* set a parameter on a model */ - int ((*askModelQuest)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* ask a questions about a model */ - int ((*findModel)(GENERIC*,int*,GENERIC**,IFuid)); - /* find a specific model */ - int ((*deleteModel)(GENERIC*,GENERIC*)); - /* delete a model from the circuit*/ - - int ((*newTask)(GENERIC*,GENERIC**,IFuid)); - /* create a new task */ - int ((*newAnalysis)(GENERIC*,int,IFuid,GENERIC**,GENERIC*)); - /* create new analysis within a task */ - int ((*setAnalysisParm)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* set a parameter on an analysis */ - int ((*askAnalysisQuest)(GENERIC*,GENERIC*,int,IFvalue*,IFvalue*)); - /* ask a question about an analysis */ - int ((*findAnalysis)(GENERIC*,int*,GENERIC**,IFuid,GENERIC*,IFuid)); - /* find a specific analysis */ - int ((*findTask)(GENERIC*,GENERIC**,IFuid)); - /* find a specific task */ - int ((*deleteTask)(GENERIC*,GENERIC*)); - /* delete a task */ - - int ((*doAnalyses)(GENERIC*,int,GENERIC*)); - char *((*nonconvErr)(GENERIC*,char *)); /* return nonconvergence error */ -#else - int ((*newCircuit)()); /* create new circuit */ - int ((*deleteCircuit)()); /* destroy old circuit's data structures */ - - int ((*newNode)()); /* create new node */ - int ((*groundNode)()); /* create ground node */ - int ((*bindNode)()); /* bind a node to a terminal */ - int ((*findNode)()); /* find a node by name */ - int ((*instToNode)()); /* find the node attached to a terminal */ - int ((*setNodeParm)()); /* set a parameter on a node */ - int ((*askNodeQuest)()); /* ask a question about a node */ - int ((*deleteNode)()); /* delete a node from the circuit */ - - int ((*newInstance)()); /* create new instance */ - int ((*setInstanceParm)()); /* set a parameter on an instance */ - int ((*askInstanceQuest)()); /* ask a question about an instance */ - int ((*findInstance)()); /* find a specific instance */ - int ((*deleteInstance)()); /* delete an instance from the circuit */ - - int ((*newModel)()); /* create new model */ - int ((*setModelParm)()); /* set a parameter on a model */ - int ((*askModelQuest)()); /* ask a questions about a model */ - int ((*findModel)()); /* find a specific model */ - int ((*deleteModel)()); /* delete a model from the circuit*/ - - int ((*newTask)()); /* create a new task */ - int ((*newAnalysis)()); /* create new analysis within a task */ - int ((*setAnalysisParm)()); /* set a parameter on an analysis */ - int ((*askAnalysisQuest)()); /* ask a question about an analysis */ - int ((*findAnalysis)()); /* find a specific analysis */ - int ((*findTask)()); /* find a specific task */ - int ((*deleteTask)()); /* delete a task */ - - int ((*doAnalyses)()); /* run a specified task */ - char *((*nonconvErr)()); /* return nonconvergence error */ -#endif /* STDC */ - - int numDevices; /* number of device types supported */ - IFdevice **devices; /* array of device type descriptors */ - - int numAnalyses; /* number of analysis types supported */ - IFanalysis **analyses; /* array of analysis type descriptors */ - - int numNodeParms; /* number of node parameters supported */ - IFparm *nodeParms; /* array of node parameter descriptors */ - - int numSpecSigs; /* number of special signals legal in parse trees */ - char **specSigs; /* names of special signals legal in parse trees */ - -} IFsimulator; - -/* - * Structure: IFfrontEnd - * - * This structure provides the simulator with all the information - * it needs about the front end. This is the entire set of - * front end and back end related routines the simulator - * should know about. - * - */ - -typedef struct sIFfrontEnd { -#ifdef __STDC__ - int ((*IFnewUid)(GENERIC*,IFuid*,IFuid,char*,int,GENERIC**)); - /* create a new UID in the circuit */ - int ((*IFdelUid)(GENERIC*,IFuid,int)); - /* create a new UID in the circuit */ - int ((*IFpauseTest)(void)); - /* should we stop now? */ - double ((*IFseconds)(void)); - /* what time is it? */ - int ((*IFerror)(int,char*,IFuid*)); - /* output an error or warning message */ - int ((*OUTpBeginPlot)(GENERIC*,GENERIC*,IFuid,IFuid,int, - int,IFuid*,int,GENERIC**)); - /* start pointwise output plot */ - int ((*OUTpData)(GENERIC*,IFvalue*,IFvalue*)); - /* data for pointwise plot */ - int ((*OUTwBeginPlot)(GENERIC*,GENERIC*,IFuid,IFuid,int, - int,IFuid*,int,GENERIC**)); - /* start windowed output plot */ - int ((*OUTwReference)(GENERIC*,IFvalue*,GENERIC**)); - /* independent vector for windowed plot */ - int ((*OUTwData)(GENERIC*,int,IFvalue*,GENERIC*)); - /* data for windowed plot */ - int ((*OUTwEnd)(GENERIC*)); - /* signal end of windows */ - int ((*OUTendPlot)(GENERIC*)); - /* end of plot */ - int ((*OUTbeginDomain)(GENERIC*,IFuid,int,IFvalue*)); - /* start nested domain */ - int ((*OUTendDomain)(GENERIC*)); - /* end nested domain */ - int ((*OUTattributes)(GENERIC *,IFuid*,int,IFvalue*)); - /* specify output attributes of node */ -#else /* not STDC */ - int ((*IFnewUid)()); /* create a new UID in the circuit */ - int ((*IFdelUid)()); /* create a new UID in the circuit */ - int ((*IFpauseTest)()); /* should we stop now? */ - double ((*IFseconds)()); /* what time is it? */ - int ((*IFerror)()); /* output an error or warning message */ - int ((*OUTpBeginPlot)()); /* start pointwise output plot */ - int ((*OUTpData)()); /* data for pointwise plot */ - int ((*OUTwBeginPlot)()); /* start windowed output plot */ - int ((*OUTwReference)()); /* independent vector for windowed plot */ - int ((*OUTwData)()); /* data for windowed plot */ - int ((*OUTwEnd)()); /* signal end of windows */ - int ((*OUTendPlot)()); /* end of plot */ - int ((*OUTbeginDomain)()); /* start nested domain */ - int ((*OUTendDomain)()); /* end nested domain */ - int ((*OUTattributes)()); /* specify output attributes of node */ -#endif /* STDC */ -} IFfrontEnd; - -/* flags for the first argument to IFerror */ -#define ERR_WARNING 0x1 -#define ERR_FATAL 0x2 -#define ERR_PANIC 0x4 -#define ERR_INFO 0x8 - - /* valid values for the second argument to doAnalyses */ - - /* continue the analysis from where we left off */ -#define RESUME 0 - /* start everything over from the beginning of this task*/ -#define RESTART 1 - /* abandon the current analysis and go on the the next in the task*/ -#define SKIPTONEXT 2 - -#define OUT_SCALE_LIN 1 -#define OUT_SCALE_LOG 2 - -#endif /*IFSIMULATOR*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/inpdefs.h b/plugins/models-jspice3-2.5/Include.3f5/inpdefs.h deleted file mode 100644 index fb2d3fec..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/inpdefs.h +++ /dev/null @@ -1,195 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ - -#ifndef INP -#define INP - - /* structure declarations used by either/both input package */ - -#include "ifsim.h" -#include "gendefs.h" -#include "inpptree.h" - -struct INPtab { - char *t_ent; - struct INPtab *t_next; -}; - -struct INPnTab { - char *t_ent; - GENERIC* t_node; - struct INPnTab *t_next; -}; - -typedef struct sINPtables{ - struct INPtab **INPsymtab; - struct INPnTab **INPtermsymtab; - int INPsize; - int INPtermsize; - GENERIC *defAmod; - GENERIC *defBmod; - GENERIC *defCmod; - GENERIC *defDmod; - GENERIC *defEmod; - GENERIC *defFmod; - GENERIC *defGmod; - GENERIC *defHmod; - GENERIC *defImod; - GENERIC *defJmod; - GENERIC *defKmod; - GENERIC *defLmod; - GENERIC *defMmod; - GENERIC *defNmod; - GENERIC *defOmod; - GENERIC *defPmod; - GENERIC *defQmod; - GENERIC *defRmod; - GENERIC *defSmod; - GENERIC *defTmod; - GENERIC *defUmod; - GENERIC *defVmod; - GENERIC *defWmod; - GENERIC *defYmod; - GENERIC *defZmod; -} INPtables; - -typedef struct card{ - int linenum; - char *line; - char *error; - struct card *nextcard; - struct card *actualLine; -} card; - -/* structure used to save models in after they are read during pass 1 */ -typedef struct sINPmodel{ - IFuid INPmodName; /* uid of model */ - int INPmodType; /* type index of device type */ - struct sINPmodel *INPnextModel; /* link to next model */ - int INPmodUsed; /* flag to indicate it has already been used */ - card *INPmodLine; /* pointer to line describing model */ - GENERIC *INPmodfast; /* high speed pointer to model for access */ -} INPmodel; - -/* listing types - used for debug listings */ -#define LOGICAL 1 -#define PHYSICAL 2 - -#ifdef __STDC__ -int IFnewUid(GENERIC*,IFuid*,IFuid,char*,int,GENERIC**); -int IFdelUid(GENERIC*,IFuid,int); -int INPaName(char*,IFvalue*,GENERIC*,int*,char*,GENERIC**,IFsimulator*,int*, - IFvalue*); -int INPapName(GENERIC*,int,GENERIC*,char*,IFvalue*); -void INPcaseFix(char*); -char * INPdevParse(char**,GENERIC*,int,GENERIC*,double*,int*,INPtables*); -char *INPdomodel(GENERIC *,card*, INPtables*); -void INPdoOpts(GENERIC*,GENERIC*,card*,INPtables*); -char *INPerrCat(char *, char *); -char *INPerror(int); -double INPevaluate(char**,int*,int); -char * INPfindLev(char*,int*); -char * INPgetMod(GENERIC*,char*,INPmodel**,INPtables*); -int INPgetTok(char**,char**,int); -void INPgetTree(char**,INPparseTree**,GENERIC*,INPtables*); -IFvalue * INPgetValue(GENERIC*,char**,int,INPtables*); -int INPgndInsert(GENERIC*,char**,INPtables*,GENERIC**); -int INPinsert(char**,INPtables*); -int INPremove(char*,INPtables*); -int INPlookMod(char*); -int INPmakeMod(char*,int,card*); -char *INPmkTemp(char*); -void INPpas1(GENERIC*,card*,INPtables*); -void INPpas2(GENERIC*,card*,INPtables*,GENERIC *); -int INPpName(char*,IFvalue*,GENERIC*,int,GENERIC*); -int INPtermInsert(GENERIC*,char**,INPtables*,GENERIC**); -int INPmkTerm(GENERIC*,char**,INPtables*,GENERIC**); -int INPtypelook(char*); -void INP2B(GENERIC*,INPtables*,card*); -void INP2C(GENERIC*,INPtables*,card*); -void INP2D(GENERIC*,INPtables*,card*); -void INP2E(GENERIC*,INPtables*,card*); -void INP2F(GENERIC*,INPtables*,card*); -void INP2G(GENERIC*,INPtables*,card*); -void INP2H(GENERIC*,INPtables*,card*); -void INP2I(GENERIC*,INPtables*,card*); -void INP2J(GENERIC*,INPtables*,card*); -void INP2K(GENERIC*,INPtables*,card*); -void INP2L(GENERIC*,INPtables*,card*); -void INP2M(GENERIC*,INPtables*,card*); -void INP2O(GENERIC*,INPtables*,card*); -void INP2Q(GENERIC*,INPtables*,card*,GENERIC*); -void INP2R(GENERIC*,INPtables*,card*); -void INP2S(GENERIC*,INPtables*,card*); -void INP2T(GENERIC*,INPtables*,card*); -void INP2U(GENERIC*,INPtables*,card*); -void INP2V(GENERIC*,INPtables*,card*); -void INP2W(GENERIC*,INPtables*,card*); -void INP2Z(GENERIC*,INPtables*,card*); -int INP2dot(GENERIC*,INPtables*,card*,GENERIC*,GENERIC*); -INPtables *INPtabInit(int); -void INPkillMods(void); -void INPtabEnd(INPtables *); -#else /* stdc */ -int IFnewUid(); -int IFdelUid(); -int INPaName(); -IFvalue * INPgetValue(); -INPtables *INPtabInit(); -char * INPdevParse(); -char * INPdomodel(); -char * INPerrCat(); -char * INPfindLev(); -char * INPgetMod(); -char *INPerror(); -char *INPmkTemp(); -double INPevaluate(); -int INPapName(); -int INPgetTitle(); -int INPgetTok(); -int INPgndInsert(); -int INPlookMod(); -int INPmakeMod(); -int INPpName(); -int INPreadAll(); -int INPtermInsert(); -int INPmkTerm(); -int INPtypelook(); -void INPcaseFix(); -void INPdoOpts(); -int INPinsert(); -int INPremove(); -void INPkillMods(); -void INPlist(); -void INPpas1() ; -void INPpas2() ; -void INPtabEnd(); -void INPptPrint(); -void INPgetTree(); -void INP2B(); -void INP2C(); -void INP2D(); -void INP2E(); -void INP2F(); -void INP2G(); -void INP2H(); -void INP2I(); -void INP2J(); -void INP2K(); -void INP2L(); -void INP2M(); -void INP2O(); -void INP2Q(); -void INP2R(); -void INP2S(); -void INP2T(); -void INP2U(); -void INP2V(); -void INP2W(); -void INP2Z(); -int INP2dot(); -#endif /* stdc */ - -#endif /*INP*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/inpmacs.h b/plugins/models-jspice3-2.5/Include.3f5/inpmacs.h deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/inpmacs.h +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/inpptree.h b/plugins/models-jspice3-2.5/Include.3f5/inpptree.h deleted file mode 100644 index 1d08ea7d..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/inpptree.h +++ /dev/null @@ -1,170 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1987 Wayne A. Christopher, U. C. Berkeley CAD Group -**********/ - -/* - * [email protected], ucbvax!faustus - * - * These definitions specify the format of the parse tree parameter type. - * The first four are the elements of IFparseTree, defined in IFsim.h. - */ - -#include "ifsim.h" - -#ifndef INP_PARSE -#define INP_PARSE - - -/* This is the parameter value passed to the device routines. To get the - * value of the function, where tree is a pointer to the INPparseTree, - * result is a pointer to where you want the result, derivs is a pointer to - * an vector of numVars doubles, and vals is a pointer to the selected - * elements from the RHS, do - * tree->p.IFeval(&tree, result, vals, derivs) - * This routine will return either OK, E_PARMVAL, or E_PANIC. If an error - * is reported the eval function will have printed something to standard - * out before returning. - */ - -typedef struct INPparseTree { - IFparseTree p; - struct INPparseNode *tree; /* The real stuff. */ - struct INPparseNode **derivs; /* The derivative parse trees. */ -} INPparseTree; - -/* This is what is passed as the actual parameter value. The fields will all - * be filled in as needed. - * - * Values with names like v(something) and i(something) are treated specially. - * They are considered voltages at nodes and branch currents through - * voltage sources, respectively. The corresponding parameters will be of - * type IF_NODE and IF_INSTANCE, respectively. - */ - -typedef struct INPparseNode { - int type; /* One of PT_*, below. */ - struct INPparseNode *left; /* Left operand, or single operand. */ - struct INPparseNode *right; /* Right operand, if there is one. */ - double constant; /* If INP_CONSTANT. */ - int valueIndex; /* If INP_VAR, index into vars array. */ - char *funcname; /* If INP_FUNCTION, name of function, */ - int funcnum; /* ... one of PTF_*, */ - double (*function)(); /* ... and pointer to the function. */ -} INPparseNode; - -/* These are the possible types of nodes we can have in the parse tree. The - * numbers for the ops 1 - 5 have to be the same as the token numbers, - * below. - */ - -#define PT_PLACEHOLDER 0 /* For i(something) ... */ -#define PT_PLUS 1 -#define PT_MINUS 2 -#define PT_TIMES 3 -#define PT_DIVIDE 4 -#define PT_POWER 5 -#define PT_FUNCTION 6 -#define PT_CONSTANT 7 -#define PT_VAR 8 -#define PT_COMMA 10 - -/* These are the functions that we support. */ - -#define PTF_ACOS 0 -#define PTF_ACOSH 1 -#define PTF_ASIN 2 -#define PTF_ASINH 3 -#define PTF_ATAN 4 -#define PTF_ATANH 5 -#define PTF_COS 6 -#define PTF_COSH 7 -#define PTF_EXP 8 -#define PTF_LN 9 -#define PTF_LOG 10 -#define PTF_SIN 11 -#define PTF_SINH 12 -#define PTF_SQRT 13 -#define PTF_TAN 14 -#define PTF_TANH 15 -#define PTF_UMINUS 16 -#define PTF_ABS 17 -#define PTF_SGN 18 -#define PTF_USTEP 19 -#define PTF_URAMP 20 - -/* The following things are used by the parser -- these are the token types the - * lexer returns. - */ - -#define TOK_END 0 -#define TOK_PLUS 1 -#define TOK_MINUS 2 -#define TOK_TIMES 3 -#define TOK_DIVIDE 4 -#define TOK_POWER 5 -#define TOK_UMINUS 6 -#define TOK_LPAREN 7 -#define TOK_RPAREN 8 -#define TOK_VALUE 9 -#define TOK_COMMA 10 - -/* And the types for value tokens... */ - -#define TYP_NUM 0 -#define TYP_STRING 1 -#define TYP_PNODE 2 - -/* A parser stack element. */ - -typedef struct PTelement { - int token; - int type; - union { - char *string; - double real; - INPparseNode *pnode; - } value; -} PTelement ; - -#define PT_STACKSIZE 200 - -/* These are things defined in PTfunctions.c */ - -extern double PTplus(); -extern double PTminus(); -extern double PTtimes(); -extern double PTdivide(); -extern double PTpower(); -extern double PTacos(); -extern double PTabs(); -extern double PTacosh(); -extern double PTasin(); -extern double PTasinh(); -extern double PTatan(); -extern double PTatanh(); -extern double PTcos(); -extern double PTcosh(); -extern double PTexp(); -extern double PTln(); -extern double PTlog(); -extern double PTsgn(); -extern double PTsin(); -extern double PTsinh(); -extern double PTsqrt(); -extern double PTtan(); -extern double PTtanh(); -extern double PTustep(); -extern double PTuramp(); -extern double PTuminus(); - -/* And in IFeval.c */ - -#ifdef __STDC__ -extern int IFeval(IFparseTree *, double, double*, double*, double*); -#else /* stdc */ -extern int IFeval(); -#endif /* stdc */ - -#endif - diff --git a/plugins/models-jspice3-2.5/Include.3f5/jobdefs.h b/plugins/models-jspice3-2.5/Include.3f5/jobdefs.h deleted file mode 100644 index 71bbe241..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/jobdefs.h +++ /dev/null @@ -1,35 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ - -#ifndef JOBdef -#define JOBdef - - -#include "ifsim.h" - -typedef struct sJOB{ - int JOBtype; /* type of job */ - struct sJOB *JOBnextJob; /* next job in list */ - IFuid JOBname; /* name of this job */ - -} JOB; - -typedef struct { - IFanalysis public; - int size; - int domain; - int do_ic; - int (*(setParm))( ); - int (*(askQuest))( ); - int (*an_init)( ); - int (*an_func)( ); -} SPICEanalysis; - -#define NODOMAIN 0 -#define TIMEDOMAIN 1 -#define FREQUENCYDOMAIN 2 -#define SWEEPDOMAIN 3 - -#endif /*JOBdef*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/misc.h b/plugins/models-jspice3-2.5/Include.3f5/misc.h deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/misc.h +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/noisedef.h b/plugins/models-jspice3-2.5/Include.3f5/noisedef.h deleted file mode 100644 index 50d73bf3..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/noisedef.h +++ /dev/null @@ -1,127 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1987 Gary W. Ng -**********/ - -#ifndef NOISEDEFS -#define NOISEDEFS - -#include "jobdefs.h" - - /* structure used to describe an noise analysis */ - -typedef struct { - int JOBtype; - JOB *JOBnextJob; /* pointer to next thing to do */ - char *JOBname; /* name of this job */ - IFnode output; /* noise output summation node */ - IFnode outputRef; /* noise output reference node */ - IFuid input; /* name of the AC source used as input reference */ - double NstartFreq; - double NstopFreq; - double NfreqDelta; /* multiplier for decade/octave stepping, */ - /* step for linear steps. */ - double NsavFstp; /* frequency step at which we stopped last time */ - double NsavOnoise; /* integrated output noise when we left off last time */ - double NsavInoise; /* integrated input noise when we left off last time */ - int NstpType; /* values described below */ - int NnumSteps; - int NStpsSm; /* number of steps before we output a noise summary report */ -} NOISEAN; - - - - /* structure used to carry information between subparts of the noise analysis code */ - -typedef struct { - double freq; - double lstFreq; - double delFreq; - double outNoiz; /* integrated output noise as of the last frequency point */ - double inNoise; /* integrated input noise as of the last frequency point */ - double GainSqInv; - double lnGainInv; - double lnFreq; - double lnLastFreq; - double delLnFreq; - int outNumber; /* keeps track of the current output variable */ - int numPlots; /* keeps track of the number of active plots so we can close them in */ - /* a do loop. */ - unsigned int prtSummary; - double *outpVector; /* pointer to our array of noise outputs */ - GENERIC *NplotPtr; /* the plot pointer */ - IFuid *namelist; /* list of plot names */ -} Ndata; - - -/* codes for saving and retrieving integrated noise data */ - -#define LNLSTDENS 0 /* array location that the log of the last noise density is stored */ -#define OUTNOIZ 1 /* array location that integrated output noise is stored */ -#define INNOIZ 2 /* array location that integrated input noise is stored */ - -#define NSTATVARS 3 /* number of "state" variables that must be stored for each noise */ - /* generator. in this case it is three: LNLSTDENS, OUTNOIZ */ - /* and INNOIZ */ - - -/* available step types: */ - -#define DECADE 1 -#define OCTAVE 2 -#define LINEAR 3 - - -/* noise analysis parameters */ - -#define N_OUTPUT 1 -#define N_OUTREF 2 -#define N_INPUT 3 -#define N_START 4 -#define N_STOP 5 -#define N_STEPS 6 -#define N_PTSPERSUM 7 -#define N_DEC 8 -#define N_OCT 9 -#define N_LIN 10 - - -/* noise routine operations/modes */ - -#define N_DENS 1 -#define INT_NOIZ 2 -#define N_OPEN 1 -#define N_CALC 2 -#define N_CLOSE 3 -#define SHOTNOISE 1 -#define THERMNOISE 2 -#define N_GAIN 3 - - -/* tolerances and limits to make numerical analysis more robust */ - -#define N_MINLOG 1E-38 /* the smallest number we can take the log of */ -#define N_MINGAIN 1E-20 /* the smallest input-output gain we can tolerate */ - /* (to calculate input-referred noise we divide */ - /* the output noise by the gain) */ -#define N_INTFTHRESH 1E-10 /* the largest slope (of a log-log noise spectral */ - /* density vs. freq plot) at which the noise */ - /* spectum is still considered flat. (no need for */ - /* log curve fitting) */ -#define N_INTUSELOG 1E-10 /* decides which expression to use for the integral of */ - /* x**k. If k is -1, then we must use a 'ln' form. */ - /* Otherwise, we use a 'power' form. This */ - /* parameter is the region around (k=) -1 for which */ - /* use the 'ln' form. */ - - -/* misc constants */ - -#define N_MXVLNTH 64 /* maximum length for noise output variables we will generate */ - /* (see MAXVLENGTH in FTE/writedata.c) */ - - - -extern int NsetParm(); -extern int NaskQuest(); -#endif /*NOISEDEFS*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/optdefs.h b/plugins/models-jspice3-2.5/Include.3f5/optdefs.h deleted file mode 100644 index 4a9d2831..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/optdefs.h +++ /dev/null @@ -1,80 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ - -#ifndef OPT -#define OPT - - /* structure used to describe the statistics to be collected */ - -typedef struct { - - int STATnumIter; /* number of total iterations performed */ - int STATtranIter; /* number of iterations for transient analysis */ - int STAToldIter; /* number of iterations at the end of the last point */ - /* used to compute iterations per point */ - - int STATtimePts; /* total number of timepoints */ - int STATaccepted; /* number of timepoints accepted */ - int STATrejected; /* number of timepoints rejected */ - - double STATtotAnalTime; /* total time for analysis */ - double STATtranTime; /* transient analysis time */ - double STATloadTime; /* time spent in device loading */ - double STATdecompTime; /* total time spent in LU decomposition */ - double STATsolveTime; /* total time spent in F-B subst. */ - double STATreorderTime; /* total time spent reordering */ - double STATtranDecompTime; /* time spent in transient LU decomposition */ - double STATtranSolveTime; /* time spent in transient F-B Subst. */ - -} STATistics; - -#define OPT_GMIN 1 -#define OPT_RELTOL 2 -#define OPT_ABSTOL 3 -#define OPT_VNTOL 4 -#define OPT_TRTOL 5 -#define OPT_CHGTOL 6 -#define OPT_PIVTOL 7 -#define OPT_PIVREL 8 -#define OPT_TNOM 9 -#define OPT_ITL1 10 -#define OPT_ITL2 11 -#define OPT_ITL3 12 -#define OPT_ITL4 13 -#define OPT_ITL5 14 -#define OPT_DEFL 15 -#define OPT_DEFW 16 -#define OPT_DEFAD 17 -#define OPT_DEFAS 18 -#define OPT_BYPASS 19 -#define OPT_MAXORD 20 - -#define OPT_ITERS 21 -#define OPT_TRANIT 22 -#define OPT_TRANPTS 23 -#define OPT_TRANACCPT 24 -#define OPT_TRANRJCT 25 -#define OPT_TOTANALTIME 26 -#define OPT_TRANTIME 27 -#define OPT_LOADTIME 28 -#define OPT_DECOMP 29 -#define OPT_SOLVE 30 -#define OPT_TRANDECOMP 31 -#define OPT_TRANSOLVE 32 -#define OPT_TEMP 33 -#define OPT_OLDLIMIT 34 -#define OPT_TRANCURITER 35 -#define OPT_SRCSTEPS 36 -#define OPT_GMINSTEPS 37 -#define OPT_MINBREAK 38 -#define OPT_NOOPITER 39 -#define OPT_EQNS 40 -#define OPT_REORDTIME 41 -#define OPT_METHOD 42 -#define OPT_TRYTOCOMPACT 43 -#define OPT_BADMOS3 44 -#define OPT_KEEPOPINFO 45 - -#endif /*OPT*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/port.h b/plugins/models-jspice3-2.5/Include.3f5/port.h deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/port.h +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/sen2defs.h b/plugins/models-jspice3-2.5/Include.3f5/sen2defs.h deleted file mode 100644 index 8cf755ac..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/sen2defs.h +++ /dev/null @@ -1,69 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -**********/ -/* - * SENdefs.h - structures for sensitivity package - */ - -#ifndef SENSTRUCTS -#define SENSTRUCTS - - -#include "smpdefs.h" -#include "jobdefs.h" - -typedef struct { - int JOBtype; - JOB *JOBnextJob; /* pointer to next thing to do */ - char *JOBname; /* name of this job */ - - int SENnumVal; /* length of the next two arrays */ - char **SENdevices; /* names of the devices to do sensetivity analysis of */ - char **SENparmNames;/* parameters of the above devices to do analysis wrt */ - - unsigned int SENinitflag :1 ; /* indicates whether sensitivity structure*/ - /* is to be initialized */ - unsigned int SENicflag :1 ; /* indicates whether initial conditions - are specified for transient analysis */ - - unsigned int SENstatus :1; /* indicates whether perturbation - is in progress*/ - unsigned int SENacpertflag :1; /* indictes whether the perturbation - is to be carried out in ac analysis - (is done only for first frequency )*/ - int SENmode; /* indicates the type of sensitivity analysis - reqired: DC, Transient, or AC */ - int SENparms; /* # of design parameters */ - double SENpertfac; /* perturbation factor (for active - devices )*/ - double **SEN_Sap; /* sensitivity matrix (DC and transient )*/ - double **SEN_RHS; /* RHS matrix (real part) - contains the sensitivity values after SMPsolve*/ - double **SEN_iRHS; /* RHS matrix (imag part ) - contains the sensitivity values after SMPsolve*/ - int SENsize; /* stores the number of rows of each of the above - three matrices */ - SMPmatrix *SEN_Jacmat; /* sensitivity Jacobian matrix, */ - double *SEN_parmVal; /* table containing values of design parameters */ - char **SEN_parmName; /* table containing names of design parameters */ - -} SENstruct; - -/* SENmode */ -#define DCSEN 0x1 -#define TRANSEN 0x2 -#define ACSEN 0x4 - -#define NORMAL 0 -#define PERTURBATION 1 -#define OFF 0 -#define ON 1 - - -#define SEN_AC 1 -#define SEN_DC 2 -#define SEN_TRAN 3 -#define SEN_DEV 4 -#define SEN_PARM 5 - -#endif /* SENSTRUCTS */ diff --git a/plugins/models-jspice3-2.5/Include.3f5/sperror.h b/plugins/models-jspice3-2.5/Include.3f5/sperror.h deleted file mode 100644 index ab0dd490..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/sperror.h +++ /dev/null @@ -1,36 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ - -#ifndef ERRORS -#define ERRORS - -#include "iferrmsg.h" -#include "strext.h" - - /* - * definitions for error codes returned by SPICE3 routines. - */ - -#define E_INTERN E_PANIC -#define E_BADMATRIX (E_PRIVATE+1)/* ill-formed matrix can't be decomposed */ -#define E_SINGULAR (E_PRIVATE+2) /* matrix is singular */ -#define E_ITERLIM (E_PRIVATE+3) /* iteration limit reached,operation aborted */ -#define E_ORDER (E_PRIVATE+4) /* integration order not supported */ -#define E_METHOD (E_PRIVATE+5) /* integration method not supported */ -#define E_TIMESTEP (E_PRIVATE+6) /* timestep too small */ -#define E_XMISSIONLINE (E_PRIVATE+7) /* transmission line in pz analysis */ -#define E_MAGEXCEEDED (E_PRIVATE+8) /* pole-zero magnitude too large */ -#define E_SHORT (E_PRIVATE+9) /* pole-zero input or output shorted */ -#define E_INISOUT (E_PRIVATE+10) /* pole-zero input is output */ -#define E_ASKCURRENT (E_PRIVATE+11) /* ac currents cannot be ASKed */ -#define E_ASKPOWER (E_PRIVATE+12) /* ac powers cannot be ASKed */ -#define E_NODUNDEF (E_PRIVATE+13) /* node not defined in noise anal */ -#define E_NOACINPUT (E_PRIVATE+14) /* no ac input src specified for noise */ -#define E_NOF2SRC (E_PRIVATE+15) /* no source at F2 for IM disto analysis */ -#define E_NODISTO (E_PRIVATE+16) /* no distortion analysis - NODISTO defined */ -#define E_NONOISE (E_PRIVATE+17) /* no noise analysis - NONOISE defined */ - -char *SPerror(); -#endif diff --git a/plugins/models-jspice3-2.5/Include.3f5/spice.h b/plugins/models-jspice3-2.5/Include.3f5/spice.h deleted file mode 100644 index 1c39f180..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/spice.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Portability, global externs, kitchen sink (yuk). - * In future releases this will include things from misc.h and util.h, - * which duplicate each other in places - */ - -#include "math.h" - -#ifndef M_PI -# define M_PI 3.14159265358979323846 -#endif -#ifndef M_E -# define M_E 2.7182818284590452354 -#endif -#ifndef M_LOG2E -# define M_LOG2E 1.4426950408889634074 -#endif -#ifndef M_LOG10E -# define M_LOG10E 0.43429448190325182765 -#endif - - -#ifndef PI -# define PI 3.14159265358979323846 -#endif -#ifndef M_E -# define M_E 2.7182818284590452354 -#endif -#ifndef LOG2E -# define LOG2E 1.4426950408889634074 -#endif -#ifndef LOG10E -# define LOG10E 0.43429448190325182765 -#endif - - - -#include "port.h" -#include "hw.h" -#include "config.h" -#include "capabil.h" - -#define NUMELEMS(ARRAY) (sizeof(ARRAY)/sizeof(*ARRAY)) - -extern char *Spice_Exec_Dir; -extern char *Spice_Lib_Dir; -extern char Spice_OptChar; -extern char *Def_Editor; -extern char *Bug_Addr; -extern int AsciiRawFile; -extern char *Spice_Host; -extern char *Spiced_Log; - -extern char Spice_Notice[ ]; -extern char Spice_Version[ ]; -extern char Spice_Build_Date[ ]; - -extern char *News_File; -extern char *Default_MFB_Cap; -extern char *Spice_Path; -extern char *Help_Path; -extern char *Lib_Path; -extern int Patch_Level; diff --git a/plugins/models-jspice3-2.5/Include.3f5/strext.h b/plugins/models-jspice3-2.5/Include.3f5/strext.h deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/strext.h +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/suffix.h b/plugins/models-jspice3-2.5/Include.3f5/suffix.h deleted file mode 100644 index 06c9f784..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/suffix.h +++ /dev/null @@ -1,5 +0,0 @@ - - -#include <string.h> -#define MAX_EXP_ARG 87.0 /* max arg to exp(), max value, could be 709.0 for ieee */ -#undef PI diff --git a/plugins/models-jspice3-2.5/Include.3f5/suffix.h.orig b/plugins/models-jspice3-2.5/Include.3f5/suffix.h.orig deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/suffix.h.orig +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/trandefs.h b/plugins/models-jspice3-2.5/Include.3f5/trandefs.h deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/trandefs.h +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/trcvdefs.h b/plugins/models-jspice3-2.5/Include.3f5/trcvdefs.h deleted file mode 100644 index 441e9331..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/trcvdefs.h +++ /dev/null @@ -1 +0,0 @@ -#include "tskdefs.h" diff --git a/plugins/models-jspice3-2.5/Include.3f5/tskdefs.h b/plugins/models-jspice3-2.5/Include.3f5/tskdefs.h deleted file mode 100644 index f009e874..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/tskdefs.h +++ /dev/null @@ -1,61 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ -/* - */ -#ifndef TSK -#define TSK - - -#include "jobdefs.h" - -typedef struct { - JOB taskOptions; /* job structure at the front to hold options */ - JOB *jobs; - char *TSKname; - double TSKtemp; - double TSKnomTemp; - int TSKmaxOrder; /* maximum integration method order */ - int TSKintegrateMethod; /* the integration method to be used */ - int TSKcurrentAnalysis; /* the analysis in progress (if any) */ - -/* defines for the value of TSKcurrentAnalysis */ -#define DOING_DCOP 1 -#define DOING_TRCV 2 -#define DOING_AC 4 -#define DOING_TRAN 8 - - int TSKbypass; - int TSKdcMaxIter; /* iteration limit for dc op. (itl1) */ - int TSKdcTrcvMaxIter; /* iteration limit for dc tran. curv (itl2) */ - int TSKtranMaxIter; /* iteration limit for each timepoint for tran*/ - /* (itl4) */ - int TSKnumSrcSteps; /* number of steps for source stepping */ - int TSKnumGminSteps; /* number of steps for Gmin stepping */ - double TSKminBreak; - double TSKabstol; - double TSKpivotAbsTol; - double TSKpivotRelTol; - double TSKreltol; - double TSKchgtol; - double TSKvoltTol; -#ifdef NEWTRUNC - double TSKlteReltol; - double TSKlteAbstol; -#endif /* NEWTRUNC */ - double TSKgmin; - double TSKdelmin; - double TSKtrtol; - double TSKdefaultMosL; - double TSKdefaultMosW; - double TSKdefaultMosAD; - double TSKdefaultMosAS; - unsigned int TSKfixLimit:1; - unsigned int TSKnoOpIter:1; /* no OP iterating, go straight to gmin step */ - unsigned int TSKtryToCompact:1; /* flag for LTRA lines */ - unsigned int TSKbadMos3:1; /* flag for MOS3 models */ - unsigned int TSKkeepOpInfo:1; /* flag for small signal analyses */ -}TSKtask; - -#endif /*TSK*/ diff --git a/plugins/models-jspice3-2.5/Include.3f5/uflags.h b/plugins/models-jspice3-2.5/Include.3f5/uflags.h deleted file mode 100644 index e69de29b..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/uflags.h +++ /dev/null diff --git a/plugins/models-jspice3-2.5/Include.3f5/util.h b/plugins/models-jspice3-2.5/Include.3f5/util.h deleted file mode 100644 index 3d5e6484..00000000 --- a/plugins/models-jspice3-2.5/Include.3f5/util.h +++ /dev/null @@ -1,77 +0,0 @@ -/********** -Copyright 1990 Regents of the University of California. All rights reserved. -Author: 1985 Thomas L. Quarles -**********/ - -#ifndef UTIL -#define UTIL - -/* #define MALLOC(x) calloc(1,(unsigned)(x)) */ -#define MALLOC(x) tmalloc((unsigned)(x)) -#define FREE(x) {if (x) {free((char *)(x));(x) = 0;}} -#define REALLOC(x,y) trealloc((char *)(x),(unsigned)(y)) -#define ZERO(PTR,TYPE) (bzero((PTR),sizeof(TYPE))) - -#ifdef HAS_STDLIB -#ifndef _STDLIB_INCLUDED -#define _STDLIB_INCLUDED -#include <stdlib.h> -#endif -#else -extern char *malloc(); -extern char *calloc(); -extern char *realloc(); -extern void free(); -#endif - -extern char *trealloc(); -extern char *tmalloc(); - -#define TRUE 1 -#define FALSE 0 - -#ifdef DEBUG -#define DEBUGMSG(textargs) printf(textargs) -#else -#define DEBUGMSG(testargs) -#endif - -#ifdef HAS_NOINLINE -#define FABS(a) fabs(a) -double fabs(); -#else -#define FABS(a) ( ((a)<0) ? -(a) : (a) ) -#endif - -/* XXX Move these into the above ifdef someday */ -#define MIN(a,b) ((a) < (b) ? (a) : (b)) -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#define SIGN(a,b) ( b >= 0 ? (a >= 0 ? a : - a) : (a >= 0 ? - a : a)) - -#define ABORT() fflush(stderr);fflush(stdout);abort(); - -#define ERROR(CODE,MESSAGE) { \ - errMsg = MALLOC(strlen(MESSAGE) + 1); \ - strcpy(errMsg, (MESSAGE)); \ - return (CODE); \ - } - -#define NEW(TYPE) ((TYPE *) MALLOC(sizeof(TYPE))) -#define NEWN(TYPE,COUNT) ((TYPE *) MALLOC(sizeof(TYPE) * (COUNT))) - -#endif /*UTIL*/ - -#define R_NORM(A,B) { \ - if ((A) == 0.0) { \ - (B) = 0; \ - } else { \ - while (FABS(A) > 1.0) { \ - (B) += 1; \ - (A) /= 2.0; \ - } \ - while (FABS(A) < 0.5) { \ - (B) -= 1; \ - (A) *= 2.0; \ - } \ - } \ - } diff --git a/plugins/models-jspice3-2.5/Make2.gcc b/plugins/models-jspice3-2.5/Make2.gcc index 1ec40e7f..6485640d 100644 --- a/plugins/models-jspice3-2.5/Make2.gcc +++ b/plugins/models-jspice3-2.5/Make2.gcc @@ -1,9 +1,9 @@ # $Id$ -*- Makefile -*- -PREFIX = /usr/local/gnucap -INSTALL_DIR = $(PREFIX)/lib/models/jspice3-2.5 +PREFIX = $(shell gnucap-conf --exec_prefix ) +INSTALL_DIR = $(shell gnucap-conf --pkglibdir )/models/jspice3-2.5 SPICE_INCLUDE = ../Include -GNUCAP_INCLUDE = ../Gnucap +GNUCAP_INCLUDE = $(shell gnucap-conf --includedir ) VPATH = .:$(SPICE_INCLUDE):$(GNUCAP_INCLUDE) C_SRCS = $(CFILES) devsup.c gendest.c genmdel.c gendel.c genmosp.c @@ -14,10 +14,12 @@ OBJS = ${CC_SRCS:.cc=.o} ${C_SRCS:.c=.o} CC = gcc CCC = g++ -CFLAGS = -O2 -g -I. -I$(SPICE_INCLUDE) -DTRACE_UNTESTED -D$(SPICE_VERSION) \ +C_CC_FLAGS = -O2 -g -I. -I$(SPICE_INCLUDE) -DTRACE_UNTESTED -D$(SPICE_VERSION) \ -DSTDC_HEADERS -DRETSIGTYPE=void -fPIC -CCFLAGS = $(CFLAGS) -I$(GNUCAP_INCLUDE) -Wall -Wextra +CFLAGS = $(C_CC_FLAGS) -std=gnu90 + +CCFLAGS = $(C_CC_FLAGS) -I$(GNUCAP_INCLUDE) -Wall -Wextra LDFLAGS = -shared diff --git a/plugins/models-jspice3-2.5/Make2.mingw b/plugins/models-jspice3-2.5/Make2.mingw index 40898777..180cd81f 100644 --- a/plugins/models-jspice3-2.5/Make2.mingw +++ b/plugins/models-jspice3-2.5/Make2.mingw @@ -1,9 +1,9 @@ # $Id$ -*- Makefile -*- -PREFIX = /usr/local/gnucap -INSTALL_DIR = $(PREFIX)/lib/models/jspice3-2.5 +PREFIX = $(shell gnucap-conf --exec_prefix ) +INSTALL_DIR = $(shell gnucap-conf --pkglibdir )/models/jspice3-2.5 SPICE_INCLUDE = ../Include -GNUCAP_INCLUDE = ../Gnucap +GNUCAP_INCLUDE = $(shell gnucap-conf --includedir ) VPATH = .:$(SPICE_INCLUDE):$(GNUCAP_INCLUDE) C_SRCS = $(CFILES) devsup.c gendest.c genmdel.c gendel.c genmosp.c diff --git a/plugins/models-jspice3-2.5/Makefile b/plugins/models-jspice3-2.5/Makefile index f30f2613..5c356497 100644 --- a/plugins/models-jspice3-2.5/Makefile +++ b/plugins/models-jspice3-2.5/Makefile @@ -1,54 +1,19 @@ +SUBDIRS = \ +bjt bsim1 bsim2 cap dio disto ind jfet jj \ +ltra mes mos res src sw tra urc + all: - -(cd bjt; make) - -(cd bsim1; make) - -(cd bsim2; make) - -(cd cap; make) - -(cd dio; make) - -(cd ind; make) - -(cd jfet; make) - -(cd jj; make) - -(cd ltra; make) - -(cd mes; make) - -(cd mos; make) - -(cd res; make) - -(cd src; make) - -(cd sw; make) - -(cd tra; make) - -(cd urc; make) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir; \ + done clean: - -(cd bjt; make clean) - -(cd bsim1; make clean) - -(cd bsim2; make clean) - -(cd cap; make clean) - -(cd dio; make clean) - -(cd ind; make clean) - -(cd jfet; make clean) - -(cd jj; make clean) - -(cd ltra; make clean) - -(cd mes; make clean) - -(cd mos; make clean) - -(cd res; make clean) - -(cd src; make clean) - -(cd sw; make clean) - -(cd tra; make clean) - -(cd urc; make clean) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir clean; \ + done install: - -(cd bjt; make install) - -(cd bsim1; make install) - -(cd bsim2; make install) - -(cd cap; make install) - -(cd dio; make install) - -(cd ind; make install) - -(cd jfet; make install) - -(cd jj; make install) - -(cd ltra; make install) - -(cd mes; make install) - -(cd mos; make install) - -(cd res; make install) - -(cd src; make install) - -(cd sw; make install) - -(cd tra; make install) - -(cd urc; make install) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir install; \ + done diff --git a/plugins/models-ngspice17/Gnucap b/plugins/models-ngspice17/Gnucap deleted file mode 120000 index f5030fe8..00000000 --- a/plugins/models-ngspice17/Gnucap +++ /dev/null @@ -1 +0,0 @@ -../include
\ No newline at end of file diff --git a/plugins/models-ngspice17/Include/pzdefs.h b/plugins/models-ngspice17/Include/pzdefs.h index a5e5d7f3..f5261e04 100644 --- a/plugins/models-ngspice17/Include/pzdefs.h +++ b/plugins/models-ngspice17/Include/pzdefs.h @@ -4,7 +4,7 @@ /* structure used to describe an PZ analysis to be performed */ #include "jobdefs.h" -#include <math.h> +//#include <math.h> #include "complex.h" typedef struct strial { diff --git a/plugins/models-jspice3-2.5/Include.3f5/pzdefs.h b/plugins/models-ngspice17/Include/pzdefs.h.orig index f303f1a7..a5e5d7f3 100644 --- a/plugins/models-jspice3-2.5/Include.3f5/pzdefs.h +++ b/plugins/models-ngspice17/Include/pzdefs.h.orig @@ -1,9 +1,10 @@ #ifndef PZDEFS -#define PZDEFS "PZdefs.h $Revision: 1.3 $ on $Date: 88/11/16 21:55:29 $ " +#define PZDEFS "PZdefs.h $Revision: 1.2 $ on $Date: 2003/08/23 19:54:52 $ " /* structure used to describe an PZ analysis to be performed */ #include "jobdefs.h" +#include <math.h> #include "complex.h" typedef struct strial { diff --git a/plugins/models-ngspice17/Include/smpdefs.h b/plugins/models-ngspice17/Include/smpdefs.h index 70cdafac..ee68748b 100644 --- a/plugins/models-ngspice17/Include/smpdefs.h +++ b/plugins/models-ngspice17/Include/smpdefs.h @@ -11,7 +11,7 @@ Modified: 2000 AlansFixes **********/ #include <stdio.h> -#include <math.h> +//#include <math.h> #include "complex.h" int SMPaddElt( SMPmatrix *, int , int , double ); diff --git a/plugins/models-jspice3-2.5/Include.3f5/smpdefs.h b/plugins/models-ngspice17/Include/smpdefs.h.orig index bb3b6e8f..70cdafac 100644 --- a/plugins/models-jspice3-2.5/Include.3f5/smpdefs.h +++ b/plugins/models-ngspice17/Include/smpdefs.h.orig @@ -1,63 +1,48 @@ #ifndef SMP #define SMP -typedef char SMPmatrix; +typedef void SMPmatrix; typedef struct MatrixElement *SMPelement; /********** Copyright 1990 Regents of the University of California. All rights reserved. Author: 1985 Thomas L. Quarles +Modified: 2000 AlansFixes **********/ -#include "complex.h" #include <stdio.h> +#include <math.h> +#include "complex.h" -#ifdef __STDC__ int SMPaddElt( SMPmatrix *, int , int , double ); +double * SMPmakeElt( SMPmatrix * , int , int ); void SMPcClear( SMPmatrix *); +void SMPclear( SMPmatrix *); int SMPcLUfac( SMPmatrix *, double ); -int SMPcProdDiag( SMPmatrix *, SPcomplex *, int *); +int SMPluFac( SMPmatrix *, double , double ); int SMPcReorder( SMPmatrix * , double , double , int *); +int SMPreorder( SMPmatrix * , double , double , double ); +void SMPcaSolve(SMPmatrix *Matrix, double RHS[], double iRHS[], + double Spare[], double iSpare[]); void SMPcSolve( SMPmatrix *, double [], double [], double [], double []); -void SMPclear( SMPmatrix *); -void SMPcolSwap( SMPmatrix * , int , int ); -void SMPdestroy( SMPmatrix *); -int SMPfillup( SMPmatrix * ); -SMPelement * SMPfindElt( SMPmatrix *, int , int , int ); -void SMPgetError( SMPmatrix *, int *, int *); -int SMPluFac( SMPmatrix *, double , double ); -double * SMPmakeElt( SMPmatrix * , int , int ); +void SMPsolve( SMPmatrix *, double [], double []); int SMPmatSize( SMPmatrix *); int SMPnewMatrix( SMPmatrix ** ); -int SMPnewNode( int , SMPmatrix *); +void SMPdestroy( SMPmatrix *); int SMPpreOrder( SMPmatrix *); void SMPprint( SMPmatrix * , FILE *); -int SMPreorder( SMPmatrix * , double , double , double ); -void SMProwSwap( SMPmatrix * , int , int ); -void SMPsolve( SMPmatrix *, double [], double []); -#else /* stdc */ -int SMPaddElt(); -void SMPcClear(); -int SMPcLUfac(); -int SMPcProdDiag(); -int SMPcReorder(); -void SMPcSolve(); -void SMPclear(); -void SMPcolSwap(); -void SMPdestroy(); -int SMPfillup(); -SMPelement * SMPfindElt(); -void SMPgetError(); -int SMPluFac(); -double * SMPmakeElt(); -int SMPmatSize(); -int SMPnewMatrix(); -int SMPnewNode(); -int SMPpreOrder(); -void SMPprint(); -int SMPreorder(); -void SMProwSwap(); -void SMPsolve(); -#endif /* stdc */ +void SMPgetError( SMPmatrix *, int *, int *); +int SMPcProdDiag( SMPmatrix *, SPcomplex *, int *); +int SMPcDProd(SMPmatrix *Matrix, SPcomplex *pMantissa, int *pExponent); +SMPelement * SMPfindElt( SMPmatrix *, int , int , int ); +int SMPcZeroCol(SMPmatrix *eMatrix, int Col); +int SMPcAddCol(SMPmatrix *eMatrix, int Accum_Col, int Addend_Col); +int SMPzeroRow(SMPmatrix *eMatrix, int Row); +void spConstMult(SMPmatrix*, double); +#ifdef PARALLEL_ARCH +void SMPcombine(SMPmatrix *Matrix, double RHS[], double Spare[]); +void SMPcCombine(SMPmatrix *Matrix, double RHS[], double Spare[], + double iRHS[], double iSpare[]); +#endif #endif /*SMP*/ diff --git a/plugins/models-ngspice17/Make2.gcc b/plugins/models-ngspice17/Make2.gcc index b1e2af21..38a8ecef 100644 --- a/plugins/models-ngspice17/Make2.gcc +++ b/plugins/models-ngspice17/Make2.gcc @@ -1,9 +1,9 @@ # $Id$ -*- Makefile -*- -PREFIX = /usr/local/gnucap -INSTALL_DIR = $(PREFIX)/lib/models/ngspice17 +PREFIX = $(shell gnucap-conf --exec_prefix ) +INSTALL_DIR = $(shell gnucap-conf --pkglibdir )/models/ngspice17 SPICE_INCLUDE = ../Include -GNUCAP_INCLUDE = ../Gnucap +GNUCAP_INCLUDE = $(shell gnucap-conf --includedir ) VPATH = .:$(SPICE_INCLUDE):$(GNUCAP_INCLUDE) C_SRCS = $(CFILES) devsup.c @@ -14,10 +14,12 @@ OBJS = ${CC_SRCS:.cc=.o} ${C_SRCS:.c=.o} CC = gcc CCC = g++ -CFLAGS = -O2 -g -I. -I$(SPICE_INCLUDE) -DTRACE_UNTESTED -D$(SPICE_VERSION) \ +C_CC_FLAGS = -O2 -g -I. -I$(SPICE_INCLUDE) -DTRACE_UNTESTED -D$(SPICE_VERSION) \ -DPREDICTOR -DHAS_STDLIB -fPIC -CCFLAGS = $(CFLAGS) -I$(GNUCAP_INCLUDE) -Wall -Wextra +CFLAGS = $(C_CC_FLAGS) -std=gnu90 + +CCFLAGS = $(C_CC_FLAGS) -I$(GNUCAP_INCLUDE) -Wall -Wextra LDFLAGS = -shared diff --git a/plugins/models-ngspice17/Make2.mingw b/plugins/models-ngspice17/Make2.mingw index 06bd6878..5519e99d 100644 --- a/plugins/models-ngspice17/Make2.mingw +++ b/plugins/models-ngspice17/Make2.mingw @@ -1,9 +1,9 @@ # $Id$ -*- Makefile -*- -PREFIX = /usr/local/gnucap -INSTALL_DIR = $(PREFIX)/lib/models/ngspice17 +PREFIX = $(shell gnucap-conf --exec_prefix ) +INSTALL_DIR = $(shell gnucap-conf --pkglibdir )/models/ngspice17 SPICE_INCLUDE = ../Include -GNUCAP_INCLUDE = ../Gnucap +GNUCAP_INCLUDE = $(shell gnucap-conf --includedir ) VPATH = .:$(SPICE_INCLUDE):$(GNUCAP_INCLUDE) C_SRCS = $(CFILES) devsup.c diff --git a/plugins/models-ngspice17/Makefile b/plugins/models-ngspice17/Makefile index d766606b..09185885 100644 --- a/plugins/models-ngspice17/Makefile +++ b/plugins/models-ngspice17/Makefile @@ -1,144 +1,23 @@ +SUBDIRS = \ +asrc bjt bjt2 bsim1 bsim2 bsim3 bsim3soi bsim3soi_dd \ +bsim3soi_fd bsim3soi_pd bsim3v0 bsim3v1 bsim3v1a \ +bsim3v1s bsim4 bsim4.6.0ng cap cccs ccvs cpl csw \ +dio hfet1 hfet2 hisim ind isrc jfet jfet2 ltra mes \ +mesa mos1 mos2 mos3 mos6 mos9 res soi3 sw tra txl \ +urc vbic vccs vcvs vsrc + all: - -(cd asrc; make) - -(cd bjt; make) - -(cd bjt2; make) - -(cd bsim1; make) - -(cd bsim2; make) - -(cd bsim3; make) - -(cd bsim3soi; make) - -(cd bsim3soi_dd; make) - -(cd bsim3soi_fd; make) - -(cd bsim3soi_pd; make) - -(cd bsim3v0; make) - -(cd bsim3v1; make) - -(cd bsim3v1a; make) - -(cd bsim3v1s; make) - -(cd bsim4; make) - -(cd cap; make) - -(cd cccs; make) - -(cd ccvs; make) - -(cd cpl; make) - -(cd csw; make) - -(cd dio; make) - -(cd hfet1; make) - -(cd hfet2; make) - -(cd hisim; make) - -(cd ind; make) - -(cd isrc; make) - -(cd jfet; make) - -(cd jfet2; make) - -(cd ltra; make) - -(cd mes; make) - -(cd mesa; make) - -(cd mos1; make) - -(cd mos2; make) - -(cd mos3; make) - -(cd mos6; make) - -(cd mos9; make) - -(cd res; make) - -(cd soi3; make) - -(cd sw; make) - -(cd tra; make) - -(cd txl; make) - -(cd urc; make) - -(cd vbic; make) - -(cd vccs; make) - -(cd vcvs; make) - -(cd vsrc; make) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir; \ + done clean: - (cd asrc; make clean) - (cd bjt; make clean) - (cd bjt2; make clean) - (cd bsim1; make clean) - (cd bsim2; make clean) - (cd bsim3; make clean) - (cd bsim3soi; make clean) - (cd bsim3soi_dd; make clean) - (cd bsim3soi_fd; make clean) - (cd bsim3soi_pd; make clean) - (cd bsim3v0; make clean) - (cd bsim3v1; make clean) - (cd bsim3v1a; make clean) - (cd bsim3v1s; make clean) - (cd bsim4; make clean) - (cd cap; make clean) - (cd cccs; make clean) - (cd ccvs; make clean) - (cd cpl; make clean) - (cd csw; make clean) - (cd dio; make clean) - (cd hfet1; make clean) - (cd hfet2; make clean) - (cd hisim; make clean) - (cd ind; make clean) - (cd isrc; make clean) - (cd jfet; make clean) - (cd jfet2; make clean) - (cd ltra; make clean) - (cd mes; make clean) - (cd mesa; make clean) - (cd mos1; make clean) - (cd mos2; make clean) - (cd mos3; make clean) - (cd mos6; make clean) - (cd mos9; make clean) - (cd res; make clean) - (cd soi3; make clean) - (cd sw; make clean) - (cd tra; make clean) - (cd txl; make clean) - (cd urc; make clean) - (cd vbic; make clean) - (cd vccs; make clean) - (cd vcvs; make clean) - (cd vsrc; make clean) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir clean; \ + done install: - (cd asrc; make install) - (cd bjt; make install) - (cd bjt2; make install) - (cd bsim1; make install) - (cd bsim2; make install) - (cd bsim3; make install) - (cd bsim3soi; make install) - (cd bsim3soi_dd; make install) - (cd bsim3soi_fd; make install) - (cd bsim3soi_pd; make install) - (cd bsim3v0; make install) - (cd bsim3v1; make install) - (cd bsim3v1a; make install) - (cd bsim3v1s; make install) - (cd bsim4; make install) - (cd cap; make install) - (cd cccs; make install) - (cd ccvs; make install) - (cd cpl; make install) - (cd csw; make install) - (cd dio; make install) - (cd hfet1; make install) - (cd hfet2; make install) - (cd hisim; make install) - (cd ind; make install) - (cd isrc; make install) - (cd jfet; make install) - (cd jfet2; make install) - (cd ltra; make install) - (cd mes; make install) - (cd mesa; make install) - (cd mos1; make install) - (cd mos2; make install) - (cd mos3; make install) - (cd mos6; make install) - (cd mos9; make install) - (cd res; make install) - (cd soi3; make install) - (cd sw; make install) - (cd tra; make install) - (cd txl; make install) - (cd urc; make install) - (cd vbic; make install) - (cd vccs; make install) - (cd vcvs; make install) - (cd vsrc; make install) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir install; \ + done diff --git a/plugins/models-ngspice17/bsim3/wrapper.h b/plugins/models-ngspice17/bsim3/wrapper.h index f82e00fa..38e00a73 100644 --- a/plugins/models-ngspice17/bsim3/wrapper.h +++ b/plugins/models-ngspice17/bsim3/wrapper.h @@ -20,7 +20,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-ngspice17/bsim3v0/wrapper.h b/plugins/models-ngspice17/bsim3v0/wrapper.h index a203dd0f..59b1d95d 100644 --- a/plugins/models-ngspice17/bsim3v0/wrapper.h +++ b/plugins/models-ngspice17/bsim3v0/wrapper.h @@ -20,7 +20,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-ngspice17/bsim3v1/wrapper.h b/plugins/models-ngspice17/bsim3v1/wrapper.h index 4c9a1460..802fb758 100644 --- a/plugins/models-ngspice17/bsim3v1/wrapper.h +++ b/plugins/models-ngspice17/bsim3v1/wrapper.h @@ -20,7 +20,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-ngspice17/bsim3v1a/wrapper.h b/plugins/models-ngspice17/bsim3v1a/wrapper.h index 1edf0ad7..e7f162c6 100644 --- a/plugins/models-ngspice17/bsim3v1a/wrapper.h +++ b/plugins/models-ngspice17/bsim3v1a/wrapper.h @@ -20,7 +20,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-ngspice17/bsim3v1s/wrapper.h b/plugins/models-ngspice17/bsim3v1s/wrapper.h index 5e7da714..9053300d 100644 --- a/plugins/models-ngspice17/bsim3v1s/wrapper.h +++ b/plugins/models-ngspice17/bsim3v1s/wrapper.h @@ -20,7 +20,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "qb", " #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-ngspice17/bsim4.6.0ng/alloc.o b/plugins/models-ngspice17/bsim4.6.0ng/alloc.o Binary files differdeleted file mode 100644 index b1369fa2..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/alloc.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4.o b/plugins/models-ngspice17/bsim4.6.0ng/b4.o Binary files differdeleted file mode 100644 index 743da70a..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4acld.o b/plugins/models-ngspice17/bsim4.6.0ng/b4acld.o Binary files differdeleted file mode 100644 index 47239251..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4acld.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4ask.o b/plugins/models-ngspice17/bsim4.6.0ng/b4ask.o Binary files differdeleted file mode 100644 index 4651e787..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4ask.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4check.o b/plugins/models-ngspice17/bsim4.6.0ng/b4check.o Binary files differdeleted file mode 100644 index 46ec33d9..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4check.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4cvtest.o b/plugins/models-ngspice17/bsim4.6.0ng/b4cvtest.o Binary files differdeleted file mode 100644 index ff589c80..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4cvtest.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4del.o b/plugins/models-ngspice17/bsim4.6.0ng/b4del.o Binary files differdeleted file mode 100644 index a93692be..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4del.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4dest.o b/plugins/models-ngspice17/bsim4.6.0ng/b4dest.o Binary files differdeleted file mode 100644 index f30e9c92..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4dest.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4geo.o b/plugins/models-ngspice17/bsim4.6.0ng/b4geo.o Binary files differdeleted file mode 100644 index 25f8266b..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4geo.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4getic.o b/plugins/models-ngspice17/bsim4.6.0ng/b4getic.o Binary files differdeleted file mode 100644 index da920969..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4getic.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4ld.o b/plugins/models-ngspice17/bsim4.6.0ng/b4ld.o Binary files differdeleted file mode 100644 index fbe7acfc..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4ld.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4mask.o b/plugins/models-ngspice17/bsim4.6.0ng/b4mask.o Binary files differdeleted file mode 100644 index cc59637b..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4mask.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4mdel.o b/plugins/models-ngspice17/bsim4.6.0ng/b4mdel.o Binary files differdeleted file mode 100644 index d601ea95..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4mdel.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4mpar.o b/plugins/models-ngspice17/bsim4.6.0ng/b4mpar.o Binary files differdeleted file mode 100644 index 791ffc7b..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4mpar.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4noi.o b/plugins/models-ngspice17/bsim4.6.0ng/b4noi.o Binary files differdeleted file mode 100644 index 72a4e5f1..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4noi.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4par.o b/plugins/models-ngspice17/bsim4.6.0ng/b4par.o Binary files differdeleted file mode 100644 index 32e799d9..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4par.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4pzld.o b/plugins/models-ngspice17/bsim4.6.0ng/b4pzld.o Binary files differdeleted file mode 100644 index 34cbfeb7..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4pzld.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4set.o b/plugins/models-ngspice17/bsim4.6.0ng/b4set.o Binary files differdeleted file mode 100644 index 0ccd8643..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4set.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4temp.o b/plugins/models-ngspice17/bsim4.6.0ng/b4temp.o Binary files differdeleted file mode 100644 index 1b03f1de..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4temp.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/b4trunc.o b/plugins/models-ngspice17/bsim4.6.0ng/b4trunc.o Binary files differdeleted file mode 100644 index 989a4e77..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/b4trunc.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/bsim4.so b/plugins/models-ngspice17/bsim4.6.0ng/bsim4.so Binary files differdeleted file mode 100755 index fb5c4cee..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/bsim4.so +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/bsim4init.o b/plugins/models-ngspice17/bsim4.6.0ng/bsim4init.o Binary files differdeleted file mode 100644 index f68f1bfe..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/bsim4init.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/devsup.o b/plugins/models-ngspice17/bsim4.6.0ng/devsup.o Binary files differdeleted file mode 100644 index a799778d..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/devsup.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4.6.0ng/wrapper.h b/plugins/models-ngspice17/bsim4.6.0ng/wrapper.h index 36bfa015..c769df69 100644 --- a/plugins/models-ngspice17/bsim4.6.0ng/wrapper.h +++ b/plugins/models-ngspice17/bsim4.6.0ng/wrapper.h @@ -22,7 +22,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-ngspice17/bsim4.6.0ng/wrapper.o b/plugins/models-ngspice17/bsim4.6.0ng/wrapper.o Binary files differdeleted file mode 100644 index 5b9b0bd7..00000000 --- a/plugins/models-ngspice17/bsim4.6.0ng/wrapper.o +++ /dev/null diff --git a/plugins/models-ngspice17/bsim4/wrapper.h b/plugins/models-ngspice17/bsim4/wrapper.h index ee75cc5f..5793e31d 100644 --- a/plugins/models-ngspice17/bsim4/wrapper.h +++ b/plugins/models-ngspice17/bsim4/wrapper.h @@ -22,7 +22,7 @@ static std::string state_names[] = {"vbd", "vbs", "vgs", "vds", "vdbs", #define IS_VALID {itested(); \ assert(d); \ - const COMMON_SUBCKT* c = dynamic_cast<const COMMON_SUBCKT*>(d->common()); \ + const COMMON_PARAMLIST* c = dynamic_cast<const COMMON_PARAMLIST*>(d->common()); \ assert(c); \ double l_in = c->_params["l"].e_val(OPT::defl, d->scope()); \ double w_in = c->_params["w"].e_val(OPT::defw, d->scope()); \ diff --git a/plugins/models-spice3f5/Gnucap b/plugins/models-spice3f5/Gnucap deleted file mode 120000 index f5030fe8..00000000 --- a/plugins/models-spice3f5/Gnucap +++ /dev/null @@ -1 +0,0 @@ -../include
\ No newline at end of file diff --git a/plugins/models-spice3f5/Make2.gcc b/plugins/models-spice3f5/Make2.gcc index 415d5c0d..96572f55 100644 --- a/plugins/models-spice3f5/Make2.gcc +++ b/plugins/models-spice3f5/Make2.gcc @@ -1,9 +1,9 @@ # $Id$ -*- Makefile -*- -PREFIX = /usr/local/gnucap -INSTALL_DIR = $(PREFIX)/lib/models/spice3f5 +PREFIX = $(shell gnucap-conf --exec_prefix ) +INSTALL_DIR = $(shell gnucap-conf --pkglibdir )/models/spice3f5 SPICE_INCLUDE = ../Include -GNUCAP_INCLUDE = ../Gnucap +GNUCAP_INCLUDE = $(shell gnucap-conf --includedir ) VPATH = .:$(SPICE_INCLUDE):$(GNUCAP_INCLUDE) C_SRCS = $(CFILES) devsup.c @@ -14,11 +14,13 @@ OBJS = ${CC_SRCS:.cc=.o} ${C_SRCS:.c=.o} CC = gcc CCC = g++ -CFLAGS = -O2 -g -I. -I$(SPICE_INCLUDE) -DTRACE_UNTESTED -D$(SPICE_VERSION) \ +C_CC_FLAGS = -O2 -g -I. -I$(SPICE_INCLUDE) -DTRACE_UNTESTED -D$(SPICE_VERSION) \ -DPREDICTOR -DAN_pz -DAN_disto -DAN_noise \ -DHAS_STDLIB -fPIC -CCFLAGS = $(CFLAGS) -I$(GNUCAP_INCLUDE) -Wall -Wextra +CFLAGS = $(C_CC_FLAGS) -std=c90 + +CCFLAGS = $(C_CC_FLAGS) -I$(GNUCAP_INCLUDE) -Wall -Wextra LDFLAGS = -shared diff --git a/plugins/models-spice3f5/Make2.mingw b/plugins/models-spice3f5/Make2.mingw index 2766f4f8..764d066c 100644 --- a/plugins/models-spice3f5/Make2.mingw +++ b/plugins/models-spice3f5/Make2.mingw @@ -1,9 +1,9 @@ # $Id$ -*- Makefile -*- -PREFIX = /usr/local/gnucap -INSTALL_DIR = $(PREFIX)/lib/models/spice3f5 +PREFIX = $(shell gnucap-conf --exec_prefix ) +INSTALL_DIR = $(shell gnucap-conf --pkglibdir )/models/spice3f5 SPICE_INCLUDE = ../Include -GNUCAP_INCLUDE = ../Gnucap +GNUCAP_INCLUDE = $(shell gnucap-conf --includedir ) VPATH = .:$(SPICE_INCLUDE):$(GNUCAP_INCLUDE) C_SRCS = $(CFILES) devsup.c diff --git a/plugins/models-spice3f5/Makefile b/plugins/models-spice3f5/Makefile index e8475ed3..eba80108 100644 --- a/plugins/models-spice3f5/Makefile +++ b/plugins/models-spice3f5/Makefile @@ -1,81 +1,20 @@ +SUBDIRS = \ +asrc bjt bsim1 bsim2 cap cccs ccvs csw dio ind isrc \ +jfet ltra mes mos1 mos2 mos3 mos6 res sw tra urc vccs \ +vcvs vsrc + all: - -(cd asrc; make) - -(cd bjt; make) - -(cd bsim1; make) - -(cd bsim2; make) - -(cd cap; make) - -(cd cccs; make) - -(cd ccvs; make) - -(cd csw; make) - -(cd dio; make) - -(cd ind; make) - -(cd isrc; make) - -(cd jfet; make) - -(cd ltra; make) - -(cd mes; make) - -(cd mos1; make) - -(cd mos2; make) - -(cd mos3; make) - -(cd mos6; make) - -(cd res; make) - -(cd sw; make) - -(cd tra; make) - -(cd urc; make) - -(cd vccs; make) - -(cd vcvs; make) - -(cd vsrc; make) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir; \ + done clean: - (cd asrc; make clean) - (cd bjt; make clean) - (cd bsim1; make clean) - (cd bsim2; make clean) - (cd cap; make clean) - (cd cccs; make clean) - (cd ccvs; make clean) - (cd csw; make clean) - (cd dio; make clean) - (cd ind; make clean) - (cd isrc; make clean) - (cd jfet; make clean) - (cd ltra; make clean) - (cd mes; make clean) - (cd mos1; make clean) - (cd mos2; make clean) - (cd mos3; make clean) - (cd mos6; make clean) - (cd res; make clean) - (cd sw; make clean) - (cd tra; make clean) - (cd urc; make clean) - (cd vccs; make clean) - (cd vcvs; make clean) - (cd vsrc; make clean) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir clean; \ + done install: - (cd asrc; make install) - (cd bjt; make install) - (cd bsim1; make install) - (cd bsim2; make install) - (cd cap; make install) - (cd cccs; make install) - (cd ccvs; make install) - (cd csw; make install) - (cd dio; make install) - (cd ind; make install) - (cd isrc; make install) - (cd jfet; make install) - (cd ltra; make install) - (cd mes; make install) - (cd mos1; make install) - (cd mos2; make install) - (cd mos3; make install) - (cd mos6; make install) - (cd res; make install) - (cd sw; make install) - (cd tra; make install) - (cd urc; make install) - (cd vccs; make install) - (cd vcvs; make install) - (cd vsrc; make install) + for dir in $(SUBDIRS); do \ + $(MAKE) -C $$dir install; \ + done |
