Prepare ngspice-41

This commit is contained in:
Holger Vogt 2023-08-11 14:12:50 +02:00
parent 738881a014
commit 6600bf18b4
6 changed files with 70 additions and 45 deletions

View File

@ -116,7 +116,9 @@ Table of Contents
11 S-parameter analysis 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 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.

22
FAQ
View File

@ -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 Maintained by Holger Vogt
Last update: Mar 24 2023 Last update: Aug 11 2023
This document contains the Frequently Asked Questions (and Answers) This document contains the Frequently Asked Questions (and Answers)
for ngspice project. for ngspice project.
@ -96,7 +96,7 @@
from a tcl script and vector plotted or post processed using tcl. A small 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. 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. 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? 1.4 Why resurrecting Berkeley's Spice?
@ -165,7 +165,7 @@
Vivid discussion are going on in the ngspice discussion groups. Vivid discussion are going on in the ngspice discussion groups.
They are found at https://sourceforge.net/p/ngspice/discussion/ 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!) ngspice tips (your input is welcome!)
@ -218,12 +218,14 @@
https://sourceforge.net/projects/ngspice/files/ng-spice-rework/ https://sourceforge.net/projects/ngspice/files/ng-spice-rework/
Nearly all distributions for MINGW, Cygwin, Linux, macOS and 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? 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 https://ngspice.sourceforge.io
@ -235,6 +237,8 @@
Others docs are assembled at: Others docs are assembled at:
https://ngspice.sourceforge.io/literature.html 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? 1.14 Are there some (official) tutorials available?
@ -252,7 +256,7 @@
The latest version released is: 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? 2.2. What are the latest features in the current release?
@ -289,7 +293,9 @@
2.6. How can I join the development? 2.6. How can I join the development?
To join the development just code the feature you want to add and send 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. latest development release of ngspice from our git repository.
It might be that your feature has already been implemented. It might be that your feature has already been implemented.

47
INSTALL
View File

@ -1,8 +1,9 @@
Ngspice installation instructions Ngspice installation instructions
================================= =================================
Important notice: since ngspice-39 there has been an update Important notice: If you upgrade from ngspice-38 or older
to the XSPICE code models (analog.cm etc.). Therefore it 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, is not sufficient to only re-make the main executable,
you will have to compile and install the code models as well, you will have to compile and install the code models as well,
e.g. with --enable-xspice. 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. is needed. Almost any LINUX offers a complete C development environment.
Ngspice is developed on GNU/Linux with gcc and GNU make. 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 configure settings. Standard ngsoice executable, ngspice as a shared
library and ngspice as a tcl/tk library. 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 The following software must be installed in your system to compile
ngspice as a standard executable (command-line input, file and graphics ngspice as a standard executable (command-line input, file and graphics
output): output):
bison, flex, X11 headers and libs, Xaw, Xmu, Xext, Xft, FontConfig, 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), Xrender, freetype headers and readline.
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) ngspice as a shared library (no graphics and no command-line interfaces)
will need bison and flex only. will need bison and flex only.
@ -68,7 +73,7 @@ This file describes the procedures to install ngspice from sources.
internal fft algorithms. internal fft algorithms.
If you want to compile the source from the git repository, or if you want to 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. autoconf, automake, libtool.
The following software may be needed when enabling additional features: 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. 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 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: 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 Now change directories in to the top-level source directory (where this
INSTALL file can be found). INSTALL file can be found).
The most comfortable way to compile ngspice is running the compile script The most comfortable way to compile ngspice is running the compile script
compile_linux.sh within the terminal window by ./compile_linux.sh. Admin compile_linux.sh within the terminal window by ./compile_linux.sh. The
rights are required to allow the installation included in the script. 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 CentOS users may need to add -std=c99 to the CFLAGS in the ../configure
statement. statement.
@ -108,7 +114,9 @@ This file describes the procedures to install ngspice from sources.
$ make $ make
$ sudo make install $ 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 A simple ../configure might be sufficient for a basic ngspice, but the preferred
arguments to ../configure are 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: A fully featured ngspice on LINUX may be obtained with the following commands:
$ mkdir release $ mkdir release
$ cd 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 $ make 2>&1 | tee make.log
$ sudo make install $ sudo make install
@ -170,7 +178,7 @@ This file describes the procedures to install ngspice from sources.
$ ./autogen.sh $ ./autogen.sh
$ mkdir release $ mkdir release
$ cd 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 $ make 2>&1 | tee make.log
$ sudo make install $ sudo make install
@ -291,10 +299,8 @@ This file describes the procedures to install ngspice from sources.
--enable-cpdebug --enable-cpdebug
Enable ngspice shell code debug. Enable ngspice shell code debug.
--disable-debug --disable-sp
This option will remove the '-g' option passed to the compiler. Disable S Parameter Analysis
This speeds up compilation a *lot*, and is recommended for
normal use.
--enable-ftedebug --enable-ftedebug
Enable ngspice frontend debug. 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 CIDER and XSPICE are included, the code models for XSPICE
(*.cm) are made as well. (*.cm) are made as well.
There is currently no installation procedure provided, you may ngspice is installed into C:\Spice64\ (release version) or
however install the executable manually as described in the C:\Spice64d\ (debug version).
installation tree below.
The directory (visualc) with its files The directory (visualc) with its files
vngspice.sln (project starter) and vngspice.sln (project starter) and

View File

@ -17,21 +17,21 @@ CODE ORGANIZATION
"visualc/" project files to enable compilation with MS Visual Studio. "visualc/" project files to enable compilation with MS Visual Studio.
"src/" and its subdirectories contain all of the C source code. "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. "sharedspice.c" used by ngspice as shared library.
There are also main files for outdated ngnutmeg, nghelp, ngmultidec, There are also main files for outdated ngnutmeg, nghelp, ngmultidec,
ngproc2mod, and ngsconvert. ngproc2mod, and ngsconvert.
"src/ciderlib" hosts the code for the CIDER extension to ngspice, a "src/ciderlib" hosts the code for the CIDER extension to ngspice, a
2D process simulator offering connection between process and devices 2D process simulator offering connection between process and devices
to be simulated by ngspice. to be simulated by ngspice.
"src/xspice" contains the code for the XSPICE extension to ngspice, an "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/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 "src/spicelib" is the device library and analysis portion of ngspice. Within
it are the following subdirectories: it are the following subdirectories:
@ -39,7 +39,7 @@ CODE ORGANIZATION
each device implementation. each device implementation.
analysis/ All of the analysis code. analysis/ All of the analysis code.
parser/ To set up the matrix derived from the netlist. parser/ To set up the matrix derived from the netlist.
"src/maths" contains all maths functions of ngspice with "src/maths" contains all maths functions of ngspice with
ni/ Numerical algorithms (used by ckt routines). ni/ Numerical algorithms (used by ckt routines).
sparse/ Sparse matrix package (used by ckt and ni). sparse/ Sparse matrix package (used by ckt and ni).
@ -49,20 +49,23 @@ CODE ORGANIZATION
misc/ Various math support algorithms misc/ Various math support algorithms
deriv/ Various partial derivatives used by some device models (bjt, MOS1-9) deriv/ Various partial derivatives used by some device models (bjt, MOS1-9)
dense/ Matrix operations used by S-parameter simulation dense/ Matrix operations used by S-parameter simulation
"src/frontend" contains the code for interfacing ngspice to its input and output. "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 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 output file structure, rawfile.c writes output files, parse.c is the control
language function parser. svg and postscript output are handled as well. language function parser. svg and postscript output are handled as well.
inp.c, inpcom.c and subckt.c serve the main input handling functions: inp.c, inpcom.c and subckt.c serve the main input handling functions:
reading the netlist, parsing it, dealing with compatibility, expanding reading the netlist, parsing it, dealing with compatibility, expanding
subcircuits and preparing the internal circuit structure. subcircuits and preparing the internal circuit structure.
Furthermore it contains subdirs Furthermore it contains subdirs
help/ The windowed help system (outdated). help/ The windowed help system (outdated).
numparam/ Parser for .param and .func statements. numparam/ Parser for .param and .func statements.
parser/ More front end -- "C shell". parser/ More front end -- "C shell".
wdisp/ MS Windows GUI wdisp/ MS Windows GUI
trannoise/ random number and noise generator 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) (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.

9
NEWS
View File

@ -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 Ngspice-40, Mar 31st, 2023
============ ============
- New features: - New features:

View File

@ -16,7 +16,7 @@
# problem to the user. # problem to the user.
AC_PREREQ([2.59]) 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_minor_version], [0])
m4_define([ngspice_version], m4_define([ngspice_version],
[ngspice_major_version]) [ngspice_major_version])
@ -117,7 +117,7 @@ LT_INIT([shared static])
# --> Set 'LT_NGSPICE_AGE' to 0. # --> Set 'LT_NGSPICE_AGE' to 0.
LT_NGSPICE_CURRENT=0 LT_NGSPICE_CURRENT=0
LT_NGSPICE_REVISION=7 LT_NGSPICE_REVISION=8
LT_NGSPICE_AGE=1 LT_NGSPICE_AGE=1
LIBNGSPICE_SO_VERSION=$LT_NGSPICE_CURRENT.$LT_NGSPICE_REVISION.$LT_NGSPICE_AGE LIBNGSPICE_SO_VERSION=$LT_NGSPICE_CURRENT.$LT_NGSPICE_REVISION.$LT_NGSPICE_AGE