From 003a286109b2c7ef74a5c80d9a9a0568f70f9f3e Mon Sep 17 00:00:00 2001 From: pnenzi Date: Mon, 11 Aug 2003 20:59:48 +0000 Subject: [PATCH] Update after CIDER inclusion. --- AUTHORS | 38 ++++++++++---- ChangeLog | 61 ++++++++++++++++++++++ acconfig.h | 26 ++++++++- configure.in | 145 ++++++++++++++++++++++++++++++++++++++++++++++----- 4 files changed, 245 insertions(+), 25 deletions(-) diff --git a/AUTHORS b/AUTHORS index 58082e6c2..eefda61e7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,40 +1,58 @@ @c This file will be processed with texinfo. -SPICE was originally written at The University of Berkeley (USA). -Since then, there have been many people working on the software. +Spice was originally written at The University of California at Berkeley (USA). +Since then, there have been many people working on the software, most of them +releasing patches to the original code through the Internet. + The following people have contributed in some way: +Cecil Aswell , Giles C. Billingsley, Mansun Chan, Wayne A. Christopher, +Al Davis , Glao S. Dezai , +Jon Engelbert , Daniele Foci , Noah Friedman , +Alan Gillespie , David A. Gates, -Alan Gillespie , JianHui Huang, Jeffrey M. Hsu, -S. Hwang, +S. Hwang,86 Chris Inbody , Gordon M. Jacobs, Min-Chie Jeng, +Stefan Jones , +Beorn Johnson , Kenneth H. Keller, Mathew Lew, +Robert Lindsell , Weidong Liu, -Richard D. McRoberts, +Kartikeya Mayaram, +Richard D. McRoberts , Manfred Metzger , -Paolo Nenzi , +Paolo Nenzi , Gary W. Ng, Hong June Park, Arno Peters , Serban-Mihai Popescu , Thomas L. Quarles, Emmanuel Rouat , +Jean-Marc Routure , Jaijeet S. Roychowdhury, Takayasu Sakurai, +AMAKAWA Shuhei , Kanwar Jit Singh, -Andrew Tuckey +Steve Tell +Andrew Tuckey , +Charles D.H. Williams , +Holger Vogt , Michael Widlok , +Antony Wilson , and many others... - -If you feel you should be on this list, write to -. +Quite a long list, isn't it ? + +Well, if someone helped in the development and has +not been inserted in this list, it is entirely my (Paolo Nenzi) fault. +If you feel you should be on this list, write to . +Do not be shy, I would like to make a list as complete as possible. diff --git a/ChangeLog b/ChangeLog index 165baba7f..0a68042f7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,64 @@ +2003-08-11 Paolo Nenzi + + * doc/ngspice.texi: updated documentation. Still incomplete + but on the way... + + * main.c, ngnutmeg.c, ngspice.c, frontend/resource.c, + include/bool.h, include/cktdefs.h, include/complex.h, + include/defines.h, include/devdefs.h, include/macros.h, + include/ngspice.h, maths/cmaths/cmath1.c, + maths/cmaths/test_cx_ph.c, maths/ni/nidest.c, + maths/ni/nipred.h, maths/ni/nireinit.c, misc/misc_time.c, + misc/string.c, misc/stringutil.h, spicelib/analysis/cktdltn.c, + spicelib/analysis/cktdojob.c, spicelib/analysis/cktdump.c, + spicelib/analysis/cktload.c, spicelib/analysis/cktmknod.c, + spicelib/analysis/cktntask.c, spicelib/analysis/cktpzstr.c, + spicelib/analysis/cktsens.c, spicelib/analysis/cktsetup.c, + spicelib/analysis/cktsgen.c, spicelib/analysis/cktsopt.c, + spicelib/parser/inp2d.c, spicelib/parser/inp2m.c, + spicelib/parser/inp2q.c, spicelib/parser/inpdomod.c, + spicelib/parser/inpgmod.c: + + Updated code for CIDER integration. + + + * src/spicelib/devices/bsim3v2: removed because the V3.2 code + is now in bsim3 directory. + + * src/spicelib/devices: various enhancements on models. Mainly + code cleaning (removed spurios #include ). Added + parallel multiplier on some device and corrected implementation + of cpl an txl devices. + + * bdrydefs.h, carddefs.h, ciderinp.h, cidersupt.h, contdefs.h, + domndefs.h, dopdefs.h, elctdefs.h, gendev.h, lsort.h, + material.h, matldefs.h, meshdefs.h, meshext.h, methdefs.h, + mobdefs.h, modldefs.h, numcards.h, numconst.h, numenum.h, + numgen.h, numglobs.h, onedev.h, onemesh.h, optndefs.h, + outpdefs.h, profile.h, twodev.h, twomesh.h: + new include files imported with CIDER. + + + * src/ciderlib/*, src/maths/misc, src/spicelib/devices/nbjt, + src/spicelib/devices/nbjt2, src/spicelib/devices/numd, + src/spicelib/devices/numd2, src/spicelib/devices/numos: + + Added CIDER simulator routines, support math fnctions and + numerical devices. + + * src/spicelib/devices/bsim3soi: added bsim3soi v3.x model + + * src/spicelib/devices/bsim3v0: added version 3.0 of + bsim model. + + * src/spicelib/devices/bsim3v1a: version 3.1 of bsim model. + This model has been hacked by Alan Gillespie. + + * src/spicelib/devices/bsim3v1s: version 3.1 of bsim model. + This model has been hacked by Serban Popescu. + + * src/spicelib/devices/hisim: added hisim model. + 2003-08-06 Paolo Nenzi * Another big commit: Stefan Jones has worked on the xspice diff --git a/acconfig.h b/acconfig.h index d26679b6d..2b2a897ac 100644 --- a/acconfig.h +++ b/acconfig.h @@ -17,6 +17,15 @@ /* Define if we want NOBYPASS */ #undef NOBYPASS +/* Define if we want to bypass cbd/cbs calculation for non varying vbs/vbd */ + #undef CAPBYPASS + +/* Define if we want to bypass cbd/cbs calculation if Czero is zero */ +#undef CAPZEROBYPASS + +/* Experimental code never implemented to damp Newton iterations */ +#undef NODELIMITING + /* Define if we want predictor algorithm */ #undef PREDICTOR @@ -32,15 +41,30 @@ /* Undefine HAVE_EKV since it is not included in the standard distribution */ #undef HAVE_EKV -/* Undefine HAVE_GNUREADLINE */ +/* Define if we have GNU readline */ #undef HAVE_GNUREADLINE /* We do not want spurios debug info into non-developer code */ #undef FTEDEBUG +/* Do not trigger unwanted traps by default */ +#undef NEWTRUNC + +/* Define if we wanto debug sensititvity analysis */ +#undef SENSDEBUG + +/* Define i we want stepdebug */ +#undef STEPDEBUG + +/* Define to use always exp/log for bulk diode calculations in mosfet */ +#undef NOSQRT + /*The xspice enhancements*/ #undef XSPICE +/* The CIDER enhancements */ +#undef CIDER + /* Spice cluster support */ #undef CLUSTER diff --git a/configure.in b/configure.in index d22182ba1..d9c8086a3 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,8 @@ -dnl Process this file with autoconf to produce a configure script. +dnl configure.in script for ngspice +dnl +dnl This file is part of ngspice. +dnl +dnl (Process this file with autoconf to produce a configure script.) AC_INIT(src/main.c) dnl Create a configuration header @@ -23,41 +27,79 @@ dnl --enable-checker : add --with-checker-debug option to the compiler AC_ARG_ENABLE(checker, [ --enable-checkergcc Option for compilation with checkergcc]) +dnl --enable-gc : Enable Boehm-Weiser Conservative Garbage Collector +AC_ARG_ENABLE(checker, + [ --enable-gc Use Boehm-Weiser Conservative Garbage Collector ]) + +dnl --enable-nosqrt : define NOSQRT for the code +AC_ARG_ENABLE(nosqrt, + [ --enable-nosqrt Use always log/exp for nonlinear capacitances]) + dnl --enable-bypass : define BYPASS for the code AC_ARG_ENABLE(nobypass, - [ --enable-nobypass Don't bypass recalculations of slowly changing variables]) + [ --enable-nobypass Don't bypass recalculations of slowly changing + variables]) +dnl --enable-capbypass : define CAPBYPASS for the code +AC_ARG_ENABLE(capbypass, + [ --enable-capbypass Bypass calculation of cbd/cbs in the mosfets if + the vbs/vbd voltages are unchanged]) + +dnl --enable-capzerobypass : define CAPZEROBYPASS for the code +AC_ARG_ENABLE(capzerobypass, + [ --enable-capzerobypass Bypass all the cbd/cbs calculations if Czero is zero]) + +dnl --enable-nodelimiting : define NODELIMITING for the code +AC_ARG_ENABLE(nodelimiting, + [ --enable-nodelimiting Experimental damping scheme]) + dnl --enable-predictor : define PREDICTOR for the code AC_ARG_ENABLE(predictor, - [ --enable-predictor Enables a predictor method for convergence]) + [ --enable-predictor Enable a predictor method for convergence]) -dnl --enable-sense2 : define HAVE_SENSE2 for the code +dnl --enable-newtrunc : define NEWTRUNC for the code +AC_ARG_ENABLE(newtrunc, + [ --enable-newtrunc Enable the newtrunc option]) + +dnl --enable-sense2 : define WANT_SENSE2 for the code AC_ARG_ENABLE(sense2, [ --enable-sense2 Use spice2 sensitivity analysis]) +dnl --enable-sensdebug : define SENSDEBUG for the code +AC_ARG_ENABLE(sensedebug, + [ --enable-sensdebug Debug sensitivity code]) + +dnl --enable-stepdebug : define STEPDEBUG for the code +AC_ARG_ENABLE(stepdebug, + [ --enable-stepdebug Unkown debug option]) + dnl --enable-intnoise : define INT_NOISE for the code AC_ARG_ENABLE(intnoise, - [ --enable-intnoise Enables noise integration in noise analysis]) + [ --enable-intnoise Enable noise integration in noise analysis]) dnl --enable-smoketest : a smoketest AC_ARG_ENABLE(smoketest, - [ --enable-smoketest Enables smoketest compile]) + [ --enable-smoketest Enable smoketest compile]) dnl --enable-experimental : define EXPERIMENTAL_CODE for the code AC_ARG_ENABLE(experimental, - [ --enable-experimental Enables some experimental code]) + [ --enable-experimental Enable some experimental code]) dnl --enable-ekv: define HAVE_EKV in the code. This is for EKV model support AC_ARG_ENABLE(ekv, - [ --enable-ekv Enables ekv model *not in standard distribution*]) + [ --enable-ekv Enable ekv model *not in standard distribution*]) dnl --enable-xspice: define XSPICE in the code. This is for xspice support AC_ARG_ENABLE(xspice, - [ --enable-xspice Enables XSpice enchancements, experimental *not in standard distribution*]) + [ --enable-xspice Enable XSpice enchancements, experimental *not in standard distribution*]) + +dnl --enable-cider: define CIDER in the code. This is for CIDER support +AC_ARG_ENABLE(cider, + [ --enable-cider Enable CIDER enchancements, experimental *not in standard distribution*]) dnl --enable-cluster: define CLUSTER in the code. This is for tcl support AC_ARG_ENABLE(cluster, - [ --enable-cluster Enables cluster support, experimental *not in standard distribution*]) + [ --enable-cluster Enable cluster support, experimental *not in standard distribution*]) dnl Enable maintainer commands only if requested AM_MAINTAINER_MODE @@ -281,10 +323,26 @@ if test "$enable_nobypass" = "yes"; then AC_DEFINE(NOBYPASS) AC_MSG_RESULT(NOBYPASS option enabled) fi + if test "$enable_capbypass" = "yes"; then + AC_DEFINE(CAPBYPASS) + AC_MSG_RESULT(CAPBYPASS option enabled) +fi + if test "$enable_capzerobypass" = "yes"; then + AC_DEFINE(CAPZEROBYPASS) + AC_MSG_RESULT(CAPZEROBYPASS option enabled) +fi +if test "$enable_nodelimiting" = "yes"; then + AC_DEFINE(NODELIMITING) + AC_MSG_RESULT(NODELIMITING option enabled) +fi if test "$enable_predictor" = "yes"; then AC_DEFINE(PREDICTOR) AC_MSG_RESULT(PREDICTOR algorithm enabled) fi +if test "$enable_newtrunc" = "yes"; then + AC_DEFINE(NEWTRUNC) + AC_MSG_RESULT(New truncation error calculation enabled) +fi if test "$enable_intnoise" = "yes"; then AC_DEFINE(INT_NOISE) AC_MSG_RESULT(Noise integration enabled) @@ -298,13 +356,20 @@ if test "$enable_ftedebug" = "yes"; then AC_DEFINE(FTEDEBUG) AC_MSG_RESULT(WARNING: Frontend debug is enabled) fi - +if test "$enable_sensdebug" = "yes"; then + AC_DEFINE(SENSDEBUG) + AC_MSG_RESULT(WARNING: Sensitivity code debug is enabled) +fi +if test "$enable_stepdebug" = "yes"; then + AC_DEFINE(STEPDEBUG) + AC_MSG_RESULT(WARNING: STEPDEBUG debug is enabled) +fi if test "$enable_ekv" = "yes"; then AC_MSG_RESULT(Model EKV included) AC_DEFINE(HAVE_EKV) EKVDIR="ekv" - EKVLIB="spicelib/devices/ekv/libekv.la" + EKVLIB="spicelib/devices/ekv/libekv.a" else EKVDIR="" EKVLIB="" @@ -336,6 +401,41 @@ AC_SUBST(XSPICEDIR) AC_SUBST(XSPICELIB1) AC_SUBST(XSPICELIB2) +dnl Add CIDER enhacements to ngspice. +if test "$enable_cider" = "yes"; then + AC_MSG_RESULT(CIDER features enabled) + AC_DEFINE(CIDER) + CIDERDIR="ciderlib" + CIDERSIM=" $CIDERDIR/twod/libcidertwod.a \ + $CIDERDIR/oned/libcideroned.a \ + $CIDERDIR/input/libciderinput.a \ + $CIDERDIR/support/libcidersuprt.a \" + + NUMDEV=" spicelib/devices/nbjt/libnbjt.a \ + spicelib/devices/nbjt2/libnbjt2.a \ + spicelib/devices/numd/libnumd.a \ + spicelib/devices/numd2/libnumd2.a \ + spicelib/devices/numos/libnumos.a" + NUMDEVDIR=" nbjt \ + nbjt2 \ + numd \ + numd2 \ + numos" + + CIDERSCRIPTS="devload devaxis ciderinit" + +else + + CIDERLIB="" + CIDERSIM="" + NUMDEV="" + NUMDEVDIR="" + CIDERSCRIPTS="" +fi +AC_SUBST(CIDERDIR) +AC_SUBST(CIDERSIM) +AC_SUBST(NUMDEV) + dnl Cluster option if test "$enable_cluster" = "yes"; then AC_MSG_RESULT(Cluster version is being compiled) @@ -366,10 +466,14 @@ src/spicelib/devices/bjt/Makefile \ src/spicelib/devices/bjt2/Makefile \ src/spicelib/devices/bsim1/Makefile \ src/spicelib/devices/bsim2/Makefile \ +src/spicelib/devices/bsim3v0/Makefile \ src/spicelib/devices/bsim3v1/Makefile \ +src/spicelib/devices/bsim3v1a/Makefile \ +src/spicelib/devices/bsim3v1s/Makefile \ +src/spicelib/devices/bsim3v2/Makefile \ src/spicelib/devices/bsim3/Makefile \ src/spicelib/devices/bsim4/Makefile \ -src/spicelib/devices/bsim3v2/Makefile \ +src/spicelib/devices/bsim3soi/Makefile \ src/spicelib/devices/bsim3soi_pd/Makefile \ src/spicelib/devices/bsim3soi_fd/Makefile \ src/spicelib/devices/bsim3soi_dd/Makefile \ @@ -384,6 +488,7 @@ src/spicelib/devices/ind/Makefile \ src/spicelib/devices/isrc/Makefile \ src/spicelib/devices/hfet1/Makefile \ src/spicelib/devices/hfet2/Makefile \ +src/spicelib/devices/hisim/Makefile \ src/spicelib/devices/jfet/Makefile \ src/spicelib/devices/jfet2/Makefile \ src/spicelib/devices/ltra/Makefile \ @@ -403,7 +508,17 @@ src/spicelib/devices/urc/Makefile \ src/spicelib/devices/vccs/Makefile \ src/spicelib/devices/vcvs/Makefile \ src/spicelib/devices/vsrc/Makefile \ -src/spicelib/parser/Makefile \ +src/spicelib/devices/nbjt/Makefile \ +src/spicelib/devices/nbjt2/Makefile \ +src/spicelib/devices/numd/Makefile \ +src/spicelib/devices/numd2/Makefile \ +src/spicelib/devices/numos/Makefile \ +src/spicelib/parser/Makefile \ +src/ciderlib/Makefile \ +src/ciderlib/input/Makefile \ +src/ciderlib/support/Makefile \ +src/ciderlib/oned/Makefile \ +src/ciderlib/twod/Makefile \ src/frontend/Makefile \ src/frontend/help/Makefile \ src/frontend/parser/Makefile \ @@ -412,10 +527,12 @@ src/frontend/wdisp/Makefile \ src/include/Makefile \ src/maths/Makefile \ src/maths/cmaths/Makefile \ +src/maths/misc/Makefile \ src/maths/ni/Makefile \ src/maths/deriv/Makefile \ src/maths/poly/Makefile \ src/maths/sparse/Makefile \ +src/maths/sparse/tests/Makefile \ src/misc/Makefile \ src/xspice/Makefile \ src/xspice/cm/Makefile \