|
|
|
@ -1,5 +1,51 @@ |
|
|
|
Install from CVS |
|
|
|
================ |
|
|
|
Ngspice installation instructions |
|
|
|
================================= |
|
|
|
|
|
|
|
Table of contents |
|
|
|
|
|
|
|
1 Ngspice installation |
|
|
|
1.1 Prerequisites |
|
|
|
1.2 Install from CVS |
|
|
|
1.3 Basic Install |
|
|
|
1.4 Advanced Install |
|
|
|
1.4.1 Options Specific to Using Ngspice |
|
|
|
1.4.2 Options Useful for Debugging Ngspice |
|
|
|
2 Compilers and Options |
|
|
|
3 Compiling For Multiple Architectures |
|
|
|
4 Installation Names |
|
|
|
5 Optional Features |
|
|
|
6 Specifying the System Type |
|
|
|
7 Sharing Defaults |
|
|
|
8 Operation Controls |
|
|
|
9 NGSPICE COMPILATION UNDER WINDOWS OS |
|
|
|
9.1 make ngspice with CYGWIN and external MINGW32 |
|
|
|
9.2 make ngspice with CYGWIN and internal MINGW32 (use config.h made above) |
|
|
|
9.3 make ngspice with pure CYGWIN |
|
|
|
9.4 How to make ngspice with MINGW and MSYS |
|
|
|
|
|
|
|
|
|
|
|
This file describes the procedures to install ngspice from sources. |
|
|
|
|
|
|
|
|
|
|
|
1 Ngspice Installation |
|
|
|
==================== |
|
|
|
|
|
|
|
1.1 Prerequisites |
|
|
|
|
|
|
|
Ngspice is written in C and thus a complete C compilation environment is |
|
|
|
needed. Almost any UNIX comes with a complete C development environment. |
|
|
|
Ngspice is developed on GNU/Linux with gcc and GNU make. |
|
|
|
|
|
|
|
The following software must be installed in your system to compile ngspice: |
|
|
|
bison, flex and X11. |
|
|
|
|
|
|
|
If you want to compile the CVS source you need additional software: |
|
|
|
autoconf, automake, libtool, texinfo. |
|
|
|
|
|
|
|
The following software may be needed when enabling additional features: |
|
|
|
editline, tcl/tk |
|
|
|
|
|
|
|
1.2 Install from CVS |
|
|
|
|
|
|
|
This section describes how to install from source code taken direct |
|
|
|
from CVS. It is intended more for developers than for users as the code |
|
|
|
@ -28,28 +74,25 @@ See the section titled 'Advanced Install' for instructions about arguments |
|
|
|
that can be passed to ./configure to customise the build and installation. |
|
|
|
|
|
|
|
If a problem is found with the build proccess, please submit a report to |
|
|
|
the NGSpice development team. Please provide information about you system |
|
|
|
the Ngspice development team. Please provide information about your system |
|
|
|
and any ./configure arguments you are using, together with any error |
|
|
|
messages. Ideally you would have tried to fix the problem yourself first, |
|
|
|
and details about this and any thought you may has as to the cause of the |
|
|
|
problem should also be provided. If you have fixed the problem then the |
|
|
|
development team will love to hear from you. |
|
|
|
messages. Ideally you would have tried to fix the problem yourself first. |
|
|
|
If you have fixed the problem then the development team will love to hear |
|
|
|
from you. |
|
|
|
|
|
|
|
1.3 Basic Install |
|
|
|
|
|
|
|
Basic Installation |
|
|
|
================== |
|
|
|
|
|
|
|
This covers installation from a tar-ball (for example ngspice-rework-15.tgz). |
|
|
|
|
|
|
|
This covers installation from a tarball (for example ngspice-rework-18.tgz). |
|
|
|
After downloading the tar ball to a local directory unpack it using: |
|
|
|
|
|
|
|
$ tar -zxvf ngspice-rework-15.tgz |
|
|
|
$ tar -zxvf ngspice-rework-18.tgz |
|
|
|
|
|
|
|
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 |
|
|
|
$ make |
|
|
|
$ sudo make install |
|
|
|
@ -59,8 +102,8 @@ The default install dir is /usr/local/bin |
|
|
|
See the section titled 'Advanced Install' for instructions about arguments |
|
|
|
that can be passed to ./configure to customise the build and installation. |
|
|
|
|
|
|
|
Advanced Install |
|
|
|
================ |
|
|
|
|
|
|
|
1.4 Advanced Install |
|
|
|
|
|
|
|
Some extra options can be provided to './configure'. To get all available |
|
|
|
options do: |
|
|
|
@ -68,144 +111,151 @@ 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. |
|
|
|
Ngspice, other are specific to Ngspice. |
|
|
|
|
|
|
|
The following sections provide some guidance and descriptions for many, |
|
|
|
but not all, of these options. |
|
|
|
|
|
|
|
|
|
|
|
Options Specific to Using NGSpice |
|
|
|
================================= |
|
|
|
1.4.1 Options Specific to Using Ngspice |
|
|
|
|
|
|
|
--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. |
|
|
|
|
|
|
|
--enable-capbypass |
|
|
|
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 |
|
|
|
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 |
|
|
|
implementation and is implemented for transient analysis only. |
|
|
|
|
|
|
|
--enable-expdevices |
|
|
|
Enable experimental devices. This option is used by developers |
|
|
|
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' |
|
|
|
by adding the interactive keyword 'options'. |
|
|
|
* The ability to save and load snapshots: adds |
|
|
|
interactive keywords 'savesnap' and 'loadsnap' |
|
|
|
interactive keywords 'savesnap' and 'loadsnap'. |
|
|
|
|
|
|
|
--enable-nosqrt |
|
|
|
Use always log/exp for non-linear capacitances |
|
|
|
--enable-help |
|
|
|
Force building nghelp. This is deprecated. |
|
|
|
|
|
|
|
--enable-nobypass |
|
|
|
Don't bypass recalculations of slowly changing variables |
|
|
|
--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-capbypass |
|
|
|
Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd |
|
|
|
voltages are unchanged |
|
|
|
--enable-newpred |
|
|
|
Enable the NEWPRED symbol in the code. |
|
|
|
|
|
|
|
--enable-capzerobypass |
|
|
|
Bypass all the cbd/cbs calculations if Czero is zero |
|
|
|
--enable-newtrunc |
|
|
|
Enable the newtrunc option |
|
|
|
|
|
|
|
--enable-nodelimiting |
|
|
|
Experimental damping scheme |
|
|
|
|
|
|
|
--enable-nobypass |
|
|
|
Don't bypass recalculations of slowly changing variables |
|
|
|
|
|
|
|
--enable-nosqrt |
|
|
|
Use always log/exp for non-linear capacitances |
|
|
|
|
|
|
|
--enable-predictor |
|
|
|
Enable a predictor method for convergence |
|
|
|
|
|
|
|
--enable-newtrunc |
|
|
|
Enable the newtrunc option |
|
|
|
|
|
|
|
--enable-sense2 |
|
|
|
Use spice2 sensitivity analysis |
|
|
|
|
|
|
|
--enable-intnoise |
|
|
|
Enable noise integration in noise analysis |
|
|
|
|
|
|
|
--enable-ekv |
|
|
|
Enable ekv model support. |
|
|
|
The source code for the this must be obtained from EKV web |
|
|
|
site (see DEVICE for more info). To enable EKV support you |
|
|
|
have to obtain the code first and then use this configure |
|
|
|
switch. |
|
|
|
--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 |
|
|
|
dynamic loading support. See src/xspice/README for details. |
|
|
|
|
|
|
|
--enable-cider |
|
|
|
Enable CIDER enhancements, (experimental) |
|
|
|
A mixed level simulator built upon spice3. |
|
|
|
--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. |
|
|
|
|
|
|
|
--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 |
|
|
|
--with-readline=yes |
|
|
|
Enable GNU readline support for the command line interface. |
|
|
|
This requires linking against the GNU readline library and |
|
|
|
is discouraged. |
|
|
|
|
|
|
|
--enable-cluster |
|
|
|
Enable cluster support, (experimental) |
|
|
|
--with-tcl=tcldir |
|
|
|
When configured with this option the tcl module |
|
|
|
"tclspice" is compiled and installed instead of |
|
|
|
plain ngspice. |
|
|
|
|
|
|
|
--enable-numparam |
|
|
|
Enable numparams library support, (experimental) |
|
|
|
A library that allows for parameter substitution at netlist |
|
|
|
level. |
|
|
|
|
|
|
|
--enable-xgraph |
|
|
|
Compile the Xgraph plotting program. |
|
|
|
Xgraph is a plotting package for X11 and was once very popular. |
|
|
|
1.4.2 Options Useful for Debugging Ngspice |
|
|
|
|
|
|
|
--enable-dot-global |
|
|
|
Allows the use of the .global keyword. |
|
|
|
--enable-ansi |
|
|
|
Configure will try to find an option for your compiler so that |
|
|
|
it expects ansi-C. |
|
|
|
|
|
|
|
--with-readline=yes |
|
|
|
Enable GNU readline support for the command line interface. |
|
|
|
This requires linking against the GNU readline library and |
|
|
|
is discouraged. |
|
|
|
--enable-asdebug |
|
|
|
Debug sensitivity code *ASDEBUG*. |
|
|
|
|
|
|
|
--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. |
|
|
|
--enable-blktmsdebug |
|
|
|
Debug distortion code *BLOCKTIMES* |
|
|
|
|
|
|
|
--enable-checkergcc |
|
|
|
Option for compilation with checkergcc. |
|
|
|
|
|
|
|
Options Useful for Debugging NGSpice |
|
|
|
==================================== |
|
|
|
--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. |
|
|
|
|
|
|
|
--enable-ansi |
|
|
|
Configure will try to find an option for your compiler so that |
|
|
|
it expects ansi-C |
|
|
|
|
|
|
|
--enable-checkergcc |
|
|
|
Option for compilation with checkergcc |
|
|
|
--enable-ftedebug |
|
|
|
Enable ngspice frontend debug. |
|
|
|
|
|
|
|
--enable-gc |
|
|
|
Enable the Boehm-Weiser Conservative Garbage Collector |
|
|
|
Enable the Boehm-Weiser Conservative Garbage Collector. |
|
|
|
|
|
|
|
--enable-ftedebug |
|
|
|
Enable ngspice frontend debug |
|
|
|
--enable-pzdebug |
|
|
|
Debug pole/zero code. |
|
|
|
|
|
|
|
--enable-sensdebug |
|
|
|
--enable-asdebug |
|
|
|
Debug sensitivity code |
|
|
|
|
|
|
|
--enable-cpdebug |
|
|
|
Enable ngspice shell debug |
|
|
|
|
|
|
|
--enable-stepdebug |
|
|
|
Turns on debugging of convergence stepping?? |
|
|
|
Debug sensitivity code *SENSDEBUG*. |
|
|
|
|
|
|
|
--enable-pzdebug |
|
|
|
Debug pole/zero code |
|
|
|
|
|
|
|
--enable-blktmsdebug |
|
|
|
--enable-smltmsdebug |
|
|
|
Debug distortion code |
|
|
|
Debug distortion code *SMALLTIMES* |
|
|
|
|
|
|
|
--enable-smoketest |
|
|
|
Enable smoketest compile |
|
|
|
Enable smoketest compile. |
|
|
|
|
|
|
|
--enable-expdevices |
|
|
|
Enable experimental devices (may not compile) |
|
|
|
--enable-stepdebug |
|
|
|
Turns on debugging of convergence stepping?? |
|
|
|
|
|
|
|
|
|
|
|
Compilers and Options |
|
|
|
2 Compilers and Options |
|
|
|
===================== |
|
|
|
|
|
|
|
Some systems require unusual options for compilation or linking that |
|
|
|
@ -218,7 +268,7 @@ this: |
|
|
|
Or on systems that have the `env' program, you can do it like this: |
|
|
|
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure |
|
|
|
|
|
|
|
Compiling For Multiple Architectures |
|
|
|
3 Compiling For Multiple Architectures |
|
|
|
==================================== |
|
|
|
|
|
|
|
You can compile the package for more than one kind of computer at the |
|
|
|
@ -235,7 +285,7 @@ in the source code directory. After you have installed the package for |
|
|
|
one architecture, use `make distclean' before reconfiguring for another |
|
|
|
architecture. |
|
|
|
|
|
|
|
Installation Names |
|
|
|
4 Installation Names |
|
|
|
================== |
|
|
|
|
|
|
|
By default, `make install' will install the package's files in |
|
|
|
@ -262,7 +312,7 @@ When installed on MinGW with MSYS alternative paths are not fully supported. |
|
|
|
See 'How to make ngspice with MINGW and MSYS' below for details. |
|
|
|
|
|
|
|
|
|
|
|
Optional Features |
|
|
|
5 Optional Features |
|
|
|
================= |
|
|
|
|
|
|
|
Some packages pay attention to `--enable-FEATURE' options to |
|
|
|
@ -277,7 +327,7 @@ find the X include and library files automatically, but if it doesn't, |
|
|
|
you can use the `configure' options `--x-includes=DIR' and |
|
|
|
`--x-libraries=DIR' to specify their locations. |
|
|
|
|
|
|
|
Specifying the System Type |
|
|
|
6 Specifying the System Type |
|
|
|
========================== |
|
|
|
|
|
|
|
There may be some features `configure' can not figure out |
|
|
|
@ -297,7 +347,7 @@ use the `--target=TYPE' option to select the type of system they will |
|
|
|
produce code for and the `--build=TYPE' option to select the type of |
|
|
|
system on which you are compiling the package. |
|
|
|
|
|
|
|
Sharing Defaults |
|
|
|
7 Sharing Defaults |
|
|
|
================ |
|
|
|
|
|
|
|
If you want to set default values for `configure' scripts to share, |
|
|
|
@ -308,7 +358,7 @@ default values for variables like `CC', `cache_file', and `prefix'. |
|
|
|
`CONFIG_SITE' environment variable to the location of the site script. |
|
|
|
A warning: not all `configure' scripts look for a site script. |
|
|
|
|
|
|
|
Operation Controls |
|
|
|
8 Operation Controls |
|
|
|
================== |
|
|
|
|
|
|
|
`configure' recognizes the following options to control how it |
|
|
|
@ -341,16 +391,16 @@ operates. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NGSPICE COMPILATION UNDER WINDOWS OS |
|
|
|
9 NGSPICE COMPILATION UNDER WINDOWS OS |
|
|
|
==================================== |
|
|
|
|
|
|
|
|
|
|
|
make ngspice with CYGWIN and external MINGW32 |
|
|
|
9.1 make ngspice with CYGWIN and external MINGW32 |
|
|
|
|
|
|
|
according to http://www.geocrawler.com/lists/3/SourceForge/6013/0/7321042/ |
|
|
|
|
|
|
|
|
|
|
|
$ cd ng-spice-rework-14 |
|
|
|
$ cd ng-spice-rework-18 |
|
|
|
$ export PATH="/cygdrive/g/gcc_mingw/bin:$PATH" |
|
|
|
$ autoconf |
|
|
|
$ rm config.cache |
|
|
|
@ -362,15 +412,13 @@ $ cp config.h config_ming.h |
|
|
|
|
|
|
|
ngspice.exe is o.k.,but make tests does not work (cannot direct console |
|
|
|
output into file). Needs to add .save "what" "where.test" to every input |
|
|
|
(*.cir) file. Also all given output files have to be adapted to WINDOWS (CR/LF |
|
|
|
instead of only LF at each line ending) for allowing proper comparison. |
|
|
|
|
|
|
|
(*.cir) file. Also all given output files have to be adapted to WINDOWS |
|
|
|
(CR/LF instead of only LF at each line ending) for allowing proper comparison. |
|
|
|
|
|
|
|
|
|
|
|
make ngspice with CYGWIN and internal MINGW32 (use config.h made above) |
|
|
|
----------------------------------------------------------------------- |
|
|
|
9.2 make ngspice with CYGWIN and internal MINGW32 (use config.h made above) |
|
|
|
|
|
|
|
$ cd ng-spice-rework-14 |
|
|
|
$ cd ng-spice-rework-18 |
|
|
|
$ rm config.cache |
|
|
|
$ export CFLAGS="-mno-cygwin -g -O2" |
|
|
|
$ export LDFLAGS="-L/lib/mingw" |
|
|
|
@ -389,8 +437,7 @@ ToDo: find appropriate presets for variables ? |
|
|
|
directories) |
|
|
|
|
|
|
|
|
|
|
|
make ngspice with pure CYGWIN |
|
|
|
----------------------------- |
|
|
|
9.3 make ngspice with pure CYGWIN |
|
|
|
|
|
|
|
If you don't have libdl.a you may need to link libcygwin.a |
|
|
|
to libdl.a symbolically. |
|
|
|
@ -403,8 +450,7 @@ $ ln -s libcygwin.a libdl.a. |
|
|
|
The procedure of compiling is the same as Linux. |
|
|
|
|
|
|
|
|
|
|
|
How to make ngspice with MINGW and MSYS |
|
|
|
--------------------------------------- |
|
|
|
9.4 How to make ngspice with MINGW and MSYS |
|
|
|
|
|
|
|
The default installation location is the Windows path C:\msys\1.0\local |
|
|
|
Normally the install path can be altered by passing --prefix=NEWPATH as an |
|
|
|
@ -420,14 +466,15 @@ following lines in src/conf.h. |
|
|
|
#endif |
|
|
|
|
|
|
|
Put the install path you desire inside "", and then use the unix-style |
|
|
|
equivalent with --prefix=NEWPATH as an argument to ./configure in the normal way. |
|
|
|
equivalent with --prefix=NEWPATH as an argument to ./configure in the |
|
|
|
normal way. |
|
|
|
|
|
|
|
Next, the line feed code in src/ngspice.txt must be changed from LF to CR/LF. |
|
|
|
|
|
|
|
The procedure of compiling a distribution (for example, a tarball from the |
|
|
|
ngspice website), is as follows: |
|
|
|
|
|
|
|
$ cd ng-spice-rework-17 |
|
|
|
$ cd ng-spice-rework-18 |
|
|
|
$ ./configure --with-windows ...and other options |
|
|
|
$ make |
|
|
|
$ make install |
|
|
|
@ -435,15 +482,15 @@ $ make install |
|
|
|
However, to compile code extracted from the CVS repository the procedure is |
|
|
|
a little different, thus: |
|
|
|
|
|
|
|
$ cd ng-spice-rework-17 |
|
|
|
$ cd ng-spice-rework-18 |
|
|
|
$ ./autogen.sh |
|
|
|
$ ./configure --enable-maintainer-mode --with-windows ...and other options |
|
|
|
$ make |
|
|
|
$ make install |
|
|
|
|
|
|
|
Finally, if you use xspice (ie. if to ran ./configure with --enable-xspice) |
|
|
|
then the directory of each "code model" referenced in the "spinit" file must |
|
|
|
be modified from UNIX form to DOS form. |
|
|
|
Finally, if you use xspice (ie. if to ran ./configure with --enable- |
|
|
|
xspice) then the directory of each "code model" referenced in the "spinit" |
|
|
|
file must be modified from UNIX form to DOS form. |
|
|
|
|
|
|
|
For example: |
|
|
|
Change |
|
|
|
|