diff --git a/ANALYSES b/ANALYSES index 7137eec05..52dd83c69 100644 --- a/ANALYSES +++ b/ANALYSES @@ -116,7 +116,9 @@ Table of Contents 11 S-parameter analysis - Evaluate s-parameters on any port of a multiport circuit, store the resulting + Evaluate S parameters on any port of a multiport circuit, store the resulting data in a Touchstone file + Load S parameters from s2p file into code model, and do ac simulation on an + automatically generated lumped element circuit. diff --git a/FAQ b/FAQ index 751c2ec02..0571cbb00 100644 --- a/FAQ +++ b/FAQ @@ -1,7 +1,7 @@ - Ngspice F.A.Q.Version 2.9 (ngspice-40 release) + Ngspice F.A.Q.Version 2.9 (ngspice-41 release) Maintained by Holger Vogt - Last update: Mar 24 2023 + Last update: Aug 11 2023 This document contains the Frequently Asked Questions (and Answers) for ngspice project. @@ -96,7 +96,7 @@ from a tcl script and vector plotted or post processed using tcl. A small GUI may be built by the user to analyze a circuit or a set of circuits. Tclspice is obtained compiling ngspice activating an additional option. - This has not been used and tested for some time. + This has not been used and tested for recently. 1.4 Why resurrecting Berkeley's Spice? @@ -165,7 +165,7 @@ Vivid discussion are going on in the ngspice discussion groups. They are found at https://sourceforge.net/p/ngspice/discussion/ - A new group 'ngspice tips and examples' will present interesting + A special group 'ngspice tips and examples' will present interesting ngspice tips (your input is welcome!) @@ -218,12 +218,14 @@ https://sourceforge.net/projects/ngspice/files/ng-spice-rework/ Nearly all distributions for MINGW, Cygwin, Linux, macOS and - others offer install-ready copies of ngspice. + others offer install-ready copies of ngspice. Please see + https://repology.org/project/ngspice/packages for packages + available. 1.12 Where should I look on the World Wide Web for ngspice stuff? - Look at the official Ngpice Web Page: + Have a look at the official Ngpice Web Page: https://ngspice.sourceforge.io @@ -235,6 +237,8 @@ Others docs are assembled at: https://ngspice.sourceforge.io/literature.html + https://ngspice.sourceforge.io/tutorials.html + https://ngspice.sourceforge.io/books.html 1.14 Are there some (official) tutorials available? @@ -252,7 +256,7 @@ The latest version released is: - * ngspice-40 (released on Mar 26 2023) + ngspice-41 (released on Aug 13 2023) 2.2. What are the latest features in the current release? @@ -289,7 +293,9 @@ 2.6. How can I join the development? To join the development just code the feature you want to add and send - your patch in the mailing list. Before you start coding check the + your patch to the dev discussion group, open a ticket at the ngspice + Patches page or post a merge request + with Sourceforge. Before you start coding check the latest development release of ngspice from our git repository. It might be that your feature has already been implemented. diff --git a/INSTALL b/INSTALL index 3a67481b8..19866cfb1 100644 --- a/INSTALL +++ b/INSTALL @@ -1,8 +1,9 @@ Ngspice installation instructions ================================= -Important notice: since ngspice-39 there has been an update -to the XSPICE code models (analog.cm etc.). Therefore it +Important notice: If you upgrade from ngspice-38 or older +there there is an update required for the XSPICE code +models (analog.cm etc.). Therefore it is not sufficient to only re-make the main executable, you will have to compile and install the code models as well, e.g. with --enable-xspice. @@ -50,16 +51,20 @@ This file describes the procedures to install ngspice from sources. is needed. Almost any LINUX offers a complete C development environment. Ngspice is developed on GNU/Linux with gcc and GNU make. - Ngspice may be compiled in three different variant, each with its own + Ngspice may be compiled in three different variants, each with its own configure settings. Standard ngsoice executable, ngspice as a shared library and ngspice as a tcl/tk library. + + Compilation to 64 bit is recommended and available per default in + the ./compile_linux.sh compule script. 32 bit might be possible, + but is not tested. The following software must be installed in your system to compile ngspice as a standard executable (command-line input, file and graphics output): bison, flex, X11 headers and libs, Xaw, Xmu, Xext, Xft, FontConfig, - Xrender, and freetype headers (e.g. libX11-devel) and libs (e.g. libX11-6), - and readline. + Xrender, freetype headers and readline. + Typically one needs the headers (e.g. libX11-devel) and the libs (e.g. libX11-6). ngspice as a shared library (no graphics and no command-line interfaces) will need bison and flex only. @@ -68,7 +73,7 @@ This file describes the procedures to install ngspice from sources. internal fft algorithms. If you want to compile the source from the git repository, or if you want to - use the compile script ./compile_linux.sh, you will need additional software: + use the compile script ./compile_linux.sh, you will need additional software: autoconf, automake, libtool. The following software may be needed when enabling additional features: @@ -81,21 +86,22 @@ This file describes the procedures to install ngspice from sources. For compiling ngspice as a shared library, see section 1.4. -1.2 Install from tarball (e.g. ngspice-40.tar.gz) +1.2 Install from tarball (e.g. ngspice-41.tar.gz) This covers installation from a release distribution (for example - ngspice-40.tar.gz, the so called tar ball). + ngspice-41.tar.gz, the so called tar ball). After downloading the tar ball to a local directory, unpack it by command: - $ tar -zxvf ngspice-40.tar.gz + $ tar -zxvf ngspice-41.tar.gz Now change directories in to the top-level source directory (where this INSTALL file can be found). The most comfortable way to compile ngspice is running the compile script - compile_linux.sh within the terminal window by ./compile_linux.sh. Admin - rights are required to allow the installation included in the script. + compile_linux.sh within the terminal window by ./compile_linux.sh. The + script has to be declared as 'executable', and admin + rights are required to allow the installation of ngspice. CentOS users may need to add -std=c99 to the CFLAGS in the ../configure statement. @@ -108,7 +114,9 @@ This file describes the procedures to install ngspice from sources. $ make $ sudo make install - The default install directory for executables is /usr/local/bin. + The default install directory for executables is /usr/local/bin, the XSPICE + code models will be installed in /usr/local/lib/ngspice. Some distros use lib64 + instead. A simple ../configure might be sufficient for a basic ngspice, but the preferred arguments to ../configure are @@ -121,7 +129,7 @@ This file describes the procedures to install ngspice from sources. A fully featured ngspice on LINUX may be obtained with the following commands: $ mkdir release $ cd release - $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-osdi --enable-openmp + $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-predictor --enable-osdi --enable-openmp $ make 2>&1 | tee make.log $ sudo make install @@ -170,7 +178,7 @@ This file describes the procedures to install ngspice from sources. $ ./autogen.sh $ mkdir release $ cd release - $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-osdi + $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-predictor --enable-osdi $ make 2>&1 | tee make.log $ sudo make install @@ -291,10 +299,8 @@ This file describes the procedures to install ngspice from sources. --enable-cpdebug 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. + --disable-sp + Disable S Parameter Analysis --enable-ftedebug Enable ngspice frontend debug. @@ -602,9 +608,8 @@ This file describes the procedures to install ngspice from sources. CIDER and XSPICE are included, the code models for XSPICE (*.cm) are made as well. - There is currently no installation procedure provided, you may - however install the executable manually as described in the - installation tree below. + ngspice is installed into C:\Spice64\ (release version) or + C:\Spice64d\ (debug version). The directory (visualc) with its files vngspice.sln (project starter) and diff --git a/INTERNALS b/INTERNALS index cf0f63f51..9c8b1c6a8 100644 --- a/INTERNALS +++ b/INTERNALS @@ -17,21 +17,21 @@ CODE ORGANIZATION "visualc/" project files to enable compilation with MS Visual Studio. "src/" and its subdirectories contain all of the C source code. - It contains the top level files "main.c" used by ngspice and + It contains the top level files "main.c" used by ngspice and "sharedspice.c" used by ngspice as shared library. There are also main files for outdated ngnutmeg, nghelp, ngmultidec, ngproc2mod, and ngsconvert. - + "src/ciderlib" hosts the code for the CIDER extension to ngspice, a 2D process simulator offering connection between process and devices to be simulated by ngspice. - + "src/xspice" contains the code for the XSPICE extension to ngspice, an - interface to analog and digital code models for true mixed signal simulation. + interface to analog and digital code models for true mixed signal simulation. "src/misc" Miscellaneous utility and portability routines. - - "src/include" Header files for all *.c files of ngspice. + + "src/include" Header files for all *.c files of ngspice. "src/spicelib" is the device library and analysis portion of ngspice. Within it are the following subdirectories: @@ -39,7 +39,7 @@ CODE ORGANIZATION each device implementation. analysis/ All of the analysis code. parser/ To set up the matrix derived from the netlist. - + "src/maths" contains all maths functions of ngspice with ni/ Numerical algorithms (used by ckt routines). sparse/ Sparse matrix package (used by ckt and ni). @@ -49,20 +49,23 @@ CODE ORGANIZATION misc/ Various math support algorithms deriv/ Various partial derivatives used by some device models (bjt, MOS1-9) dense/ Matrix operations used by S-parameter simulation - + "src/frontend" contains the code for interfacing ngspice to its input and output. Files com_*.c contain the control language commands. outitf.c organizes the output file structure, rawfile.c writes output files, parse.c is the control language function parser. svg and postscript output are handled as well. - inp.c, inpcom.c and subckt.c serve the main input handling functions: - reading the netlist, parsing it, dealing with compatibility, expanding + inp.c, inpcom.c and subckt.c serve the main input handling functions: + reading the netlist, parsing it, dealing with compatibility, expanding subcircuits and preparing the internal circuit structure. - - Furthermore it contains subdirs + + Furthermore it contains subdirs help/ The windowed help system (outdated). numparam/ Parser for .param and .func statements. parser/ More front end -- "C shell". wdisp/ MS Windows GUI trannoise/ random number and noise generator - plotting/ plot interface to X11, gnuplot, and preparing output graphs + plotting/ plot interface to X11, gnuplot, and preparing output graphs (curves and grid), interpreter for 'plot' command (plotit.c) + + "src/osdi" contains the code for interfacing ngspice to the OpenVAF compiled + Verilog-A compact device models. diff --git a/NEWS b/NEWS index 810f0c127..110eafd11 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,12 @@ +Ngspice-41, Aug 13th, 2023 +============ +- New features: + +- Bug fixes: + + Several crash bugs (double delete, access NULL pointer etc) removed + which have occurred mostly due to incomplete or faulty inputs. + + Memory leaks for CIDER removed + Ngspice-40, Mar 31st, 2023 ============ - New features: diff --git a/configure.ac b/configure.ac index f7f5f1139..c64505db2 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ # problem to the user. AC_PREREQ([2.59]) -m4_define([ngspice_major_version], [40+]) +m4_define([ngspice_major_version], [41]) m4_define([ngspice_minor_version], [0]) m4_define([ngspice_version], [ngspice_major_version]) @@ -117,7 +117,7 @@ LT_INIT([shared static]) # --> Set 'LT_NGSPICE_AGE' to 0. LT_NGSPICE_CURRENT=0 -LT_NGSPICE_REVISION=7 +LT_NGSPICE_REVISION=8 LT_NGSPICE_AGE=1 LIBNGSPICE_SO_VERSION=$LT_NGSPICE_CURRENT.$LT_NGSPICE_REVISION.$LT_NGSPICE_AGE