diff options
Diffstat (limited to 'Windows/spice/doc/INSTALL')
-rw-r--r-- | Windows/spice/doc/INSTALL | 699 |
1 files changed, 699 insertions, 0 deletions
diff --git a/Windows/spice/doc/INSTALL b/Windows/spice/doc/INSTALL new file mode 100644 index 00000000..23c1f877 --- /dev/null +++ b/Windows/spice/doc/INSTALL @@ -0,0 +1,699 @@ +Ngspice installation instructions +================================= + +Table of contents + + 1 Ngspice installation (LINUX) + 1.1 Prerequisites + 1.2 Install from tarball (e.g. ngspice-26.tar.gz) + 1.3 Install from git repository + 1.4 Advanced Install + 1.4.1 Most useful options + 1.4.2 Options Specific to Using Ngspice + 1.4.3 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 How to make ngspice with MINGW and MSYS + 9.2 make ngspice with MS Visual Studio 2008 + 9.3 make ngspice with pure CYGWIN + 9.4 ngspice console app with MINGW or CYGWIN + + +This file describes the procedures to install ngspice from sources. + + +1 Ngspice Installation (LINUX, maybe others) + ==================== + +1.1 Prerequisites + + Ngspice is written in C and thus a complete C compilation environment + is needed. Almost any LINUX offers 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 headers and libs. + + If you want to compile the source from the git repository you need + additional software: autoconf, automake, libtool, texinfo, readline. + + The following software may be needed when enabling additional features: + editline, tcl/tk, adms + + Please have a look at the actual ngspice manual, downloadable at + http://ngspice.sourceforge.net/docs.html, which gives you much more + information on ngspice and its usage. + + +1.2 Install from tarball (e.g. ngspice-26.tar.gz) + + This covers installation from a release distribution (for example + ngspice-26.tar.gz, the so called tar ball). + + After downloading the tar ball to a local directory unpack it using: + + $ tar -zxvf ngspice-26.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: + + $ mkdir release + $ cd release + $ ../configure --with-x --with-readline=yes --disable-debug + $ make + $ sudo make install + + The default install directory for executables is /usr/local/bin. + + A simple ../configure might be sufficient for a basic ngspice, but the preferred + arguments to ../configure are + --with-x --with-readline=yes and --disable-debug + providing you with a comfortably working ngspice (see section 1.4 for details). + + See the section titled 'Advanced Install' for instructions about additional arguments + that can be passed to ../configure to customise the build and installation. + + Do not use the script ./autogen.sh, because it is not required for + compiling and installing ngspice from the tarball. + + 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-openmp + $ make 2>&1 | tee make.log + $ sudo make install + + To remove the executables and libraries from the install directory, you may call + $ sudo make uninstall + + +1.3 Install from the git repository + + This section describes how to install from source code taken directly + from the git repository. It is intended for those who want to use the most + recent enhancements of ngspice and for developers. For user install + instructions using source from a released distributions, please see the + sections titled 'Install from tarball' and 'Advanced Install'. + + Download ngspice sources from the git repository as described on the sourceforge project page + (see http://ngspice.sourceforge.net/download.html and click on the git link) + + Now change directories in to the top-level source directory (where this + INSTALL file can be found). + + The project uses the GNU build process. The compile output should go into a separate + directory, so to e.g. maintain separate debug and release versions. + + $ ./autogen.sh + $ mkdir debug + $ cd debug + $ ../configure --with-x --with-readline=yes + $ make + $ sudo make install + + 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-readline=yes and --disable-debug (for a 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 + + If a problem is found with the build process, please submit a report to + 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. + If you have fixed the problem then the development team will love to hear + from you. + + +1.4 Advanced Install + + Some extra options can be provided to './configure'. To get all available + 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 ngspice-26) still experimental, some + features (e.g. noise) are missing. If you want to use it, please + refer to the ADMS section on ngspice web site. + + --enable-cider + Cider is a mixed-level simulator that couples Spice3 and DSIM + to simulate devices from their technological parameters. + + --enable-xspice + Enable XSpice enhancements, + A mixed signal simulator built upon spice3 with codemodel + dynamic loading support. See the ngspice manual 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, for MOS models in BSIM3.3.0 + BSIM4.6.0 and and BSOI4 only. See the ngspice manual for details. + + --disable-debug + This option will remove the '-g' option passed to the compiler + and add -O2 optimisation (instead of default O0). + This speeds up simulating significantly, and is recommended for + normal use. + + +1.4.2 Options Specific to Using Ngspice + +Most of the options now following 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. + + --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: + * 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, needs updating) + 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-nodelimiting + Experimental damping scheme + + --enable-nobypass + Don't bypass recalculations of slowly changing variables + + --enable-predictor + Enable a predictor method for convergence + + --enable-sense2 + Use spice2 sensitivity analysis + + --enable-xgraph + 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/ + + --with-tcl=tcldir + When configured with this option the tcl module + "tclspice" is compiled and installed instead of + plain ngspice. + + --with-ngshared + This option let you compile ngspice as a shared + library or dll, allowing an application controlling + ngspice. This option excludes using --with-x or + --with-wingui. Useful additional options are + --enable-xspice --enable-cider --enable-openmp. + No graphics inetrface is provided, this has to be + handled by the controlling application. + + +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. + +--enable-asdebug + Debug sensitivity code *ASDEBUG*. + + --enable-blktmsdebug + Debug distortion code *BLOCKTIMES* + + --enable-checkergcc + Option for compilation with checkergcc. + + --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-ftedebug + Enable ngspice frontend debug. + + --enable-gc + Enable the Boehm-Weiser Conservative Garbage Collector. + + --enable-pzdebug + Debug pole/zero code. + + --enable-sensdebug + Debug sensitivity code *SENSDEBUG*. + + --enable-smltmsdebug + Debug distortion code *SMALLTIMES* + + --enable-smoketest + Enable smoketest compile. + + --enable-stepdebug + Turns on debugging of convergence stepping?? + + +2 Compilers and Options + ===================== + + Some systems require unusual options for compilation or linking that + the `configure' script does not know about. You can give `configure' + initial values for variables by setting them in the environment. Using + a Bourne-compatible shell, you can do that on the command line like + this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + + Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +3 Compiling For Multiple Architectures + ==================================== + + You can compile the package for more than one kind of computer at the + same time, by placing the object files for each architecture in their + own directory. To do this, you must use a version of `make' that + supports the `VPATH' variable, such as GNU `make'. `cd' to the + directory where you want the object files and executables to go and run + the `configure' script. `configure' automatically checks for the + source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' + variable, you have to compile the package for one architecture at a time + in the source code directory. After you have installed the package for + one architecture, use `make distclean' before reconfiguring for another + architecture. + +4 Installation Names + ================== + + By default, `make install' will install the package's files in + `/usr/local/bin', `/usr/local/man', etc. You can specify an + installation prefix other than `/usr/local' by giving `configure' the + option `--prefix=PATH'. + + You can specify separate installation prefixes for + architecture-specific files and architecture-independent files. If you + give `configure' the option `--exec-prefix=PATH', the package will use + PATH as the prefix for installing programs and libraries. + Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give + options like `--bindir=PATH' to specify different values for particular + kinds of files. Run `configure --help' for a list of the directories + you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed + with an extra prefix or suffix on their names by giving `configure' the + option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + When installed on MinGW with MSYS alternative paths are not fully supported. + See 'How to make ngspice with MINGW and MSYS' below for details. + + +5 Optional Features + ================= + + Some packages pay attention to `--enable-FEATURE' options to + `configure', where FEATURE indicates an optional part of the package. + They may also pay attention to `--with-PACKAGE' options, where PACKAGE + is something like `gnu-as' or `x' (for the X Window System). The + `README' should mention any `--enable-' and `--with-' options that the + package recognizes. + + For packages that use the X Window System, `configure' can usually + 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. + +6 Specifying the System Type + ========================== + + There may be some features `configure' can not figure out + automatically, but needs to determine by the type of host the package + will run on. Usually `configure' can figure that out, but if it prints + a message saying it can not guess the host type, give it the + `--host=TYPE' option. TYPE can either be a short name for the system + type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + + See the file `config.sub' for the possible values of each field. If + `config.sub' isn't included in this package, then this package doesn't + need to know the host type. + + If you are building compiler tools for cross-compiling, you can also + 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. + +7 Sharing Defaults + ================ + + If you want to set default values for `configure' scripts to share, + you can create a site shell script called `config.site' that gives + default values for variables like `CC', `cache_file', and `prefix'. + `configure' looks for `PREFIX/share/config.site' if it exists, then + `PREFIX/etc/config.site' if it exists. Or, you can set the + `CONFIG_SITE' environment variable to the location of the site script. + A warning: not all `configure' scripts look for a site script. + +8 Operation Controls + ================== + + `configure' recognizes the following options to control how it + operates. + + `--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + + `--help' + Print a summary of the options to `configure', and exit. + + `--quiet' + `--silent' + `-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + + `--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + + `--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + + `configure' also accepts some other, not widely useful, options. + + + +9 NGSPICE COMPILATION UNDER WINDOWS OS + ==================================== + +9.1 How to make ngspice with MINGW and MSYS + + Creating ngspice with MINGW is a straight forward procedure, + if you have MSYS/MINGW installed properly. You will need some enhancements + to the standard install (FLEX and BISON have to be made available in MSYS). + Some links are given below which describe the procedures. + + Installing from the tarball, e.g. ngspice-26.tar.gz, is now simple: After + expanding, you may just run ./compile_min.sh from the ngspice-26 directory. + + The default installation location of ngspice is the Windows path + C:\spice. The install path can be altered by passing --prefix=NEWPATH + as an argument to ./configure during the build process. + + Put the install path you desire inside "", e.g. "D:/NewSpice". Be + careful to use forward slashes "/", not backward slashes "\" (something + still to be fixed). Then add --prefix="D:/NewSpice" as an argument to + ./configure in the normal way. + + The procedure of compiling a distribution (for example, a tarball from + the ngspice website), is as follows: + + $ cd ngspice-26 + $ mkdir release + $ cd release + $ ../configure --with-wingui ...and other options + $ make + $ make install + + The most useful options are: + --enable-xspice + --enable-cider + --disable-debug (-O2 optimization, no debug information) + + A fully featured ngspice on Windows may be obtained with the following commands: + $ ./autogen.sh --adms + $ mkdir release + $ cd release + $ ../configure --with-wingui --enable-cider --disable-debug --enable-openmp --enable-xspice --enable-adms + $ make install + + However, to compile code extracted from the git repository the procedure is + a little different. Firstly install git, e.g. from http://git-scm.com/download/win + To obtain ngspice, you may do the following: + + Open the git command window. Go to a directory of your choice, e.g. D:\Spice + $ cd /d/Spice + + Issue the command for downloading ngspice: + $ git clone git://ngspice.git.sourceforge.net/gitroot/ngspice/ngspice + + This will create directory /ngspice . + + Go to directory ngspice + $ cd /d/Spice/ngspice + Start compiling, e.g. by calling + $ ./autogen.sh --adms + $ ./compile_min.sh + + Update the ngspice files: + Go to directory ngspice + $ cd /d/Spice/ngspice + Issue command for update + $ git pull + + Instead of calling ./compile_min.sh, you may choose to issue + individual commands like: + $ cd ngspice + $ ./autogen.sh + $ mkdir release + $ cd release + $ ../configure --enable-maintainer-mode --with-wingui ...and other options + $ make + $ make install + + MINGW and MSYS can be downloaded from http://www.mingw.org/. The making of + ngspice and the code models *.cm for XSpice requires installation of BISON + and FLEX to MSYS. A typical installation was tested with: + + bison-2.0-MSYS.tar.gz + flex-2.5.4a-1-bin.zip + libiconv-1.9.2-1-bin.zip + libintl-0.14.4-bin.zip + + Bison 2.0 is now superseeded by newer releases (Bison 2.3, see + http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879) + + The last three are from + http://sourceforge.net/project/showfiles.php?group_id=23617. + + Installing from git needs more packages to MSYS in advance: + git, automake, autoconf, libtool + + You may also look at + http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite + http://www.mingw.org/wiki/MSYS + http://www.mingw.org/wiki/HOWTO_Create_an_MSYS_Build_Environment. + + An alternative compiler setup is available at + http://tdm-gcc.tdragon.net/ + + +9.2 make ngspice with MS Visual Studio 2008 + + ngspice may be compiled with MS Visual Studio 2008 or 2010. + + CIDER and XSPICE are included, but the code models for XSPICE + (*.cm) are not (yet) made. You may however use the code models + created with MINGW (which in fact are dlls), as e.g. found in + the ngspice binary distribution our made as described in 9.1. + + There is currently no installation procedure provided, you may + however install the executable manually as described in the + installation tree below. + + The directory (visualc) with its files + vngspice.sln (project starter) and + vngspice.vcproj (project contents) + allows to compile and link ngspice with MS Visual Studio 2008. + Newer Visual Studio versions will translate the project files + into their compatible format (tested with MS Visual Studio 2010). + + /visualc/include contains a dedicated config.h file. It contains the + preprocessor definitions required to properly compile the code. + strings.h has been necessary during setting up the project. + + Install Microsoft Visual Studio 2008 C++ . The + MS VS 2008 C++ Express Edition (which is available at no cost from + http://www.microsoft.com/express/product/default.aspx) is adequate. + + Goto /ngspice/visualc. + + Start MS Visual Studio 2008 by double click onto vngspice.sln. + + After MS Visual Studio has opened up, select debug or release version + by checking 'Erstellen' , 'Konfigurations-Manager' 'Debug' or 'Release'. + + Start making ngspice (called vngspice.exe) by selecting 'Erstellen' and + 'vngspice neu erstellen'. + + Object files will be created and stored in visualc/debug or visualc/release. + The executable will be stored to visualc/debug/bin or visualc/release/bin. + + An installation tree (as provided with MINGW make install) and also used by + 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 + ngspice\ + 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" + #define NGSPICEDATADIR "C:/Spice/share/ngspice" + to + #define NGSPICEBINDIR "D:/MySpice/bin" + #define NGSPICEDATADIR "D:/MySpice/share/ngspice" + + If the code model files *.cm are not available, you will get warning messages, + but you may use ngspice in the normal way (of course without XSPICE extensions). + + + +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. + + for example: + + $ cd /lib + $ ln -s libcygwin.a libdl.a. + + The procedure of compiling is the same as Linux. + + +9.4 ngspice console app with MINGW or CYGWIN + + Omitting the configure flag --with-wingui will yield a console ngspice. + You then will not have any graphics interface. In CYGWIN you may add --with-x + for the X11 graphics (not available in mingw). A typical configure command + may look like + ./configure --enable-adms --enable-xspice --enable-cider --enable-openmp + --disable-debug CFLAGS=-m32 LDFLAGS=-m32 prefix=C:/Spice + tested with TDM mingw. + + + +10 NGSPICE COMPILATION UNDER MAC OS X + ================================== + +10.1 Use precompiled binary package + 1. Install an X11 interface (like Xquartz) + 2. Install the downloaded NGSPICE package + 3. Open a terminal window and start using NGSPICE + +10.2 Compile NGSPICE manually from a tarball + 1. Install an X11 interface (like Xquartz) + 2. Install MacPorts from http://www.macports.org + 3. Execute this command: + sudo port install bison flex ncurses xorg-libXaw + 4. Configure NGSPICE invoking "./configure". A complete set of feature is: + ./configure --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no + 5. Compile NGSPICE invoking "make" + 6. Install NGSPICE invoking "make install" or "sudo make install" + +10.3 Compile NGSPICE manually from git + 1. Install an X11 interface (like Xquartz) + 2. Install MacPorts from http://www.macports.org + 3. Execute this command: + sudo port install automake autoconf libtool bison flex ncurses xorg-libXaw + 4. Execute this command: + ./autogen.sh or ./autogen.sh --adms (if you want to enable ADMS) + 5. Configure NGSPICE invoking "./configure". A complete set of feature is: + ./configure --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no + ./configure --enable-adms --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no (if you want to enable ADMS) + 6. Compile NGSPICE invoking "make" + 7. Install NGSPICE invoking "make install" or "sudo make install" |