diff --git a/COPYING b/COPYING index 0676dd52a..c30df9d1a 100644 --- a/COPYING +++ b/COPYING @@ -1,6 +1,6 @@ 12345678901234567890123456789012345678901234567890123456789012345678901234567890 -Ngspice-22 -Copyright (c) 2010, +Ngspice-23 +Copyright (c) 2011, All rights reserved. @@ -13,7 +13,7 @@ to the work of researchers, electronic designers, software editors, etc. The Ngspice team tries to collect work from the different sources and contribute new functionalities. Thus, the material we manipulate is heterogeneous in licenses. Keeping the licenses as is, is the way to live with -that diversity. For release 21 as well, we choose not to relicense. +that diversity. For release 23 as well, we choose not to relicense. Copyleft is a fundamental question in FOSS development. The choice of a copylefted contribution, or a non copylefted contribution is an important diff --git a/ChangeLog b/ChangeLog index e9f846543..949879c94 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2011-05-28 Holger Vogt + * update to prepare release 23 + 2011-05-28 Robert Larice * src/ngsconvert.c : bug fix, (#3188327), segfault in ngsconvert @@ -188,7 +191,7 @@ 2011-05-03 Holger Vogt * x11.c, graph.h: move #define NUMCOLORS to x11.c to avoid redefinition - under MS Visual Studion + under MS Visual Studio 2011-05-01 Robert Larice * src/frontend/outitf.c , diff --git a/FAQ b/FAQ index 15d8a7291..a73060309 100644 --- a/FAQ +++ b/FAQ @@ -236,26 +236,34 @@ The latest version released is: - * ngspice-rework-22 (released on 26/09/2010) + * ngspice-rework-23 (released on 05/06/2011) 2.2. What are the latest features in the current release? - New features: - + OpenMP multicore support for BSIM3, BSIM4, and BSIMSOI4 - + reinstate {$var} expansion in interactive interpreter - + .TITLE line added - + update to 'spectrum' script - + par('expression') in .four, .plot, .print, .meas, .save commands - + command 'option' for use in spinit, .spiceinit, and in scripts - + adms procedure updated - + new random number generator, random functions sunif() and sgauss() - + ngspice manual updated - - Bug fixes: - + Major code cleanup to reduce compiler/linker warnings: ansi function prototypes, - void/char pointers to named pointers, explicit type casts and many more - + Many small bugs +- New features: + + Reduction of trtol to 1 only if 'A' devices in the circuit and xspice is enabled + + command wrs2p to write a s-parameter file using Touchstone vers. 1 format + + d_source d_state d_ram, test cases for those xspice codemodels + + transient noise simulation added to independent voltage and current sources + + Random telegraph noise added to independent voltage and current sources + + 'time = nnn' in stop command added + + random voltage generator option trrandom to independent voltage and current sources + + ngspice build possible in a separate directory (e.g. in ng-spice-rework/release) + + update FIND .. WHEN measurements + + diode & bjt temperature model update with tlev and tlevc + + merge bsim3v1a code with bsim3v0 and bsim3v1s code with bsim3v1 + + bjt2: removed - all GP extensions of this model are now in the bjt model + + HiSIM_HV model vers. 1.2.1 added + + bsim3v32: delvto and mulu0 as instance parameters + + Replace HiSIM1 by HiSIM_2.5.1_Release_20110407 + +- Bug fixes: + + More on prototypes, type casts, reordering of functions, compiler warnings + + allow models like 2N2904 or 2SK136 also in subcircuits + + fix sensitvity calculation (for the dc-2+.cir testcase) + + allow multiple call to setup w/ correct node collapsing + + Many small bugs diff --git a/INSTALL b/INSTALL index 267217d7e..74cb5527b 100644 --- a/INSTALL +++ b/INSTALL @@ -61,29 +61,29 @@ This file describes the procedures to install ngspice from sources. Now change directories in to the top-level source directory (where this INSTALL file can be found). - The project uses the GNU build process. This is still very crude and needs - work, but basically you should be able to do the following: + The project uses the GNU build process. The compile output should go into a separate + directory, so to e.g. maitain and distinguish debug and release versions. $ ./autogen.sh - $ ./configure --enable-maintainer-mode + $ mkdir debug + $ cd debug + $ ../configure --enable-maintainer-mode $ make $ sudo make install - - At present it is normal for there to be some warning generated during this - process. - + See the section titled 'Advanced Install' for instructions about arguments that can be passed to ./configure to customise the build and installation. Preferred arguments to ./configure to obtain a comfortably working ngspice may be - --with-editline=yes (if not available, --with-readline=yes will work, but has - a licensing issue) and --disable-debug (for smaller and speed optimized + --with-readline=yes and --disable-debug (for smaller and speed optimized executable). A fully featured ngspice on LINUX may be obtained with the following commands: $ ./autogen.sh --adms - $ ./configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-adms - $ make + $ mkdir release + $ cd release + $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-adms + $ make 2>&1 | tee make.log $ sudo make install If a problem is found with the build proccess, please submit a report to @@ -95,18 +95,19 @@ This file describes the procedures to install ngspice from sources. 1.3 Basic Install - This covers installation from a tarball (for example ngspice-rework-18.tgz). + This covers installation from a tarball (for example ngspice-23.tar.gz). After downloading the tar ball to a local directory unpack it using: - $ tar -zxvf ngspice-rework-18.tgz - + $ tar -zxvf ngspice-23.tar.gz + Now change directories in to the top-level source directory (where this INSTALL file can be found). You should be able to do: - $ ./autogen.sh - $ ./configure + $ mkdir debug + $ cd debug + $ ../configure $ make $ sudo make install @@ -116,9 +117,16 @@ This file describes the procedures to install ngspice from sources. that can be passed to ./configure to customise the build and installation. Preferred arguments to ./configure to obtain a comfortably working ngspice may be - --with-editline=yes (if not available, --with-readline=yes will work, but has - a licensing issue) and --disable-debug (for smaller and speed optimized + --with-readline=yes and --disable-debug (for smaller and speed optimized executable). + + A fully featured ngspice on LINUX may be obtained with the following commands: + $ ./autogen.sh --adms + $ mkdir release + $ cd release + $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-adms + $ make 2>&1 | tee make.log + $ sudo make install 1.4 Advanced Install @@ -127,36 +135,52 @@ This file describes the procedures to install ngspice from sources. options do: $ ./configure --help - + Some of these options are generic to the GNU build process that is used by Ngspice, other are specific to Ngspice. The following sections provide some guidance and descriptions for many, but not all, of these options. + + 1.4.1 Most useful options: + --enable-adms + ADMS is an experimental model compiler that translates + Verilog-A compact models into C code that can be compiled into + ngspice. This is (as of rework.18 )still experimental and not + completely working. If you want to use it, please refer to the + ADMS section on ngspice web site. -1.4.1 Options Specific to Using Ngspice + --enable-cider + Cider is a mixed-level simulator that couples Spice3 and DSIM + to simulate devices from their technological parameters. This + part of the simulator is not compiled by default. + + --enable-xspice + Enable XSpice enhancements, (experimental) + A mixed signal simulator built upon spice3 with codemodel + dynamic loading support. See src/xspice/README for details. + + --with-readline=yes + Enable GNU readline support for the command line interface. + + --enable-openmp + Compile ngspice for multi-core processors. + Parallelization is done by OpenMP + - --enable-adms - ADMS is an experimental model compiler that translates - Verilog-A compact models into C code that can be compiled into - ngspice. This is (as of rework.18 )still experimental and not - completely working. If you want to use it, please refer to the - ADMS section on ngspice web site. +1.4.2 Options Specific to Using Ngspice + +Most of the now following options are not well maintained, are not tested or even maybe obsolete. --enable-capbypass - Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd - voltages are unchanged. - + Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd + voltages are unchanged. + --enable-capzerobypass - Bypass all the cbd/cbs calculations if Czero is zero. This is + Bypass all the cbd/cbs calculations if Czero is zero. This is enabled by default since rework-18. - --enable-cider - Cider is a mixed-level simulator that couples Spice3 and DSIM - to simulate devices from their technological parameters. This - part of the simulator is not compiled by default. - --enable-cluster Clustering code for distributed simulation. This is a contribution never tested. This code comes from TCLspice @@ -167,147 +191,101 @@ This file describes the procedures to install ngspice from sources. to mask devices under development. Almost useless for users. --enable-experimental - This enables some experimental code. Specifically it enables: - * support for altering options in interactive mode - by adding the interactive keyword 'options'. - * The ability to save and load snapshots: adds - interactive keywords 'savesnap' and 'loadsnap'. + This enables some experimental code. Specifically it enables: + * support for altering options in interactive mode + by adding the interactive keyword 'options'. + * The ability to save and load snapshots: adds + interactive keywords 'savesnap' and 'loadsnap'. --enable-help Force building nghelp. This is deprecated. --enable-ndev - Enable NDEV interface, (experimental) - A TCP/IP interface to external device simulator such as GSS. - For more information, please visit the homepage of GSS at - http://gss-tcad.sourceforge.net + Enable NDEV interface, (experimental) + A TCP/IP interface to external device simulator such as GSS. + For more information, please visit the homepage of GSS at + http://gss-tcad.sourceforge.net --enable-newpred Enable the NEWPRED symbol in the code. --enable-newtrunc - Enable the newtrunc option + Enable the newtrunc option --enable-nodelimiting - Experimental damping scheme + Experimental damping scheme --enable-nobypass - Don't bypass recalculations of slowly changing variables + Don't bypass recalculations of slowly changing variables --enable-nosqrt - Use always log/exp for non-linear capacitances - + Use always log/exp for non-linear capacitances + --enable-predictor - Enable a predictor method for convergence - + Enable a predictor method for convergence + --enable-sense2 - Use spice2 sensitivity analysis + Use spice2 sensitivity analysis --enable-xgraph - Compile the Xgraph plotting program. - Xgraph is a plotting package for X11 and was once very popular. - - --enable-xspice - Enable XSpice enhancements, (experimental) - A mixed signal simulator built upon spice3 with codemodel - dynamic loading support. See src/xspice/README for details. - + Compile the Xgraph plotting program. + Xgraph is a plotting package for X11 and was once very popular. + --with-editline=yes - Enables the use of the BSD editline library (libedit). - See http://www.thrysoee.dk/editline/ - This is preferred over GNU readline due to licensing issues. - - --with-readline=yes - Enable GNU readline support for the command line interface. - This requires linking against the GNU readline library and - is discouraged. - + Enables the use of the BSD editline library (libedit). + See http://www.thrysoee.dk/editline/ + --with-tcl=tcldir When configured with this option the tcl module "tclspice" is compiled and installed instead of plain ngspice. - - --enable-openmp - Compile ngspice for multi-core processors. - Parallelization is done by OpenMP - -1.4.2 Options Useful for Debugging Ngspice + +1.4.3 Options Useful for Debugging Ngspice --enable-ansi Configure will try to find an option for your compiler so that - it expects ansi-C. + it expects ansi-C. --enable-asdebug - Debug sensitivity code *ASDEBUG*. + Debug sensitivity code *ASDEBUG*. --enable-blktmsdebug Debug distortion code *BLOCKTIMES* --enable-checkergcc - Option for compilation with checkergcc. + Option for compilation with checkergcc. --enable-cpdebug - Enable ngspice shell code debug. + Enable ngspice shell code debug. --disable-debug - This option will remove the '-g' option passed to the compiler. - This speeds up compilation a *lot*, and is recommended for - normal use. + This option will remove the '-g' option passed to the compiler. + This speeds up compilation a *lot*, and is recommended for + normal use. --enable-ftedebug - Enable ngspice frontend debug. - + Enable ngspice frontend debug. + --enable-gc - Enable the Boehm-Weiser Conservative Garbage Collector. + Enable the Boehm-Weiser Conservative Garbage Collector. --enable-pzdebug - Debug pole/zero code. - + Debug pole/zero code. + --enable-sensdebug Debug sensitivity code *SENSDEBUG*. --enable-smltmsdebug - Debug distortion code *SMALLTIMES* + Debug distortion code *SMALLTIMES* --enable-smoketest - Enable smoketest compile. - + Enable smoketest compile. + --enable-stepdebug - Turns on debugging of convergence stepping?? - - -1.5 Compilation using an user defined directory tree for object files - - The procedures described above will store the *.o files (output - of the compilation step) into the directories where the sources (*.c) - are located. This may not be the best option if you want for example - to have a debug version and in parallel a release version of ngspice - (./configure option --disable-debug). - - So if you intend to create a separate object file tree like - ng-spice-rework/ngbuild/release, you may do the following, starting - from the default directory ng-spice-rework: - - mkdir -p ngbuild/release - cd ngbuild/release - ../../configure - make install - - This will create an object file directory tree, similar to the source - file directory tree, the object files are now separated from the source - files. For the debug version, you may do the same as described above, - replacing 'release' by 'debug', and obtain another separated object - file directory tree. - - If you already have run ./configure in ng-spice-rework, you have to do a - maintainer-clean, before the above procedure will work. - - Unfortunately this procedure will not work with Xspice enabled, so your - options should not include --enable-xspice. This bug will be removed in a - future version of ngspice. - - + Turns on debugging of convergence stepping?? + + 2 Compilers and Options ===================== @@ -514,7 +492,7 @@ This file describes the procedures to install ngspice from sources. 9.2 make ngspice with MS Visual Studio 2008 - ngspice may now be compiled with MS Visual Studio 2008. + ngspice may be compiled with MS Visual Studio 2008. CIDER and XSPICE are included, but the code models for XSPICE (*.cm) are not (yet) made. You may however use the code models @@ -556,44 +534,44 @@ This file describes the procedures to install ngspice from sources. vngspice is (maybe created manually): C:\Spice\ - bin\ - ngspice.exe - nghelp.exe - ngmakeidx.exe - ngnutmeg.exe - cmpp.exe - lib\ - spice\ - analog.cm - digital.cm - spice2poly.cm - extradev.cm - extravt.cm - share\ - info\ - dir - ngspice.info - ngspice.info-1 - .. - ngspice.info-10 - man\ - man1\ - ngmultidec.1 - ngnutmeg.1 - ngsconvert.1 - ngspice.1 - ng-spice-rework\ - helpdir\ - ngspice.idx - ngspice.txt - scripts\ - ciderinit - devaxis - devload - setplot - spectrum - spinit - + bin\ + ngspice.exe + nghelp.exe + ngmakeidx.exe + ngnutmeg.exe + cmpp.exe + lib\ + spice\ + analog.cm + digital.cm + spice2poly.cm + extradev.cm + extravt.cm + share\ + info\ + dir + ngspice.info + ngspice.info-1 + .. + ngspice.info-10 + man\ + man1\ + ngmultidec.1 + ngnutmeg.1 + ngsconvert.1 + ngspice.1 + ng-spice-rework\ + helpdir\ + ngspice.idx + ngspice.txt + scripts\ + ciderinit + devaxis + devload + setplot + spectrum + spinit + If you intend to install vngspice into another directory, e.g. D:\MySpice, you have to edit /visualc/include/config.h and alter the entries: #define NGSPICEBINDIR "C:/Spice/bin" diff --git a/NEWS b/NEWS index 959971f27..efac21561 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,30 @@ +Ngspice-23, June 5th, 2011 +============ + +- New features: + + Reduction of trtol to 1 only if 'A' devices in the circuit and xspice is enabled + + command wrs2p to write a s-parameter file using Touchstone vers. 1 format + + d_source d_state d_ram, test cases for those xspice codemodels + + transient noise simulation added to independent voltage and current sources + + Random telegraph noise added to independent voltage and current sources + + 'time = nnn' in stop command added + + random voltage generator option trrandom to independent voltage and current sources + + ngspice build possible in a separate directory (e.g. in ng-spice-rework/release) + + update FIND .. WHEN measurements + + diode & bjt temperature model update with tlev and tlevc + + merge bsim3v1a code with bsim3v0 and bsim3v1s code with bsim3v1 + + bjt2: removed - all GP extensions of this model are now in the bjt model + + HiSIM_HV model vers. 1.2.1 added + + bsim3v32: delvto and mulu0 as instance parameters + + Replace HiSIM1 by HiSIM_2.5.1_Release_20110407 + +- Bug fixes: + + More on prototypes, type casts, reordering of functions, compiler warnings + + allow models like 2N2904 or 2SK136 also in subcircuits + + fix sensitvity calculation (for the dc-2+.cir testcase) + + allow multiple call to setup w/ correct node collapsing + + Many small bugs + Ngspice-22, Sept 26th, 2010 ============ diff --git a/configure.ac b/configure.ac index aa9570b72..c3eecaf3e 100644 --- a/configure.ac +++ b/configure.ac @@ -12,7 +12,7 @@ dnl Initialisation dnl --------------- dnl Initialisation of configure -AC_INIT(ngspice,22,http://ngspice.sourceforge.net/bugrep.html) +AC_INIT(ngspice,23,http://ngspice.sourceforge.net/bugrep.html) dnl Unique file in the source directory AC_CONFIG_SRCDIR([src/ngspice.c]) diff --git a/visualc/include/config.h b/visualc/include/config.h index dfdb5bdcb..c1ba95d9b 100644 --- a/visualc/include/config.h +++ b/visualc/include/config.h @@ -472,13 +472,13 @@ #define PACKAGE_NAME "ngspice" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "ngspice 22" +#define PACKAGE_STRING "ngspice 23" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "ngspice" /* Define to the version of this package. */ -#define PACKAGE_VERSION "22" +#define PACKAGE_VERSION "23" /* Define if we want predictor algorithm */ /* #undef PREDICTOR */ @@ -533,7 +533,7 @@ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ -#define VERSION "22" +#define VERSION "23" /* Define if we want spice2 sensitivity analysis */ /* #undef WANT_SENSE2 */