summaryrefslogtreecommitdiff
path: root/Windows/spice/docs
diff options
context:
space:
mode:
authorrahulp132020-03-03 05:31:58 +0530
committerrahulp132020-03-03 05:31:58 +0530
commitdfc268e0863c913a1b8726cd54eea3b40caf7c67 (patch)
tree1cd82634684da5ae86b558d44756189e080545d4 /Windows/spice/docs
parentfd62c52150c7d1f81da8060b2f5db6b94d174ccf (diff)
downloadeSim-dfc268e0863c913a1b8726cd54eea3b40caf7c67.tar.gz
eSim-dfc268e0863c913a1b8726cd54eea3b40caf7c67.tar.bz2
eSim-dfc268e0863c913a1b8726cd54eea3b40caf7c67.zip
upgrade ngspice to v31
Diffstat (limited to 'Windows/spice/docs')
-rw-r--r--Windows/spice/docs/ANALYSES115
-rw-r--r--Windows/spice/docs/AUTHORS77
-rw-r--r--Windows/spice/docs/BUGS38
-rw-r--r--Windows/spice/docs/COPYING570
-rw-r--r--Windows/spice/docs/DEVICES869
-rw-r--r--Windows/spice/docs/FAQ360
-rw-r--r--Windows/spice/docs/INSTALL739
-rw-r--r--Windows/spice/docs/NEWS769
-rw-r--r--Windows/spice/docs/README67
-rw-r--r--Windows/spice/docs/README.adms58
-rw-r--r--Windows/spice/docs/README.shared-xspice31
-rw-r--r--Windows/spice/docs/README.tcl100
-rw-r--r--Windows/spice/docs/README.vdmos72
-rw-r--r--Windows/spice/docs/ngspice-31-manual.pdfbin0 -> 2149244 bytes
14 files changed, 3865 insertions, 0 deletions
diff --git a/Windows/spice/docs/ANALYSES b/Windows/spice/docs/ANALYSES
new file mode 100644
index 00000000..5b715be9
--- /dev/null
+++ b/Windows/spice/docs/ANALYSES
@@ -0,0 +1,115 @@
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+
+ANALYSES
+========
+
+This file lists the analyses currently implemented into ngspice.
+
+Table of Contents
+
+ 1 Noise analysis (NOISE)
+ 1.1 Small signal noise
+ 1.2 Transient noise
+ 2 Operating point analysis (OP)
+ 3 Operating point sweep Analysis (DC)
+ 4 Pole-zero analysis (PZ)
+ 5 Small-Signal distortion analysis (DISTO)
+ 6 Small Signal frequency response analysis (AC)
+ 7 Sensitivity analysis (SENS)
+ 8 Transfer function analysis (TF)
+ 9 Transient analysis (TRAN)
+ 10 Periodic steady state analysis (PSS, experimental feature)
+
+
+
+1 Noise analysis (NOISE)
+
+ 1.1 Small signal noise
+
+ The noise analysis does analysis device-generated noise for the given
+ circuit. When provided with an input source and an output port, the analysis
+ calculates the noise contributions of each device (and each noise generator
+ within the device) to the output port voltage. It also calculates the input
+ noise to the circuit, equivalent to the output noise referred to the
+ specified input source. This is done for every frequency point in a specified
+ range - the calculated value of the noise corresponds to the spectral density
+ of the circuit variable viewed as a stationary gaussian stochastic process.
+
+ 1.2 Transient noise
+
+ Time domain noise analysis during transient simulation is enabled by
+ providing voltage (and current) source options with white, 1/f and
+ random telegraph signal noise signals.
+
+
+2 Operating point analysis (OP)
+
+ The operating point analysis determines the dc operating point of the
+ circuit with inductors shorted and capacitors opened.
+
+
+3 Operating point sweep Analysis (DC)
+
+ The operating point sweep analysis determines the values of output
+ variables while one or two specified independent voltage or current source is
+ stepped over a user-specified range and the dc output variables are stored
+ for each sequential source value. Resistance and temperature sweep are
+ included.
+
+
+4 Pole-zero analysis (PZ)
+
+ The pole-zero analysis computes the poles and/or zeros in the small-signal
+ ac transfer function. The program first computes the dc operating point and
+ then determines the linearized, small-signal models for all the nonlinear
+ devices in the circuit. This circuit is then used to find the poles and zeros
+ of the transfer function. Unfortunately this code is (since its inception in
+ spice3) not free of bugs.
+
+
+5 Small-Signal distortion analysis (DISTO)
+
+ The distortion analysis computes steady-state harmonic and intermodulation
+ products for small input signal magnitudes. Not all devices are supported.
+
+
+6 Small Signal frequency response analysis (AC)
+
+ The ac small-signal computes the ac output variables as a function of
+ frequency. The program first computes the dc operating point of the circuit
+ and determines linearized, small-signal models for all of the nonlinear
+ devices in the circuit. The resultant linear circuit is then analyzed over a
+ user-specified range of frequencies.
+
+
+7 Sensitivity analysis (SENS)
+
+ Ngspice will calculate either the DC operating-point sensitivity or the AC
+ small-signal sensitivity of an output variable with respect to all circuit
+ variables, including model parameters. Spice calculates the difference in an
+ output variable (either a node voltage or a branch current) by perturbing
+ each parameter of each device independently.
+
+
+8 Transfer function analysis (TF)
+
+ The (small signal) transfer function analysis computes the dc small-signal
+ value of a transfer function (ratio of output variable to input source),
+ input resistance, and output resistance is also computed as a part of the dc
+ solution.
+
+
+9 Transient analysis (TRAN)
+
+ The transient analysis computes the transient output variables as a
+ function of time over a user-specified time interval. The initial conditions
+ are automatically determined by a dc analysis. All sources which are not time
+ dependent (for example, power supplies) are set to their dc value.
+
+
+10 Periodic steady state analysis (PSS)
+
+ The periodic steady state analysis computes solutions for oscillating
+ circuits. Currently only the autonomous case is implemented.
+
+
diff --git a/Windows/spice/docs/AUTHORS b/Windows/spice/docs/AUTHORS
new file mode 100644
index 00000000..8d44fde0
--- /dev/null
+++ b/Windows/spice/docs/AUTHORS
@@ -0,0 +1,77 @@
+@c This file will be processed with texinfo.
+
+Spice was originally written at The University of California at Berkeley (USA).
+Since then, there have been many people working on the software, most of them
+releasing patches to the original code through the Internet.
+
+
+The following people have contributed in some way:
+
+Vera Albrecht,
+Cecil Aswell,
+Giles C. Billingsley,
+Phil Barker,
+Steven Borley,
+Krzysztof Blaszkowski,
+Stuart Brorson,
+Mansun Chan,
+Wayne A. Christopher,
+Al Davis,
+Glao S. Dezai,
+Jon Engelbert,
+Daniele Foci,
+Henrik Forstén,
+Noah Friedman,
+David A. Gates,
+Alan Gillespie,
+John Heidemann,
+Marcel Hendrix,
+Jeffrey M. Hsu,
+JianHui Huang,
+S. Hwang,
+Chris Inbody,
+Gordon M. Jacobs,
+Min-Chie Jeng,
+Beorn Johnson,
+Stefan Jones,
+Kenneth H. Keller,
+Francesco Lannutti,
+Robert Larice,
+Mathew Lew,
+Robert Lindsell,
+Weidong Liu,
+Kartikeya Mayaram,
+Richard D. McRoberts,
+Manfred Metzger,
+Wolfgang Muees,
+Paolo Nenzi,
+Gary W. Ng,
+Hong June Park,
+Arno Peters,
+Stefano Perticaroli,
+Serban-Mihai Popescu,
+Georg Post,
+Thomas L. Quarles,
+Emmanuel Rouat,
+Jean-Marc Routure,
+Jaijeet S. Roychowdhury,
+Lionel Sainte Cluque,
+Takayasu Sakurai,
+AMAKAWA Shuhei,
+Kanwar Jit Singh,
+Bill Swartz,
+Hitoshi Tanaka,
+Steve Tell,
+Andrew Tuckey,
+Andreas Unger,
+Holger Vogt,
+Dietmar Warning,
+Michael Widlok,
+Charles D.H. Williams,
+Antony Wilson,
+and many others...
+
+If someone helped in the development and has not been inserted in this list
+then this omission was unintentional. If you feel you should be on this list
+then please write to <ngspice-devel@@lists.sourceforge.net>. Do not be shy, we
+would like to make a list as complete as possible.
diff --git a/Windows/spice/docs/BUGS b/Windows/spice/docs/BUGS
new file mode 100644
index 00000000..b338848f
--- /dev/null
+++ b/Windows/spice/docs/BUGS
@@ -0,0 +1,38 @@
+This file contains a list of known but not yet fixed bugs in ngspice.
+===========================================================================
+
+How to submit a bug report:
+
+There are two methods to report a bug you have discovered in ngspice:
+
+ * Bug tracker: This is the preferred method of reporting a bug.
+ Using the tracker on Sourceforge.net site will make your report
+ open by everyone and the chances of finding a fix will increase.
+
+ * ngspice-devel list: If you are a member of this list, you can write
+ directly to the developers' list. Do not subscribe to the list only
+ for sending bug reports.
+
+Before sending a bug report please note: all information you send to the bug
+tracking system or on the mailing lists is public. If you need to send
+sensitive information, send them to a developer directly but still write non
+sensitive data on the bug tracking system to keep track of bug history.
+
+* please refer to the sourceforge bug tracker at
+ http://sourceforge.net/p/ngspice/bugs/
+
+------------------------------------------------------------------------------
+OPEN BUGS:
+------------------------------------------------------------------------------
+* pole-zero analysis
+
+ The pole-zero (.pz) analysis, which still uses the original spice3f5
+ algorithms, does not give correct results for all tested input files.
+ The effort to correct that issue seems to be large.
+
+
+* voltage (and current) controlled switches need better timing
+
+ The controlled switches (SW, CSW), which still stem from the original
+ spice3f5 implementation, sometimes lead to wrong results when on and off
+ ramp times differ considerably.
diff --git a/Windows/spice/docs/COPYING b/Windows/spice/docs/COPYING
new file mode 100644
index 00000000..c87fb838
--- /dev/null
+++ b/Windows/spice/docs/COPYING
@@ -0,0 +1,570 @@
+Ngspice Licensing
+
+Copyright (c) 2019 by ngspice maintainers
+All rights reserved.
+
+license for this document: CC-BY-SA v4.0
+
+**************************** ngspice license **********************************
+
+The ngspice source code has evolved over time by integrating contributions
+from various sources (e.g. Spice3f5, XSPICE, CIDER, numparam, tclspice and
+others). Thus a mixture of license statements prevails.
+
+The ngspice license is the `Modified BSD' license. This is adopted for all of
+its source code, test and example files except for the files listed below.
+
+************** files with licenses different to 'Modified BSD' ****************
+
+* ngspice/contrib
+GPL, Public Domain
+
+* ngspice/m4
+unnamed, compatible to DFSG
+
+* ngspice/src/tclspice.c
+LGPLv2
+
+* all files in ngspice/src/maths/sparse
+unnamed MIT license, compatible to New BSD
+
+ngspice/src/spicelib/devices/adms/admst
+LGPLv2.1
+
+ngspice/src/spicelib/devices/ndev
+public domain
+
+ngspice/src/xspice
+public domain
+except for
+ngspice/src/xspice/icm/table
+GPLv2 or newer
+
+ngspice/src/frontend/numparam
+LGPLv2 or newer
+
+ngspice manual
+(see https://sourceforge.net/p/ngspice/ngspice-manuals/ci/master/tree/)
+Creative Commons Attribution Share-Alike (CC-BY-SA) v4.0
+
+-------------------------------------- ngspice ---------------------------------
+---------------------------------- 'Modified BSD' ------------------------------
+
+Copyright 1985 - 2018, Regents of the University of California and others
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+contributors may be used to endorse or promote products derived from this
+software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+
+
+---------------------------------- Xspice --------------------------------
+
+THE SOFTWARE PROGRAMS BELOW ARE IN THE PUBLIC DOMAIN AND ARE PROVIDED FREE OF
+ANY CHARGE. THE GEORGIA TECH RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF
+TECHNOLOGY, AND/OR OTHER PARTIES PROVIDE THIS SOFTWARE "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
+ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH THE USER.
+SHOULD THE PROGRAM PROVE DEFECTIVE, THE USER ASSUMES THE ENTIRE COST OF ALL
+NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL THE GEORGIA TECH
+RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF TECHNOLOGY, AND/OR OTHER PARTIES
+PROVIDING THE PROGRAMS BELOW BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
+INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
+BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS).
+
+
+---------------------------------- others --------------------------------
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+
+----------------------------------- m4 -------------------------------------
+
+LICENSE
+
+ Copyright (c) 2008 Paolo Bonzini <bonzini@gnu.org>
+
+ Copying and distribution of this file, with or without modification, are
+ permitted in any medium without royalty provided the copyright notice
+ and this notice are preserved. This file is offered as-is, without any
+ warranty.
diff --git a/Windows/spice/docs/DEVICES b/Windows/spice/docs/DEVICES
new file mode 100644
index 00000000..64a34b51
--- /dev/null
+++ b/Windows/spice/docs/DEVICES
@@ -0,0 +1,869 @@
+DEVICES
+=======
+
+Table of contents
+
+1. Introduction
+2. Linear Devices
+ 2.1 CAP - Linear capacitor
+ 2.2 IND - Linear inductor
+ 2.3 RES - Linear resistor
+3. Distributed Elements
+ 3.1 CPL - Simple Coupled Multiconductor Lines (Kspice)
+ 3.2 LTRA - Lossy Transmission line
+ 3.3 TRA - Transmission line
+ 3.4 TXL - Simple Lossy Transmission Line (Kspice)
+ 3.5 URC - Uniform distributed RC line
+4. Voltage and current sources
+ 4.1 ASRC - Arbitrary Source
+ 4.2 CCCS - Current Controlled Current Source
+ 4.3 CCVS - Current Controlled Voltage Source
+ 4.4 ISRC - Independent Current Source
+ 4.5 VCCS - Voltage Controlled Current Source
+ 4.6 VCVS - Voltage Controlled Voltage Source
+ 4.7 VSRC - Independent Voltage Source
+5. Switches
+ 5.1 CSW - Current controlled switch
+ 5.2 SW - Voltage controlled switch
+6. Diodes
+ 6.1 DIO - Junction Diode
+7. Bipolar devices
+ 7.1 BJT - Bipolar Junction Transistor
+ 7.2 BJT2 - Bipolar Junction Transistor
+ 7.3 VBIC - Bipolar Junction Transistor
+8. FET devices
+ 8.1 JFET - Junction Field Effect transistor
+9. HFET Devices
+ 9.1 HFET1 - Heterostructure Field Effect Transistor Level 1
+ 9.2 HFET2 - Heterostructure Field Effect Transistor Level 2
+10. MES devices
+ 10.1 MES - MESFET model
+ 10.2 MESA - MESFET model (MacSpice3f4)
+11. MOS devices
+ 11.1 MOS1 - Level 1 MOS model
+ 11.2 MOS2 - Level 2 MOS model
+ 11.3 MOS3 - Level 3 MOS model
+ 11.4 MOS6 - Level 6 MOS model
+ 11.5 MOS9 - Level 9 MOS model
+ 11.6 BSIM1 - BSIM model level 1
+ 11.7 BSIM2 - BSIM model level 2
+ 11.8 BSIM3 - BSIM model level 3 vers. 0
+ 11.9 BSIM3 - BSIM model level 3 vers. 1
+ 11.10 BSIM3 - BSIM model level 3 vers. 2
+ 11.11 BSIM3 - BSIM model level 3 vers. 3
+ 11.12 BSIM4 - BSIM model level 4
+ 11.13 HiSIM2 - Hiroshima-University STARC IGFET Model
+ 11.14 HiSIM_HV - Hiroshima-University STARC IGFET High Voltage Model
+ 11.15 VDMOS - A simple PowerMOS transistor model derived from MOS1
+12. SOI devices
+ 12.1 BSIM3SOI_FD - SOI model (fully depleted devices)
+ 12.2 BSIM3SOI_DD - SOI Model (dynamic depletion model)
+ 12.3 BSIM3SOI_PD - SOI model (partially depleted devices)
+ 12.4 BSIMSOI - SOI model (partially/full depleted devices)
+ 12.5 SOI3 - STAG SOI3 Model
+13. Verilog-A models
+ 13.1 EKV MOS model
+ 13.2 PSP MOS model
+ 13.3 HICUM0 Bipolar Model
+ 13.4 HICUM2 Bipolar Model
+ 13.5 Mextram Bipolar Model
+14. XSPICE code models
+
+ ------------------
+
+1. Introduction
+
+This file contains the status of devices available in ngspice. This file
+will be updated every time the device specific code is altered or changed to reflect the current status of this important part of the simulator
+
+
+2. Linear Devices
+
+
+ 2.1 CAP - Linear capacitor
+
+ Ver: N/A
+ Class: C
+ Level: 1 (and only)
+ Dir: devices/cap
+ Status:
+
+ Enhancements over the original model:
+ - Parallel Multiplier
+ - Temperature difference from circuit temperature
+ - Preliminary technology scaling support
+ - Model capacitance
+ - Cj calculation based on relative dielectric constant
+ and insulator thickness
+
+
+ 2.2 IND - Linear Inductor
+
+ Ver: N/A
+ Class: L
+ Level: 1 (and only)
+ Dir: devices/ind
+ Status:
+
+ Enhancements over the original model:
+ - Parallel Multiplier
+ - Temperature difference from circuit temperature
+ - Preliminary technology scaling support
+ - Model inductance
+ - Inductance calculation for toroids or solenoids
+ on the model line.
+
+ 2.3 RES - Linear resistor
+
+ Ver: N/A
+ Class: R
+ Level: 1 (and only)
+ Dir: devices/res
+ Status:
+
+ Enhancements over the original model:
+ - Parallel Multiplier
+ - Different value for ac analysis
+ - Temperature difference from circuit temperature
+ - Noiseless resistor
+ - Flicker noise
+ - Preliminary technology scaling support
+
+
+3. Distributed elements
+
+
+ 3.1 CPL - Simple Coupled Multiconductor Lines (Kspice)
+
+ Ver: N/A
+ Class: P
+ Level: 1 (and only)
+ Dir: devices/cpl
+ Status:
+
+ This model comes from swec and kspice. It is not documented, if
+ you have kspice docs, can you write a short description
+ of its use ?
+
+ - Does not implement parallel code switches
+ - Probably a lot of memory leaks
+
+ Enhancements over the original model:
+
+ - Better integrated into ngspice adding CPLask, CPLmAsk and
+ CPLunsetup functions
+
+ 3.2 LTRA - Lossy Transmission line
+
+ Ver: N/A
+ Class: O
+ Level: 1 (and only)
+ Dir: devices/ltra
+ Status:
+
+ - Original spice model.
+ - Does not implement parallel code switches.
+
+ 3.3 TRA - Transmission line
+
+ Ver: N/A
+ Class: T
+ Level: 1 (and only)
+ Dir: devices/tra
+ Status:
+
+ - Original spice model.
+ - Does not implement parallel code switches.
+
+ 3.4 TXL - Simple Lossy Transmission Line (Kspice)
+
+ Ver: N/A
+ Class: Y
+ Level: 1 (and only)
+ Dir: devices/txl
+ Status:
+
+ This model comes from kspice. It is not documented, if
+ you have kspice docs, can you write a short description
+ of its use ?
+
+ There is some code left out from compilation:
+ TXLaccept and TXLfindBr. Any ideas ?
+
+ - Does not implement parallel code switches
+
+
+ 3.5 URC - Uniform distributed RC line
+
+ Ver: N/A
+ Class: U
+ Level: 1 (and only)
+ Dir: devices/urc
+ Status:
+
+ - Original spice model.
+ - Does not implement parallel code switches.
+
+
+4. Voltage and current sources
+
+ 4.1 ASRC - Arbitrary Source
+
+ Ver: N/A
+ Class: B
+ Level: 1 (and only)
+ Dir: devices/asrc
+ Status:
+
+ The arbitrary source code has been corrected with the patch
+ available on the Internet. There is still an issue to fix, the
+ current of current-controlled generators.
+
+ 4.2 CCCS - Current Controlled Current Source
+
+ Ver: N/A
+ Class: F
+ Level: 1 (and only)
+ Dir: devices/cccs
+ Status:
+
+ - Original spice model.
+
+ 4.3 CCVS - Current Controlled Voltage Source
+
+ Ver: N/A
+ Class: H
+ Level: 1 (and only)
+ Dir: devices/ccvs
+ Status:
+
+ - Original spice model.
+
+
+ 4.4 ISRC - Independent Current Source
+
+ Ver: N/A
+ Class: I
+ Level: 1 (and only)
+ Dir: devices/isrc
+ Status:
+
+ This is the original spice device improved by Alan Gillespie
+ with the following features:
+
+ - Source ramping
+ - Check for non-monotonic series in PWL
+
+
+ 4.5 VCCS - Voltage Controlled Current Source
+
+ Ver: N/A
+ Class: G
+ Level: 1 (and only)
+ Dir: devices/vccs
+ Status:
+
+ - Original spice model.
+
+
+4.6 VCVS - Voltage Controlled Voltage Source
+
+ Ver: N/A
+ Class: E
+ Level: 1 (and only)
+ Dir: devices/vcvs
+ Status:
+
+ - Original spice model.
+
+ 4.7 VSRC - Independent Voltage Source
+
+ Ver: N/A
+ Class: V
+ Level: 1 (and only)
+ Dir: devices/vsrc
+ Status:
+
+ This is the original spice device improved by Alan Gillespie
+ with the following features:
+
+ - Source ramping
+ - Check for non-monotonic series in PWL
+
+
+5. Switches
+
+ 5.1 CSW - Current controlled switch
+
+ Ver: N/A
+ Class: W
+ Level: 1 (and only)
+ Dir: devices/csw
+ Status:
+
+ - This model comes from Jon Engelbert.
+
+
+ 5.2 SW - Voltage controlled switch
+
+ Ver: N/A
+ Class: S
+ Level: 1 (and only)
+ Dir: devices/sw
+ Status:
+
+ - This model comes from Jon Engelbert.
+
+
+6. Diodes
+
+ 6.1 DIO - Junction Diode
+
+ Ver: N/A
+ Class: D
+ Level: 1 (and only)
+ Dir: devices/dio
+ Status:
+
+ Enhancements over the original model:
+ - Parallel Multiplier
+ - Temperature difference from circuit temperature
+ - Forward and reverse knee currents
+ - Periphery (sidewall) effects
+ - Temperature correction of some parameters
+
+
+7. Bipolar devices
+
+ 7.1 BJT - Bipolar Junction Transistor
+
+ Ver: N/A
+ Class: Q
+ Level: 1
+ Dir: devices/bjt
+ Status:
+
+ Enhancements over the original model:
+ - Parallel Multiplier
+ - Temperature difference from circuit temperature
+ - Different area parameters for collector, base and emitter
+
+ 7.2 BJT2 - Bipolar Junction Transistor
+
+ Ver: N/A
+ Class: Q
+ Level: 2
+ Dir: devices/bjt2
+ Status:
+
+ This is the BJT model written by Alan Gillespie to support lateral
+ devices. The model has been hacked by Dietmar Warning fixing some bugs
+ and adding some features (temp. dependency on resistors).
+
+ Enhancements over the original model:
+ - Parallel Multiplier
+ - Temperature dependency on rc,rb,re
+ - Temperature difference from circuit temperature
+ - Different area parameters for collector, base and emitter
+
+ 7.3 VBIC - Bipolar Junction Transistor
+
+ Ver: N/A
+ Class: Q
+ Level: 4 & 9
+ Dir: devices/vbic
+ Status:
+
+ This is the Vertical Bipolar InterCompany model in version 1.2. The author
+ of VBIC is Colin McAndrew mcandrew@ieee.org.
+ Spice3 Implementation: Dietmar Warning DAnalyse GmbH
+ Web Site: http://www.designers-guide.com/VBIC/index.html
+
+ Notes: This is the 4 terminals model, without excess phase and thermal
+ network.
+
+
+8. FET devices
+
+ 8.1 JFET - Junction Field Effect transistor
+
+ Ver: N/A
+ Class: J
+ Level: 1
+ Dir: devices/jfet
+ Status:
+
+ This is the original spice JFET model.
+
+ Enhancements over the original model:
+ - Alan Gillespie's modified diode model
+ - Parallel multiplier
+ - Instance temperature as difference for circuit temperature
+
+ 8.2 JFET2 - Junction Field Effect Transistor (PS model)
+
+ Ver: N/A
+ Class: J
+ Level: 2
+ Dir: devices/jfet2
+ Status:
+
+ This is the Parker Skellern model for MESFETs.
+
+ Web Site: http://www.elec.mq.edu.au/cnerf/psmodel.htm
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Instance temperature as difference for circuit temperature
+
+
+9. HFET Devices
+
+ Added code from macspice3f4 HFET1&2 and MESA model
+ Original note:
+ Added device calls for Mesfet models and HFET models
+ provided by Trond Ytterdal as of Nov 98
+
+ 9.1 HFET1 - Heterostructure Field Effect Transistor Level 1
+
+ Ver: N/A
+ Class: Z
+ Level: 5
+ Dir: devices/hfet1
+ Status:
+
+ This is the Heterostructure Field Effect Transistor model from:
+ K. Lee, M. Shur, T. A. Fjeldly and T. Ytterdal
+ "Semiconductor Device Modeling in VLSI",
+ 1993, Prentice Hall, New Jersey
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Instance temperature as difference for circuit temperature
+ - Added pole-zero analysis
+
+
+ 9.2 HFET2 - Heterostructure Field Effect Transistor Level 2
+
+ Ver: N/A
+ Class: Z
+ Level: 6
+ Dir: devices/hfet2
+ Status:
+
+ Simplified version of hfet1
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Instance temperature as difference for circuit temperature
+ - Added pole-zero analysis
+
+
+10. MES devices
+
+ 10.1 MES - MESFET model
+
+ Ver: N/A
+ Class: Z
+ Level: 1
+ Dir: devices/mes
+ Status:
+
+ This is the original spice3 MESFET model (Statz).
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Alan Gillespie junction diodes implementation
+
+
+ Added code from macspice3f4 HFET1&2 and MESA model
+ Original note:
+ Added device calls for Mesfet models and HFET models
+ provided by Trond Ytterdal as of Nov 98
+
+10.2 MESA - MESFET model (MacSpice3f4)
+
+ Ver: N/A
+ Class: Z
+ Level: 2,3,4
+ Dir: devices/mesa
+ Status:
+
+ This is a multilevel model. It contains code for mesa levels
+ 2,3 and 4
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Instance temperature as difference from circuit temperature
+ - Added pole-zero analysis
+
+
+
+11. MOS devices
+
+ 11.1 MOS1 - Level 1 MOS model
+
+ Ver: N/A
+ Class: M
+ Level: 1
+ Dir: devices/mos1
+ Status:
+
+ This is the so-called Schichman-Hodges model.
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Temperature difference from circuit temperature
+
+ 11.2 MOS2 - Level 2 MOS model
+
+ Ver: N/A
+ Class: M
+ Level: 2
+ Dir: devices/mos2
+ Status:
+
+ This is the so-called Grove-Frohman model.
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Temperature difference from circuit temperature
+
+
+ 11.3 MOS3 - Level 3 MOS model
+
+ Ver: N/A
+ Class: M
+ Level: 3
+ Dir: devices/mos3
+ Status:
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Temperature difference from circuit temperature
+
+
+ 11.4 MOS6 - Level 6 MOS model
+
+ Ver: N/A
+ Class: M
+ Level: 6
+ Dir: devices/mos6
+ Status:
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Temperature difference from circuit temperature
+
+
+ 11.5 MOS9 - Level 9 MOS model
+
+ Ver: N/A
+ Class: M
+ Level: 9
+ Dir: devices/mos9
+ Status:
+
+ This is a slightly modified Level 3 MOSFET model.
+ (Whatever the implementer have had in mind.)
+ Not to confuse with Philips level 9.
+ Enhancements over the original model:
+ - Temperature difference from circuit temperature
+
+
+ 11.6 BSIM1 - BSIM model level 1
+
+ Ver: N/A
+ Class: M
+ Level: 4
+ Dir: devices/bsim1
+ Status:
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Noise analysis
+
+ BUGS:
+ Distortion analysis probably does not
+ work with "parallel" devices. Equations
+ are too intricate to deal with. Any one
+ has ideas on the subject ?
+
+
+ 11.7 BSIM2 - BSIM model level 2
+
+ Ver: N/A
+ Class: M
+ Level: 5
+ Dir: devices/bsim2
+ Status:
+
+ Enhancements over the original model:
+ - Parallel multiplier
+ - Noise analysis
+
+
+ 11.8 BSIM3v0 - BSIM model level 3
+
+ Ver: 3.0
+ Class: M
+ Level: 8 & 49, version = 3.0
+ Dir: devices/bsim3v0
+ Status: TO BE TESTED AND IMPROVED
+
+
+ 11.9 BSIM3v1 - BSIM model level 3
+
+ Ver: 3.1
+ Class: M
+ Level: 8 & 49, version = 3.1
+ Dir: devices/bsim3v1
+ Status: TO BE TESTED AND IMPROVED
+
+ This is the BSIM3v3.1 model modified by Serban Popescu.
+ This is level 49 model. It is an implementation that supports
+ "HDIF" and "M" parameters.
+
+
+ 11.10 BSIM3 - BSIM model level 3
+
+ Ver: 3.2.4
+ Class: M
+ Level: 8 & 49, version = 3.2.2, 3.2.3, 3.2.4
+ Dir: devices/bsim3v32 (level 3.2.4)
+ Status: o.k.
+
+ This is another BSIM3 model from Berkeley Device Group.
+ You can find some test netlists with results for this model
+ on its web site.
+
+ Web site: http://www-device.eecs.berkeley.edu/~bsim3
+
+ Enhancements over the original model:
+ - Parallel Multiplier
+ - delvto, mulu0 instance parameter
+ - ACM Area Calculation Method
+ - Multirevision code (supports all 3v3.2 minor revisions)
+ - NodesetFix
+
+
+ 11.11 BSIM3 - BSIM model level 3
+
+ Ver: 3.3.0
+ Class: M
+ Level: 8 & 49, version = 3.3.0
+ Dir: devices/bsim3 (level 3.3.0)
+ Status: o.k.
+
+ This is the actual BSIM3 model from Berkeley Device Group.
+ You can find some test netlists with results for this model
+ on its web site.
+
+ Web site: http://www-device.eecs.berkeley.edu/~bsim3
+
+ Enhancements over the original model:
+ - Parallel Multiplier
+ - ACM Area Calculation Method
+ - Multirevision code (supports all 3v3.2 minor revisions)
+ - NodesetFix
+ - Support for Multi-core processors using OpenMP
+
+
+ 11.12 BSIM4 - BSIM model level 4
+
+ Ver: 4.2.0 - 4.6.5
+ Class: M
+ Level: 14 & 54, version = 4.5, 4.6, 4.7, 4.8
+ Dir: devices/bsim4 (level 4.8.0)
+ Status: o.k.
+
+ This is the actual BSIM4 model from Berkeley Device Group.
+ Test are available on its web site.
+
+ Web site: http://www-device.eecs.berkeley.edu/~bsim3/bsim4.html
+
+ Enhancements over the original model:
+ - Parallel Multiplier
+ - NodesetFix
+ - Support for Multi-core processors using OpenMP
+
+
+ 11.13 HiSIM2 - Hiroshima-university STARC IGFET Model
+
+ Ver: 2.8.0
+ Class: M
+ Level: 68
+ Dir: devices/hisim2
+ Status: TO BE TESTED.
+
+ This is the HiSIM2 model available from Hiroshima University
+ (Ultra-Small Device Engineering Laboratory)
+
+ Web site: http://home.hiroshima-u.ac.jp/usdl/HiSIM.html
+
+ Enhancements over the original model:
+ - Support for Multi-core processors using OpenMP
+
+
+ 11.14 HiSIM_HV - Hiroshima-University STARC IGFET High Voltage Model
+
+ Ver: 1.2.4 and 2.2
+ Class: M
+ Level: 73
+ Dir: devices/hisimhv
+ Status: TO BE TESTED.
+
+ This is the HiSIM_HV model version 1 and 2 available from
+ Hiroshima University (Ultra-Small Device Engineering Laboratory)
+
+ Web site: http://home.hiroshima-u.ac.jp/usdl/HiSIM.html
+
+
+ 11.15 VDMOS - Simple PowerMOS model
+
+ Ver: 1
+ Class: M
+ Level: -
+ Dir: devices/vdmos
+ Status: TO BE TESTED.
+
+ This is a simplified Power MOS model, derived from MOS1 and
+ diode, similar to LTSPICE and SuperSpice VDMOS
+
+12. SOI devices
+
+ 12.1 BSIM3SOI_FD - SOI model (fully depleted devices)
+
+ Ver: 2.1
+ Class: M
+ Level: 55
+ Dir: devices/bsim3soi_fd
+ Status: TO BE TESTED.
+
+ FD model has been integrated.
+ There is a bsim3soifd directory under the test
+ hierarchy. Test circuits come from the bsim3soi
+
+ Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi
+
+
+
+ 12.2 BSIM3SOI_DD - SOI Model (dynamic depletion model)
+
+ Ver: 2.1
+ Class: M
+ Level: 56
+ Dir: devices/bsim3soi_dd
+ Status: TO BE TESTED.
+
+ There is a bsim3soidd directory under the
+ test hierarchy. Test circuits come from bsim3soi
+
+ Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi
+
+
+
+ 12.3 BSIM3SOI_PD - SOI model (partially depleted devices)
+
+ Ver: 2.2.1
+ Class: M
+ Level: 57
+ Dir: devices/bsim3soi_pd
+ Status: TO BE TESTED.
+
+ PD model has been integrated. There is a bsim3soipd directory
+ under the test hierarchy. Test circuits come from the bsim3soi
+
+ Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi
+
+
+
+ 12.4 BSIMSOI - Berkeley SOI model (partially/full depleted devices)
+
+ Ver: 4.3.1
+ Class: M
+ Level: 10 & 58
+ Dir: devices/bsim3soi
+ Status: o.k.
+
+ This is the actual version from Berkeley. This version is
+ backward compatible with its previous versions BSIMSOI3.x.
+ Usable for partially/full depleted devices.
+
+ Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi
+
+ Enhancements over the original model:
+ - Parallel Multiplier
+ - Support for Multi-core processors using OpenMP
+
+
+
+ 12.5 SOI3 - STAG SOI3 Model
+
+ Ver: 2.6
+ Class: M
+ Level: 60
+ Dir: devices/soi3
+ Status: OBSOLETE
+
+
+
+13. Verilog-A models
+
+ Configuring ngspice with ADMS (see Readme.adms) following
+ devices are available:
+
+ 13.1 EKV MOS Model
+
+ Ver: 2.6
+ Level: 44
+ Dir: devices/adms/ekv
+ Status: TO BE TESTED
+
+ EKV version based on a contribution of Ivan Riis Nielsen 11/2006
+
+ Web site at: http://legwww.epfl.ch/ekv/
+ (but EPFL is not publishing any usefull code)
+
+
+ 13.2 PSP MOS Model
+
+ Ver: 102.1
+ Level: 45
+ Dir: devices/adms/psp102
+ Status: TO BE TESTED
+
+ Philips SimKit 2.5.
+
+
+ 13.3 HICUM0 Bipolar Model
+
+ Ver: Level_0 Version_1.12
+ Level: 7
+ Dir: devices/adms/hicum0
+ Status: TO BE TESTED
+
+ A simplified version of HICUM Level2 model for BJT
+ Web site at: http://www.iee.et.tu-dresden.de/iee/eb/hic_new
+
+
+ 13.4 HICUM2 Bipolar Model
+
+ Ver: Level_2 Version_2.22
+ Level: 8
+ Dir: devices/adms/hicum2
+ Status: TO BE TESTED
+
+ Web site at: http://www.iee.et.tu-dresden.de/iee/eb/hic_new/hic_start.html
+
+
+ 13.5 Mextram Bipolar Model
+
+ Ver: 504.6.1
+ Level: 6
+ Dir: devices/adms/mextram
+ Status: TO BE TESTED
+
+ Web site at: http://mextram.ewi.tudelft.nl/ and http://mextram.sourceforge.net/
+
+ 14. XSpice code models, see ngspice manual chapt. 12
diff --git a/Windows/spice/docs/FAQ b/Windows/spice/docs/FAQ
new file mode 100644
index 00000000..7a1fcf65
--- /dev/null
+++ b/Windows/spice/docs/FAQ
@@ -0,0 +1,360 @@
+ Ngspice F.A.Q.Version 2.3 (ngspice-31 release)
+
+ Maintained by Holger Vogt
+ Last update: 09-14-2018
+
+ This document contains the Frequently Asked Questions (and Answers)
+ for ngspice project.
+ __________________________________________________________________________
+
+ Table of Contents
+
+
+ 1. INTRODUCTION AND GENERAL INFORMATION
+ 1.1 What is ngspice?
+ 1.2 What is sharedspice?
+ 1.3 What is tclspice ?
+ 1.4 Why resurrecting Berkeley's Spice?
+ 1.5 What is the project's goal?
+ 1.6 What you are going to do?
+ 1.7 Legal issues
+ 1.8 Discussion groups
+ 1.9 What mailing lists exist for ngspice?
+ 1.10 Are the mailing lists archived anywhere?
+ 1.11 Where can I get a copy of ngspice?
+ 1.12 Where should I look on the World Wide Web for ngspice stuff?
+ 1.13 Where should I look on the World Wide Web for Spice documentation?
+
+ 2. DEVELOPMENT
+ 2.1 What is the current version?
+ 2.2 What are the latest features in the current release?
+ 2.3 What does it look like?
+ 2.4 Who are the authors of ngspice?
+ 2.5 How can I report a bug/request for a feature?
+ 2.6 How can I join the development?
+
+ 3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
+ 3.1 What systems are supported?
+ 3.2 I get errors when I try to compile the source code, why?
+ 3.3 This document didn't answer my question. Where else can I look for
+ an answer?
+
+ 4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
+ 4.1 Feedback
+ 4.2 Formats in which this FAQ is available
+ 4.3 Authorship and acknowledgements
+ 4.4 Disclaimer and Copyright
+
+
+ ______________________________________________________________________
+
+ 1. INTRODUCTION AND GENERAL INFORMATION
+
+
+
+ 1.1 What is ngspice ?
+
+ Ngspice is a mixed-level/mixed-signal circuit simulator, based on three
+ open source software packages: Spice3f5, Cider1b1 and Xspice, and
+ including many bug fixes and enhancements:
+
+ - Spice3 is a widely used circuit simulator. It was developed by the
+ University of California at Berkeley (UCB), by "a cast of thousand"
+ (as they say) initially under the guide of Donald O. Peterson.
+
+ - Cider is a mixed-level simulator that already includes Spice3f5 and
+ adds a device simulator to it: DSIM. Cider couples the circuit level
+ simulator to the device simulator to provide greater simulation
+ accuracy (at the expense of greater simulation time). Critical
+ devices can be described with technology parameters (numerical
+ models) and non critical ones with the original spice's compact
+ models.
+
+ - Xspice is an extension to Spice3 that provides code modeling support
+ and simulation of digital components through an embedded event
+ driven algorithm.
+
+ The NG prefix has lot of meanings: Next Generation, New (and) Good, etc.
+ Choose or invent the one you prefer. The heart of the project is the
+ ngspice program, with its tremendous advancements.
+
+
+ 1.2 What is sharedspice ?
+
+ Sharedspice is an interface option to ngspice. It compiles the simulator
+ into a shared object (or dynamic link library), providing full control
+ of ngspice to any suitable controlling program (GUI, optimizer,
+ development system, etc., to be provided by the user).
+
+
+ 1.3 What is tclspice ?
+
+ Tclspice is a another interface option of ngspice, providing a tcl/tk
+ interface to the user. Tclspice is both a batch and interactive simulator
+ and a building block for simulator applications. Analyses can be run
+ 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.
+
+
+ 1.4 Why resurrecting Berkeley's Spice?
+
+ Berkeley's Spice can be considered the father of most circuit
+ simulators available today. It is an old but still good piece of
+ software, it may not be the fastest or the most reliable but it's
+ free, it's available in source code and most of the electrical
+ simulators inherited it's syntax. Spice3 is based on proven numerical
+ algorithms (most commercial implementations have only strengthened
+ them), implements most of the models for MOSFET submicron design
+ and has a powerful set of analyses. The readily availability of
+ its source code in the past made this simulator the de-facto standard.
+
+
+ 1.5 What is the project's goal?
+
+ Ngspice is both a maintenance and enhancement project. It is a maintenance
+ project because it aims to provide the free EDA community the best spice3
+ simulator available. This means fixing bugs, adding new features but always
+ in the spice3 framework. Achieving compatibility with commercial spice based
+ simulators and provide users the latest devices models are important goals
+ of the project. Improvements in the postprocessing (data handling
+ capabilities) and user interface are other goals.
+
+
+ 1.6 What you are going to do?
+
+ An official roadmap for ngspice was never drawn. Contributions made by
+ developers drive ngspice development and the roadmap is built day by
+ day by developers writing on the lists. Ngspice development activity
+ can be summarized in 3 points:
+
+ + Compatibility: Ngspice should be compatible with commercial products,
+ thus allowing people to use the netlist generated for such tools. As
+ most of the commercial simulators available tracked each other in netlist
+ language, this should not be an impossible task. The most important goal
+ here is to provide a reliable support for model libraries coming from
+ foundries.
+
+ + Compact models: The interest in using ngspice is intimately connected
+ to the available models. To provide the latest models available for
+ active and passive devices is a fundamental goal of the project. In
+ this direction we are integrating ADMS model compiler into ngspice.
+
+ + Documentation: Commercial simulators come with very good manuals
+ containing tutorials, description of models equations, example of
+ use, suggestions, etc. Spice came with little documentation. The
+ Spice3f manual, available on the Internet has been used as the basis
+ for the new manual. It will be constantly improved during ngspice
+ development and integrated with the documentation accompanying Xspice
+ and Cider. The ngspice manual today contains description of all
+ features ngspice is offering. It is however not a tutorial of ngspice
+ usage, but there are now several good ones available on the internet
+ (see http://ngspice.sourceforge.net/tutorials.html).
+
+
+ 1.7 Legal issues
+
+ The ngspice base license is new BSD, as provided by UCB. For some parts
+ of the code other compatible licences apply. All licenses are DFSG
+ compatible. Please see file COPYING for details.
+
+
+ 1.8 Discussion groups
+
+ 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
+ ngspice tips (your input is welcome!)
+
+
+ 1.9 What mailing lists exist for ngspice?
+
+ Mailing lists have somewhat lost importance compared to the
+ discussion groups described above.
+
+ There are two general mailing lists dedicated to the ngspice project.
+
+ Users mailing list: <ngspice-users@lists.sourceforge.net>
+ This list is for ngspice users. Examples, problems, bug reports
+ and general discussion on ngspice can be sent here.
+
+ Developers mailing list: <ngspice-devel@lists.sourceforge.net>
+ The list is dedicated to ngspice development. Developers should
+ subscribe here, to follow the program development. May be used
+ to send patches, and technical discussion on ngspice.
+
+ Send an empty message with Subject "help" to the following addresses
+ to get instructions.
+
+ <ngspice-users-request@lists.sourceforge.net>
+ <ngspice-devel-request@lists.sourceforge.net>
+
+ Send an empty message to the following address to Subscribe.
+
+ <ngspice-users-join@lists.sourceforge.net>
+ <ngspice-devel-join@lists.sourceforge.net>
+
+ Documentation about the user interface of
+ these mailing lists can be found at:
+ http://www.gnu.org/software/mailman/mailman-member
+
+
+ 1.10 Are the mailing lists archived anywhere ?
+
+ Yes, the lists are archived. There are two places where to look for
+ archives. The project started on the IEEE Central and South Italy
+ web server and then moved to sourceforge. Sourceforge provides an
+ archiving service that cam be accessed via the summary page:
+
+ http://sourceforge.net/p/ngspice/mailman/
+
+
+ 1.11 Where can I get a copy of ngspice?
+
+ You can download ngspice from:
+
+ http://sourceforge.net/projects/ngspice/files/ng-spice-rework/
+
+
+ 1.12 Where should I look on the World Wide Web for ngspice stuff?
+
+ Look at the official Ngpice Web Page:
+
+ http://ngspice.sourceforge.net
+
+
+ 1.13 Where should I look on the World Wide Web for Spice documentation?
+
+ There is a detailed ngspice manual available at:
+ http://ngspice.sourceforge.net/docs.html
+
+ Others docs are assembled at:
+ http://ngspice.sourceforge.net/literature.html
+
+
+
+ 2. DEVELOPMENT
+
+
+ 2.1. What is the current version?
+
+ The latest version released is:
+
+ * ngspice-31 (released on 22/09/2019)
+
+
+ 2.2. What are the latest features in the current release?
+
+- New features:
+ + configure flag --with-fftw3 If set to 'no', internal fast fourier is used
+ instead of fftw
+ + command setseed to set the seed value for the random number generator
+ + option seed=[val|random]
+ + variable inputdir to remeber and retrieve the last input file directory
+ + example directory 'digital' with analog, behavioral and digital example input files
+ + new XSPICE filesource, d_source, and state-machine examples
+ + +, - maybe part of instance name
+ + Quasi-saturation VDMOS example
+ + add environmental variable SOURCE_DATE_EPOCH to allow reproducible executables
+ + new parameters to command setplot: setplot next, setplot previous
+ + updates to commands cd, rusage, print
+ + update to bipolar and diode temperature equations
+
+- Bug fixes:
+ + several bug fixes
+ + lots of memory leaks removed, especially when XSPICE circuits are called several
+ times in a loop.
+
+
+ 2.3. What does it look like?
+
+ Ngspice, as the original Spice3 (and Xspice and Cider) is a command
+ line simulator, but with a graphics output capability.
+
+
+ 2.4. Who are the authors of ngspice?
+
+ The development is open to anyone who wish to contribute. If the
+ original Spice3 was made with the contribution of "a cast of
+ thousand", ngspice can only increase that number. An incomplete
+ list of contributor makes the "acknowledgements" page of the ngspice
+ manual.
+
+
+ 2.5. How can I report a bug/request for a feature?
+
+ The ngspice summary page (hosted on Sourceforge) has bug-reporting,
+ feature-request and bugs trackers. You can use them or subscribe to
+ mailing lists and post there. The former is preferred since almost
+ it allows to track all necessary actions upon a bug. The web site at
+ http://ngspice.sourceforge.net/bugrep.html will give you more details.
+
+
+ 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
+ latest development release of ngspice from our git repository.
+ It might be that your feature has already been implemented.
+
+ There is no bureaucracy here.
+
+
+
+ 3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
+
+
+ 3.1. What systems are supported?
+
+ Ngspice is written in C, and uses some GNU extensions, then you need
+ a GNU C compiler and a UNIX environment to compile it. Ngspice can
+ be compiled under Windows using the mingw or cygwin environment as
+ well as MS Visual Studio.
+
+
+ 3.2. I get errors when I try to compile the source code, why?
+
+ This is a one-million-euros question :).
+
+ Write to the user's discussion group describing the problem and providing
+ information on the type of hardware, the flavour of operating system.
+
+
+ 3.3. This document didn't answer my question. Where else can I look
+ for an answer?
+
+ Read old messages from the mailing list archive, search the web site
+ or read the docs. Upgrade to the latest version of ngspice, many
+ problems are fixed in the new versions. If you still can't find an
+ answer, post your question to the mailing lists.
+
+
+
+ 4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
+
+
+ 4.1. Feedback
+
+ Send your comments about this F.A.Q. to:
+ https://sourceforge.net/p/ngspice/discussion/127605/
+
+
+ 4.2. Formats in which this FAQ is available
+
+ This document is available only in ASCII format in the ngspice source
+ package.
+
+
+ 4.3. Authorship and acknowledgements
+
+ Parts of the questions and answers originate from Paolo Nenzi
+ and are updated by Holger Vogt.
+
+
+ 4.4. Disclaimer and Copyright
+
+ Copyright: Holger Vogt, 2018
+ License: Creative Commons Attribution Share-Alike (CC-BY-SA) v4.0.
+ This document is provided as is. The information in it is not
+ warranted to be correct: you use it at your own risk.
diff --git a/Windows/spice/docs/INSTALL b/Windows/spice/docs/INSTALL
new file mode 100644
index 00000000..ab16b64b
--- /dev/null
+++ b/Windows/spice/docs/INSTALL
@@ -0,0 +1,739 @@
+Ngspice installation instructions
+=================================
+
+Table of contents
+
+ 1 Ngspice installation (LINUX)
+ 1.1 Prerequisites
+ 1.2 Install from tarball (e.g. ngspice-31.tar.gz)
+ 1.3 Install from git repository
+ 1.4 Advanced Install
+ 1.4.1 Most useful options
+ 1.4.2 Options Specific to Enable Ngspice as a shared library
+ 1.4.3 Options Specific to Using Ngspice
+ 1.4.4 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 2015/2017
+ 9.3 make ngspice with pure CYGWIN
+ 9.4 ngspice console app with MINGW or CYGWIN
+ 9.5 cross compiling ngspice for Windows from LINUX
+ 10 NGSPICE COMPILATION UNDER macOS
+
+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-31.tar.gz)
+
+ This covers installation from a release distribution (for example
+ ngspice-31.tar.gz, the so called tar ball).
+
+ After downloading the tar ball to a local directory unpack it using:
+
+ $ tar -zxvf ngspice-31.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-27) 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.
+
+ --enable-oldapps
+ The old apllications ngsconvert ngproc2mod ngmultidec and ngmakeidx
+ are made only per user request, by adding this flag.
+
+ --with-fftw3=no
+ Disable using fftw fast fourier transform library. Use internal
+ fft instead. Default is 'yes'.
+
+
+1.4.2 Options Specific to Enable Ngspice as a shared library
+
+ --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.
+
+ --with-tcl=tcldir
+ When configured with this option the tcl module
+ "tclspice" is compiled and installed instead of
+ plain ngspice.
+
+
+1.4.3 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
+ define EXPERIMENTAL_CODE to mark experimental parts the code
+ (currently not used)
+
+ --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/
+
+
+1.4.4 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-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-31.tar.gz, is now simple: After
+ expanding, you may just run ./compile_min.sh from the ngspice-31 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-31
+ $ 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/
+
+ A modern environment is offered by MSYS2 (https://www.msys2.org/).
+
+ The install tree generated during 'make install' is:
+
+ 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\
+ cmpp.1
+ ngmakeidx.1
+ ngmultidec.1
+ ngnutmeg.1
+ ngproc2mod.1
+ ngsconvert.1
+ ngspice.1
+ ngspice\
+ helpdir\
+ ngspice.idx
+ ngspice.txt
+ scripts\
+ ciderinit
+ devaxis
+ devload
+ setplot
+ spectrum
+ spinit
+
+
+
+
+9.2 make ngspice with MS Visual Studio 2015/17/19
+
+ ngspice may be compiled with MS Visual Studio 2015 or newer.
+
+ 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.
+
+ 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 2015.
+ Newer Visual Studio versions will translate the project files
+ into their compatible format (tested with MS Visual Studio 2017).
+ You may however deny the translation and compile in a VS 2015
+ compatibility mode.
+
+ /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 2019 Community with C/C++. For
+ example the German edition is available at no cost from
+ https://www.visualstudio.com/de/vs/community/.
+
+ Goto /ngspice/visualc.
+
+ Start MS Visual Studio 2019 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:\Spice64\
+ bin\
+ ngspice.exe
+ lib\
+ spice\
+ analog.cm
+ digital.cm
+ spice2poly.cm
+ extradev.cm
+ extravt.cm
+ share\
+ ngspice\
+ scripts\
+ 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.
+
+
+9.5 cross compiling ngspice for Windows from LINUX
+
+Two scripts are available in the ngspice directory that allow cross
+compiling for NMS Windows, if you are running LINUX. ngspice.exe or
+ngspice.dll may be made. For details please see cross-compile.sh or
+cross-compile-shared.sh.
+
+
+10 NGSPICE COMPILATION UNDER macOS
+ ==================================
+
+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"
diff --git a/Windows/spice/docs/NEWS b/Windows/spice/docs/NEWS
new file mode 100644
index 00000000..4bdb0012
--- /dev/null
+++ b/Windows/spice/docs/NEWS
@@ -0,0 +1,769 @@
+Ngspice-31, Sep 22nd, 2019
+============
+
+- New features:
+ + if a subcircuit is defined more than once, only read the first one and discard the others
+ + vbic model implementation including self-heating effect
+ + Enable the file input as additional search path for .include files also for non-Windows OSs
+ + add scope to decks and subcircuits (not yet fully implemented)
+ + enable 'res' as valid resistor model identifier
+ + Add variable 'nostepsizelimit' to relieve step size limit defined by TSTEP of the .tran command
+ + Windows GUI: make GUI more responsive
+ + if the comaptibility mode is PS, LTPS or LTPSA, '$' is treated as a valid character, not as
+ end-of-line comment delimiter
+ + allow very short version information with new options -v and -d to 'version' command
+ + the PSPICE area token for a device instance may be not only a number, but also a parametrized
+ token like {tok}
+ + Windows GUI: New history buffering
+ + Windows GUI: Added scrolling to input window
+ + update to hicum version 2.40
+ + allow " around netnames for .plot and .print commands
+ + command 'setcs': like command 'set' but case sensitive
+ + linearized cutout of an original vector by defining the vectors lin-tstart, lin-tstop,
+ and lin-tstep before sending the 'linearize' command
+ + new examples: inverters and ring oscillator using SOI
+ + 'option norefvalue' to suppress printing the reference value
+
+- Bug fixes:
+ + many bugs fixed and code improvements (patches 33 - 64, bug tracker nos. 390,
+ 394, 395, 403, 404, 408)
+ + memory leaks removed
+
+Ngspice-30, Jan 1st, 2019
+============
+
+- New features:
+ + VDMOS device model has been overhauled extensively
+ + Making the manual is now much more flexible and comfortable,
+ xhtml manual added.
+ + Add pre-defined variable controlswait to enable running .control sections
+ after the simulation has finished (shared ngspice only)
+ + Add an icon to the MS Windows GUI build
+ + Enable more reliable memory usage data
+ + Support libtinfo
+ + add rotation angle to text output, vertcally aligned text for Postscript
+ and Windows y-axis plot labels
+ + enable postscript output for extended ascii. Currently only Western
+ European latin-1 (ISO/IEC 8859-1) encoding is supported
+ + Ancient Xgraph code removed
+
+- Bug fixes:
+ + many bugs fixed (bug tracker nos. 253, 332, 337, 368, 374, 375, 376, 377, 378,
+ 379, 380, 381, 384, 385, 386)
+ + ancient bug removed that led to spurious heap corruption of shared ngspice
+ under (very sensitive) Windows 10
+ + memory leaks removed
+
+Ngspice-29, Sept 30th, 2018
+============
+
+- New features:
+ + new variable no_auto_gnd. If set, the automatic replacing of gnd by 0
+ is disabled
+ + new compatibility modes for 'set behavior=??'. ps sets PSPICE, lt sets
+ LTSPICE compatibility, ltps is both for a file added by .include command,
+ psa, lta, and ltpsa are the same for the whole netlist
+ + .if, .elseif, .endif is now evaluated recursively, nested .if are thus
+ enabled
+ + new code model sidiode, that is a simple diode, linear breakdown, reverse
+ and forward regions with smooth overlapp, and optional current limits
+ + configure flag --with-fftw3. If set to 'no', internal fast fourier is used
+ instead of fftw
+ + command setseed to set the seed value for the random number generator
+ + option seed=[val|random]
+ + variable inputdir to remeber and retrieve the last input file directory
+ + example directory 'digital' with analog, behavioral and digital example input files
+ + new XSPICE filesource, d_source, and state-machine examples
+ + + or - maybe part of instance name
+ + Quasi-saturation VDMOS example
+ + add environmental variable SOURCE_DATE_EPOCH to allow reproducible executables
+ + new parameters to command setplot: setplot next, setplot previous
+ + updates to commands cd, rusage, print
+ + introduce diode recombination current part (ISR, NR)
+ + update to bipolar and diode temperature equations
+
+- Bug fixes:
+ + several bug fixes
+ + lots of memory leaks removed, especially when XSPICE circuits are called several
+ times in a loop.
+
+
+Ngspice-28, May 27th, 2018
+============
+
+- New features:
+ + Licenses for ngspice distribution are DFSG compatible
+ + VDMOS power MOS model added
+ + if 'set ngbehavior=ps' is given in .spiceinit, device libraries loaded
+ via .include may have PSPICE syntax
+ + --enable-oldapps configure flag to compile the old, seldom used apps
+ ngnutmeg, ngmakeidx, ngmultidec, ngproc2mod, ngsconvert
+ + add command mc_source to internally re-load the circuit
+ + add command alterparam to alter the value of a parameter xxx given in .param xxx=value
+ + add the function i(xyz) to measure the current in node 1 of device xyz, to be
+ used in behavioral models.
+ + new label 'noretraceplot' for the 'plot' command, if graphs in a plot show unwanted
+ retracing lines.
+ + The hyphen '-' is a valid character in model, device and subcircuit names
+ + add noise for behavioral resistor
+ + add a new vector type "temperature"
+ + support instance parameter defaults on .model lines
+ + New functions for XSPICE event node data export from shared ngspice:
+ ngGet_Evt_NodeInfo(char*) and ngSpice_AllEvtNodes(void)
+ + 'edisplay' command now showing node name, node type and number of events per node
+ + add flag 'none' to the 'save' command for shared ngspice.
+ Output data will not be stored, but are available via callback function ng_data.
+ + add a function cm_get_circuit to allow accessing the circuit structure ckt
+ from within an XSPICE code model.
+ + add variable 'sim_status' to indicate if a simulation has been aborted
+ + add pkg-config file
+
+- Bug fixes:
+ + many, many ... as always
+
+
+Ngspice-27, Aug 28th, 2017
+============
+
+- New features:
+ + check for correct inductor coefficients
+ + add variable 'win_console'
+ + --enable-relpath configure flag to set preprocessor flag HAS_RELPATH
+ + sets search path for spinit relativ to current directory
+ + The search path for .spiceinit is: current dir, HOME dir, USERPROFILE dir
+ + new function stddev to calculate the standard deviation of all elements of a vector
+ + xspice digital n-input x m-output look-up table gate
+ + xspice digital model d_lut (digital n-input look-up table gate)
+ + add variable $sharedmode (if shared ngspice is running), to be used in scripts
+ + enable msys2 for mingw compilation
+ + OMP support for bsim3v3.24 model
+ + bsim3v3.24: add model parameter lmlt (Channel length scaling)
+ + OMP support for BSIM4.5 model
+ + update and extension of command 'wrdata'
+ + option xmu to set damping in trapezoid integration
+ + command 'linearize' will take time data from transient analysis vector if no circuit is loaded
+ + two new commands: edisplay and eprvcd
+ + 'edisplay' will show a list of all event nodes
+ + 'eprvcd' will print all event nodes in vcd format
+ + XSPICE 2D and 3D table models
+ + add variable 'batchmode' which is set when command line option `-b' is active
+ + enable backquote substitution for Visual Studio console apps
+ + update how-to-ngspice-vstudio.txt
+ + update visualc directory and project files, add XSPICE code model generation by VS2015
+ + allow access to 4 GB memory of 32 bit ngspice on 64 bit Windows, 8 TB for 64 bit ngspice
+ + new variable `interactive'
+ + xspice, introduce cm_message_printf()
+ + add variable `width' to command "print line ..."
+ + support msys2
+ + favor exponential temperatur equation if all parameters tc1, tc2 and tce are given for R
+ + move libfftw3 sideways out of the ngspice tree
+ + remove visual studio 2008 .vcproj files
+ + visualc/sharedspice.vcxproj, updated and migrated with visual studio 2015
+ + `E..table {expr} {pairs}', `G..', allow an optional `=' after `table'
+ + `E..value=', `G..value=', allow `=' being optional
+ + introduce TCE, exponential temperature coefficient for R
+ + allow `temper' to be recognised when preceded by '='
+ + allow cross-compilation, especially for MinGW-w64
+ + allow "plot xlog ylog" (equiv to "plot loglog")
+ + extend qa test to hisimhv version 2
+ + update hisimhv model to version 2.2.0
+ + update hisim model to version 2.8.0
+ + .control variable "sqrnoise" to deliver noise data in squared representation
+ + noise analysis, deliver results in V/sqrt(Hz) and A/sqrt(Hz)
+ + add delvt0 for bsim4 models
+ + bug fixes for diode model
+ + allow a xspice circuit with exclusively xspice event nodes
+ + man pages for cmpp ngmakeidx and ngproc2mod
+ + implement `nint()'
+ + everywhere: ln to the base e, log to the base e, log10 to the base 10
+ + allow an optional '=' in ".func foo() = {expr}"
+ + bsim4, update to version 4.8
+ + update hisimhv to version 1.2.4
+ + cmc quality check for bsim3 model
+ + nested indexing for vectors
+ + option savecurrents to save current through all devices
+ + option interp to plot interpolated raw file data
+ + MS VS 2010 project file added for compatibility
+ + XSPICE: new callback function cm_get_path
+
+- Bug fixes:
+ + many, many ... as always
+
+Ngspice-26, Jan 4th, 2014
+============
+
+- New features:
+ + fft command may (optionally) use fftw3 library
+ + add nint() rounding function
+ + usage of 'temper' in behavioral devices
+ + check for soa (safe operating area) in several device models
+ + library processing rewritten completely to enhance ngspice
+ compatibility (.lib)
+ + include file processing rewritten to allow nesting and various
+ absolute and relative path names (.inc)
+ + asinh, acosh, atanh functions
+ + shared ngspice option added: ngspice optionally compiles as
+ a shared object or dynamic link library
+ + use a hash table to massively speed up parsing the netlist
+ + implement a very basic .if/.else block
+ + implement a signed power function `pwr' for controlled sources
+ + implement multiplier `m' in F, G source
+ + apply Area Calculation Method (ACM) to the bsim3v3.3 model
+ + implement `tc1', `tc2' instance parameters
+
+- Bug fixes:
+ + many, many ... please see
+ http://sourceforge.net/p/ngspice/ngspice/ci/master/tree/
+ and check the 'history' button on the upper right.
+ + removed memory leaks
+
+
+Ngspice-25, Jan 4th, 2013
+============
+
+- New features:
+ + add temperature coefficients for B source
+ + commands "mdump", "mrdump" to dump matrix to file
+ + allow `time', `temper', and `hertz' in expressions with behavioral R, L, C
+ + Enable ctrl-c to interrupt a simulation also for Windows GUI
+ + tests/bsim4: use the standard CMC model qa check
+ + implement exit code for command "quit"
+ + .nodeset all = value
+ + memristor code model in extradev
+ + new scalable diode model including tunnel component
+ + variable xtrtol may override the XSPICE reduction of trtol
+ + XSPICE example: delta-sigma converter
+ + XSPICE: new d_source model
+ + new option noopac
+ + bsim3: make additonal parameters accessible with @mxx[par]
+ + enable Mac OS X compilation
+ + option reseries = val
+ + commands "snsave", "snload"
+ + update hisim to version 2.7.0, new qa tests
+ + hisimhv update to version 1.2.3, new qa tests
+ + allow Ctrl-d to quit
+ + jfet model temperature extension, tcv and bex parameter
+ + speed up vector handling by hash table for vector address storage and retrieval
+ + update PSS code
+
+
+- Bug fixes:
+ + many, many ... please see
+ http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0
+ + remove memory leaks
+ + update tclspice for MS Windows
+ + adms3 removed due to licensing issues
+
+
+Ngspice-24, Jan 29th, 2012
+============
+
+- New features:
+ + .csparam allows to tranfer a param into a vector in .control ... .endc
+ + functions floor and ceil
+ + syntax Gxxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
+ + syntax Gxxx n1 n2 value={equation} or Exxx n1 n2 value={equation}
+ + variable strict_errorhandling to exit ngspice with exit code 1
+ if any error occurs during circuit parsing
+ + command altermod allows reading from file
+ + command "devhelp" to show available devices and describe device parameters
+ + command "inventory" to print the number of istances of each device.
+ + function cph(vec) delivers phase from a vector without jumps at +-PI
+ + enable 64 bit compilation in MS Visual Studio
+ + --adms3 flag to compile with (experimental) adms code
+ + still very experimental pss code
+ + command 'remcirc' to remove a circuit from the list
+ + command 'wrdata' aknowledges appendwrite and prints complex variables
+ + allow comment lines inside of command files
+ + path variable NGSPICE_INPUT
+ + 'Filesource' code model
+
+- Bug fixes:
+ + More on prototypes, type casts, reordering of functions, compiler warnings
+ + fix a numerical problem in the hisim2 and hisimhv models
+ + plot i(vdd) from a loaded rawfile
+ + fix the guard for device generated internal nodes (via CKTmkVolt())
+ + reduce memory leaks for command 'reset'
+ + parameter processing for nested .subckt
+ + bsim4/b4noi.c: correct init the correlated noise slot in noiseDens and lnNdens vector
+ + Many small bugs
+
+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
+============
+
+- 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
+
+
+Ng-spice-rework-21, Jun3, 13th 2010
+============
+
+- Updated Devices: BSIMSOI 4.3.1
+
+- New features:
+ + Compatibility: C, L, R, devices and E, G sources with expressions
+ Variables HERTZ, TIME, TEMPER added
+ + E, G sources with pwl function
+ + New manual
+ + Plotting with Gnuplot,
+ + Writing wrdata for simple text table to file
+ + .measure improved
+ + transmission line models improved
+
+- Bug fixes:
+ + Many small bugs, memory leaks, memory overflows
+
+Ng-spice-rework-20, November, 16th 2009
+============
+
+Ngspice release 20 is the second release of the simulator in 2009.
+
+- Fixes: model names starting with a number (1n4001) are now correctly parsed.
+ The .global command has been reinstated (it was previously disabled) and
+ error messages now display the corresponding line numberin the input deck.
+- New Features: .measure command for transient, ac and dc analyses (still not
+ complete, e.g. DERIV is missing).
+- Devices: Updated BISM4 model to revision 4.6.5. Added PWL (PieceWise Linear)
+ functionality for B (arbitrary generator) sources.
+
+
+Ng-spice-rework-19, April, 23rd 2009
+============
+
+Ngspice release 19 came early after release 18. It reveals an important work
+in compile scripts, many bug fixes in memory management, interface, and work in device models.
+
+- Compile scripts: tclspice and ADMS compiling fixes. Architecture compiling
+ fixes for SunOS, MS Visual Studio, MINGW, Cygwin.
+- Memory management: fixed memory leaks, modifies memory management for
+ MS Windows, integration of espice bugfixes and enhancements, bug fixes in
+ plots and cli interface.
+- Rework of BSim models, integration of EPFL-EKV model V2.63, ADMS models
+ mextram, hicum0, hicum2.
+
+
+Ng-spice-rework-18
+============
+
+Rework-18 is introduces several new features into ngspice. This is a major
+release that comes after more than three years. During the silent years
+ngspice developers worked in CVS to stabilize and introduce new features
+into the simulator.
+
+- Tclspice simulator library has been merged with ngspice. Now you can
+ compile ngapice or tclspice by asserting a configure switch. See README.tcl
+- New options have been introduced: brief, listing, autostop and scale
+- Support for .lib file has been introduced. This allows the use of
+ third party model libraries in ngspice.
+- .measure statements: avg, integ, rms, max, min, delay, param
+- .global statements t support for global nodes whose name is not expanded
+ when flattening the netlist.
+- .func macros for inlining functions into netlists.
+- Improved the numparam library to support fully parametrized netlists.
+- BSIM model binning.
+- new multi-input gate VCVS using XSPICE extensions.
+
+
+Ng-spice-rework-17
+============
+
+This is a bug fix release. Previous release tarball did not included
+an include file necessary for compiling numparam library.
+
+
+Ng-spice-rework-16
+============
+
+Rework-16 comes out after almost one year of CVS development (from
+15-fixedRC3). This release improves ngspice in three ways:
+
+- Bug fixing: most of the bugs that affected rework-15 have been fixed,
+ thus ngspice is more stable, especially the xspice extension, the
+ subcircuit (X devices) handling and the numparam library.
+
+- New features: netlist syntax has been expandend allowing for end-of-line
+ comments. A ".global" card has beed added to define global nodes, i.e.
+ nodes that are not expanded in subcircuits. It is possible to define TC
+ for resistors on the instance line. The editline library can be used
+ instead of readline (no more GPL license violation).
+
+- Porting: ngspice now works (with xspice extension) on Windows using
+ MINGW/MSYS.
+
+
+Ng-spice-rework-15
+============
+
+Rework-15 release is a giant leap forward for ngspice. It incorporates
+many (read most) of the improvements implemented in tclspice during the
+two years long "sleep" of ngspice and adds many others. The incomplete
+list of new features incorporated are:
+
+ - Xspice simulator (with codemodel dynamic loading support):
+ a mixed signal simulator built upon spice3.
+
+ - Cider simulator:
+ a mixed level simulator built upon spice3.
+
+ - Numparam library:
+ a library that allows for parameter substitution at netlist level.
+
+ - Improved models:
+ Diode model includes periphery effects and high level of injection effects,
+ BJT and BJT2 enhanced.
+ BSIM3 now includes ACM.
+ BSIM4 implementation corrected.
+
+ -New models:
+ VBIC (3 Terminals, no excess phase and thermal network),
+ HiSIM.
+
+ - Frontend leaks closed.
+ Now frontend works as it should.
+
+ - Many new example file.
+
+ - Xgraph plotting program included.
+
+
+Ng-spice-rework-14
+============
+
+This is a major release in terms of bug-fixes. Some enhancements
+have been included: BSIM4 model and support for EKV model. The
+source code for the latter 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 the configure switch
+"--enable-ekv".
+
+The spice code contains an option to debug frontend code, now
+this is available in configure as "--enable-ftedebug".
+
+
+
+Ng-spice-rework-13
+============
+
+This is a major release in terms of fixes and enhancements.
+A garbage collector support has been added. If the configuration
+script detects that you have installed GC (Bohem-Weiser conservative
+garbage collector), it will use it. Some memory leaks have been
+fixed too.
+
+Enhancements to the code comes from Alan's contribute code, a
+description of improvements follows (extracted form Alan's mail):
+
+Output File Format Changes -
+
+ (NOTE: Do not rely on this, we may revert to the old format
+ in the next release).
+
+ Text mode .OP results even though "rawfile" written.
+
+ Internal device nodes are not saved to "rawfile" (reduces
+ file size). Optionally, these internal nodes can be replaced
+ by device currents and saved.
+
+
+DC Convergence Enhancements -
+
+ "Source-Stepping" algorithm modified with a "Dynamic" step size.
+ After each successful step, the node voltages are saved, the
+ source-factor is increased by the step-factor, and the step-factor
+ is increased (for the next step). If the step fails, i.e. the
+ circuit does not converge, the source-factor is set to the value
+ from the previous successful step, the previously stored node
+ voltages are restored, the step-factor is reduced, the source
+ factor is increased by this smaller step-factor, and convergence
+ is attempted again.
+
+ Same thing done for "Gmin-stepping" algorithm.
+
+ "Gshunt" option added. This sets the "diagGmin" variable used in
+ the gmin-stepping algorithm to a non-zero value for the final
+ solution. (Normally this is set to zero for the final solution).
+ This helps for circuits with floating nodes (and for some others
+ too).
+
+ The Gmin implementation across the substrate diodes of MOS1, MOS2,
+ MOS3, MOS6 and BSIM3 devices, and across BJT base-emitter and
+ base-collector diodes, was incorrect. Correcting this dramatically
+ improved DC convergence. (I think this also affects BSIM1 and 2
+ but I haven't fixed them yet !)
+
+ The gm, gmb and gds calculations in the MOS3 model were all wrong.
+ The device equations were fixed, leading to much improved
+ convergence.
+
+ The Vcrit value used for diode voltage limiting was calculated
+ without taking into account the device area (and in some cases
+ without using the temperature corrected saturation current).
+ This could cause floating point overflows, especially in device
+ models designed to be scaled by a small area, e.g. 2u by 2u diodes
+ (area=4e-12). This is now fixed for Diode, BJT, MOS1, MOS2, and
+ MOS3 models.
+
+ The diode voltage limiting was modified to add negative voltage
+ limiting. Negative diode voltages are now limited to 3*Vdp-10,
+ where Vdp is the voltage from the previous iteration. If Vdp is
+ positive, then the voltage is limited to -10V. This prevents some
+ more floating point overflows. (Actually, I'm still playing with
+ the best values for this).
+
+ The Spice3 "fix" for the MOS3 gds discontinuity between the
+ linear and saturated regions only works if the VMAX parameter
+ is non-zero. A "tweak" has been added for the VMAX=0 case.
+
+
+Transient Convergence Enhancements -
+
+ Temperature correction of various diode capacitances was implemented
+ slightly incorrectly, leading to capacitance discontinuities in
+ simulations at temperatures other than nominal. This affected the
+ Diode and MOS3 models.
+
+ A mistake in the implementation of the MOS3 source-bulk capacitance
+ model resulted in a charge storage discontinuity. This has been fixed.
+
+ The level 2 MOSFET model seems to calculate Von and Vth values for
+ the threshold and subthreshold values respectively, but then uses
+ Vbin to calculate the Vdsat voltage used to find the drain current.
+ However, a jump statement uses Von to decide that the device is in
+ the "cutoff" region, which means that when this jump allows the
+ drain current to be calculated, Vdsat can already be well above
+ zero. This leads to a discontinuity of drain current with respect
+ to gate voltage. The code is now modified to use Vbin for the jump
+ decision. It looks like the code should actually use Vth as the
+ threshold voltage, but since other SPICE simulators follow the
+ original Berkeley code, this was left alone.
+
+
+New Model Parameters -
+
+ A device multiplier instance parameter "M" (i.e. M devices in
+ parallel) was added to the MOS1,2,3 and BSIM3 mosfet models.
+
+
+Input Read-in and Checking -
+
+ Numbers beginning with a + sign got the input routine confused.
+ Fixed now.
+
+ Attempts to nodeset (or .IC) non-existent nodes are flagged with a
+ warning.
+
+ PWL statements on Voltage or Current sources are now checked for
+ "non-increasing" time-points at the start of the simulation.
+ Previously each time-point was checked as it was reached during
+ the simulation, which could be very annoying if you made a mistake
+ which caused the simulation to fail after hours of run-time.
+
+ A check which was performed at the end of each sub-circuit expansion
+ was moved to the top level. This check makes sure that all sub-circuits
+ have been defined, but in its original position, it meant that if a
+ sub-circuit included ANY .MODEL statements at all, then ALL the models
+ called in that sub-circuit must also be defined within that
+ sub-circuit. Now SPICE behaves as expected, i.e. a subcircuit may
+ define its own models, but may also use models defined at any level
+ above.
+
+
+Miscellaneous Fixes/Enhancements -
+
+ MOS devices reported only half of the Meyer capacitances, and did not
+ include overlap capacitances, when reporting to the .OP printout, or
+ when storing device capacitances to the "rawfile".
+
+ The ideal switch devices had no time-step control to stop their
+ controlling voltages/currents overshooting the switching thresholds.
+ The time-step control has been modified to use the last two time
+ points to estimate if the next one will move the controlling
+ voltage/current past a switching threshold. If this looks likely,
+ then the time-step is reduced.
+
+ The "rawfile" writing routines have been modified to print the
+ "reference value" to the console during the simulation. This lets
+ the user see exactly how far and how fast the simulation is
+ proceeding.
+
+ .OP printout tidied up a lot to make the printout clearer.
+
+ Analysis order changed to fix a "feature" where, if you ask for
+ a .OP and a .TRAN in the same simulation, the node voltages
+ printed out correspond to the .OP, but the device data was from
+ the last timepoint of the .TRAN
+
+
+Etc. -
+
+ There are other minor bug fixes, and changes to reduce compiler
+ warnings. There are probably some more significant fixes which
+ I've forgotten :-)
+
+
+Ng-spice-rework-12
+============
+Arno did a great work this summer!
+The pole-zero analysis has been corrected. The error was introduced
+in an attempt to eliminate compiler warnings. The source has been
+reworked and info file have been updated. As you may see, a new dir
+called "spicelib" has been created, another step toward the separation
+of the simulator from the frontend.
+
+Ng-spice-rework-11
+============
+
+Resistor code (device) has been modified to conform to spice3 device
+coding standard.
+A new step function (U2) has been introduced.
+Documentation updated.
+
+Ng-spice-rework-10
+============
+
+Added BSIM4 model and closed a couple of serious bugs. Added DEVICES
+file to distribution. This file contains the status of device models
+in this simulator. Read it, this file can save you a lot of time.
+
+Ng-spice-rework-9
+============
+
+Thanks to Arno Peters now all device models are dynamically loaded on
+demand. They are linked as shared libraries. The next step is the
+dlopen() one which will make possible to link devices without any
+recompilation.
+
+
+
+Ng-spice-rework-8
+============
+
+Applied Arno's patch.
+
+From his mail message:
+
+Hi Paolo,
+
+I have prepared a source cleaning patch.
+
+Features:
+
+ + patches don't get polluted with differences between automatically
+ generated Makefile.am files. Usually these make up the biggest part
+ of the patches. This allows me to read the patch on the mailing
+ list instead of sifting through 90% redundant and irrelevant changes.
+
+ + the shell script autogen.sh automatically regenerates the required
+ files if the user has automake, autoconf and libtool installed.
+
+ + this feature is only valuable to developers, not to end users.
+
+
+Usage of this patch, once incorporated:
+
+ # create a working tree to work from
+ cp -a ng-spice-rework-x ng-spice
+
+ [ Changes made to ng-spice ]
+
+ # clean up all the automatically generated files
+ cd ng-spice; make maintainer-clean
+
+ # extract the differences
+ diff -ruN ng-spice-rework-x ng-spice > my.patch
+
+ [ Patch sent to ng-spice mailing list or you ]
+
+ # incorporate changes into the tree
+ cd ng-spice-rework-x; patch -p1 < my.patch
+
+ # update the automatically generated files
+ cd ng-spice-rework-x; sh autogen.sh
+
+
+
+
+Ng-spice-rework-7 (22 Mar 2000)
+============
+
+Bug fix release
+
+
+
+Ng-spice-rework-6 (29 Jan 2000)
+============
+
+This porting includes:
+
+1) BSIM3V3.1 model as level 49. This is the version modified by Serban
+Popescu which understands the M parameter and implements HDIF.
+
+2) BSIM3V3.2 model al Level 50. This is the standard Berkeley version.
+
+3) Now the resistor model can accepts two different values for DC and
+AC resistance.
+
+
+
+Ng-spice-rework-5 and 5_2 (Jan 2000)
+============
+
+Internal development release, buggy and not working.
+
+Ng-spice-rework-4 (22/12/99)
+============
+
+This porting includes a new feature:
+
+1) dynamically loading of some device code as an experimental feature
+for the future GPL simulator. Thanks to Arno Peters and Manu Rouat.
+
+2) Patched the following bug (thanks to Andrew Tuckey for having
+supplied the patch).
+
+ * Wsw (current controlled switch) in subckt, parsing bug.
+ * scale factor in arbitrary source.
+ * bug in noise analysis.
+ * save segmentation faults.
+
+
diff --git a/Windows/spice/docs/README b/Windows/spice/docs/README
new file mode 100644
index 00000000..8d4bd1db
--- /dev/null
+++ b/Windows/spice/docs/README
@@ -0,0 +1,67 @@
+README for NGSPICE
+==================
+
+Ngspice is a mixed-level/mixed-signal circuit simulator. Its code
+is based on three open source software packages: Spice3f5, Cider1b1
+and Xspice.
+
+Spice3 does not need any introduction, is the most popular circuit
+simulator. In over 30 years of its life Spice3 has become a de-facto
+standard for simulating circuits.
+
+Cider couples Spice3f5 circuit level simulator to DSIM device simulator
+to provide greater simulation accuracy of critical devices. DSIM
+devices are described in terms of their structures and materials.
+
+Xspice is an extension to Spice3C1 that provides code modelling support
+and simulation of digital components through an embedded event driven
+algorithm.
+
+Ngspice is, anyway, much more than the simple sum of the packages
+above, as many people contributed to the project with their experience,
+their bug fixes and their improvements. If you are interested, browse
+the site and discover what ngspice offers and what needs. If you think
+you can help, join the development team.
+
+Ngspice is an ongoing project, growing everyday from users contributions,
+suggestions and reports. What we will be able to do depends mostly on
+user interests, contributions and feedback.
+
+
+
+USER DISCUSSION FORUMS:
+-----------------------
+
+ For discussions on ngspice, there are five discussion forums, to be
+ found at https://sourceforge.net/p/ngspice/discussion/. These
+ typically provide quick answers to any question concerning ngspice.
+ A new section on 'tips and examples' assembles useful tips provided
+ by maintainers and users.
+
+
+
+MAILING LISTS:
+-------------
+
+ There are two mailing lists dedicated to the use and development of ngspice.
+
+ * ngspice-users@lists.sourceforge.net:
+ This list is the list for the users of the ngspice simulator.
+
+ * ngspice-devel@lists.sourceforge.net:
+ ngspice development issues. Developers and "want to be" developers should
+ subscribe here.
+
+ To subscribe the list(s), send a message to:
+ <ngspice-users-subscribe@lists.sourceforge.net>
+ <ngspice-devel-subscribe@lists.sourceforge.net>
+
+
+
+WEB SITEs:
+--------
+
+This project is hosted on Sourceforge.net.
+The home page is http://ngspice.sourceforge.net
+The page offering source code and user interaction is
+ http://sourceforge.net/projects/ngspice
diff --git a/Windows/spice/docs/README.adms b/Windows/spice/docs/README.adms
new file mode 100644
index 00000000..cbda7a84
--- /dev/null
+++ b/Windows/spice/docs/README.adms
@@ -0,0 +1,58 @@
+This document is covered by the Creative Commons Attribution Share-Alike (CC-BY-SA) v4.0. .
+
+*************** Verilog A Device models in ngspice ******************************************
+
+
+1 Introduction
+
+New compact device models today are released as Verilog-A code. Ngspice applies ADMS to
+translate the va code into ngspice C syntax. Currently a limited number of Verilog-A models is
+supported: HICUM level0 and level2 (HICUM model web page), MEXTRAM (MEXTRAM
+model web page), EKV (EKV model web page) and PSP (NXP PSP web site).
+
+
+2 ADMS
+
+ADMS is a code generator that converts electrical compact device models specified in high-level
+description language into ready-to-compile C code for the API of spice simulators. Based on
+transformations specified in XML language, ADMS transforms Verilog-AMS code into other
+target languages. Here we use it to to translate the va code into ngspice C syntax.
+To make use of it, a set of ngspice specific XML files is distributed with ngspice in ngspice\
+src\spicelib\devices\adms\admst. Their translation is done by the code generator executable
+admsXml (see below).
+
+
+3 How to integrate a Verilog-A model into ngspice
+
+3.1 How to setup a *.va model for ngspice
+
+Unfortunately most of the above named models’ licenses are not compatible to free software
+rules as defined by DFSG. Therefore since ngspice-28 the va model files are no longer part of
+the standard ngspice distribution. They may however be downloaded as a tar.gz archive from the
+ngspice-30 file distribution folder. After downloading, you may expand the zipped files into
+your ngspice top level folder. The models enable dc, ac, and tran simulations. Noise simulation
+is not supported.
+Other (foreign) va model files will not compile without code tweaking, due to the limited
+capabilities of our ADMS installation.
+
+
+3.2 Adding admsXml to your build environment
+
+The actual admsXml code is maintained by the QUCS project and is available at GitHub.
+Information on how to compile and install admsXml for Linux or Cygwin is available on the
+GitHub page. For MS Windows users admsXml.exe is available for download from
+https://sourceforge.net/projects/mot-adms/. You may copy admsXml.exe to your MSYS2 setup
+into the folder msys64\mingw64\bin, if 64 bit compilation is intended.
+More information, though partially outdated, is obtainable from the ngspice web pages
+(http://ngspice.sourceforge.net/admshowto.html) and from README-old.adms.
+
+
+3.3 Compile ngspice with ADMS
+
+In the top level ngspice folder there are two compile scripts compile_min.sh and compile_linux.sh.
+They contain information how to compile ngspice with ADMS. You will have to run autogen.sh
+with the adms flag
+./autogen.sh --adms
+In addition you have to add --enable-adms to the ./configure command. Please check chapter
+32.1 of the ngspice manual for perequisites and further details.
+Compiling ngspice with ADMS with MS Visual Studio is not supported.
diff --git a/Windows/spice/docs/README.shared-xspice b/Windows/spice/docs/README.shared-xspice
new file mode 100644
index 00000000..706bda63
--- /dev/null
+++ b/Windows/spice/docs/README.shared-xspice
@@ -0,0 +1,31 @@
+Enabling XSPICE data transfer over the shared ngspice api.
+
+This branch enhances shared ngspice capability to event driven XSPICE data transfer.
+
+The shared library (dll) exports three new function:
+ngSpice_Init_Evt() provides addresses for two new callback functions.
+ To be called upon initialization.
+ngGet_Evt_NodeInfo() provides info for a specific node.
+ngSpice_AllEvtNodes() provides a list of all event nodes.
+
+There are two new callback functions
+
+sendinitevt() sends info upon the event nodes: name, type an dcorresponding index
+and is calles once per event nodes upon initialization of the circuit.
+
+sendevt() is called each time, when for a given event node, that is determined
+by index, a time step has been accepted and its value has changed. This allows
+to immediately make use of that value in the calling process.
+
+For details on the definitions you may have a look at sharedspice.h.
+
+There is an example caller file (currently tested only under Windows,
+and compiled with Visual Studio) in directory ngspice\visualc\ng_shared_xspice_v.
+
+There is also a new feature: The 'save' command accepts the flag none of run in
+shared mode. Then there is no internal storage of analog output data, they are
+still available with the callback function ng_data. The above mentioned example
+file now includes a testrun2 to demonstrate this feature.
+
+The already existing fcn ngGet_Vec_Info(evtnode) will return an analog vector
+derived from event node evtnode containing 1 and 0.
diff --git a/Windows/spice/docs/README.tcl b/Windows/spice/docs/README.tcl
new file mode 100644
index 00000000..e50bf58e
--- /dev/null
+++ b/Windows/spice/docs/README.tcl
@@ -0,0 +1,100 @@
+*********************************************************************************
+*Copied and written by Stefan Jones (stefan.jones@multigig.com) at Multigig Ltd *
+*Code based on and copied from ScriptEDA *
+*(http://embedded.eecs.berkeley.edu/Alumni/pinhong/scriptEDA/) *
+*Copyright (C) 2001 Author Pinhong Chen *
+* *
+*This program is free software; you can redistribute it and/or *
+*modify it under the terms of the GNU Lesser General Public License *
+*as published by the Free Software Foundation; either version 2 *
+*of the License, or (at your option) any later version. *
+* *
+*This program is distributed in the hope that it will be useful, *
+*but WITHOUT ANY WARRANTY; without even the implied warranty of *
+*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+*GNU Lesser General Public License for more details. *
+* *
+*You should have received a copy of the GNU Lesser General Public License *
+*along with this program; if not, write to the Free Software *
+*Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.*
+*********************************************************************************
+
+WARNING!
+
+The text in this document has been prepared in 2006 and is partially outdated.
+It is provided here only for reference and may provide some (historical)
+information.
+
+
+Welcome to tclspice README_tcl
+
+This file acompanies ngspice sources starting with ngspice-rework-18. It
+describes what tclspice is, its installation, and points to resources that will
+help you to start with it. It also contains usefull datas to keep informed,
+get help, or get involved in the project.
+
+Enjoy
+
+Lionel (saintel@users.sourceforge.net)
+
+
+
+What is tclspice:
+
+tclspice is a variant of ngspice. It share 95% of its code (approx). The
+different between plain NGspice and tclspice is the type of binary it produces,
+and the way to access it. NGspice is a standalone program that you can execute
+and which can either automatically process a spice directives script. It can
+also propose you a command line interface.
+tclspice is a tcl package name. It is based on libspice shared library. This
+library is specifically designed to be loaded in tcl interpreters such as tclsh
+or wish. Then all spice directives are available as tcl functions. libspice also
+feature some new commands that are usefull for the integration into the tcl
+environment.
+
+tclspice differs from ngspice by its printf (bundled to tcl printf), malloc (tcl
+ malloc), data handling and plotting (BLT toolkit extensions to tcl/tk).
+
+
+Installing:
+
+Tclspice relies on three packages that are not included in ngspice:
+tcl : the tcl command interpreter, for interpretion of user scipt
+tk : the graphical extension of tcl, to represent data graphically and for GUIs
+blt : BLT toolkit gives number handling and plotting features to tcl/tk
+
+The latest configuration is (not much tested):
+tclspice-27
+tcl 8.4
+tk 8.4
+blt 2.4
+
+Tclspice is built and installed the same way as ngspice. Then, after reading this
+paragraph, the information you lack will probably be in README file in this directory.
+There is a configuration flag to set in order to compile tclspice library rather than
+plain ngspice, that is a standalone program. This flag is --with-tcl. It accepts an
+argument the path to tclConfig.sh
+
+If you don't provide any argument, configure script will try to find it automatically.
+ ./configure --enable-xspice --disable-cider --disable-xgraph --enable-numparam --with-readline=no --enable-adms=no --with-tcl
+
+If its does not, then it will propose you some possible locations.
+ can't find Tcl configuration script "tclConfig.sh"
+ Should you add --with-tcl=/usr/lib/tcl8.4/tclConfig.sh to ./configure arguments?
+
+If it does not, check that tcl8.4 is installed, and manually specify the path.
+ ./configure --enable-xspice --disable-cider --disable-xgraph --enable-numparam --with-readline=no --enable-adms=non --with-tcl=/usr/lib/tcl8.4
+
+Tclspice is not compatible with ngspice graphical code. Then when building tclspice,
+--no-x is automatically configured.
+
+
+
+Support and help :
+
+First of all (but last recourse), mail me at saintel@users.sourceforge.net
+
+For any kind of information on tclspice:
+ http://ngspice.sourceforge.net/tclspice.html
+It gives plenty of information. There is an index of good resources that you can
+read to get into tclspice quickly and proficently.
diff --git a/Windows/spice/docs/README.vdmos b/Windows/spice/docs/README.vdmos
new file mode 100644
index 00000000..12aff931
--- /dev/null
+++ b/Windows/spice/docs/README.vdmos
@@ -0,0 +1,72 @@
+README for VDMOS model in NGSPICE
+==================
+
+A simmple MOS model for vertical power transistors (VDMOS model) is under
+development. Originally it has been available in LTSPICE
+(see http://ltwiki.org/LTspiceHelp/LTspiceHelp/M_MOSFET.htm) or
+SuperSpice (https://www.anasoft.co.uk/MOS1Model.htm).
+
+It is based on the MOS1 model. The Meyer capacitance has been
+replaced by a special cap model. A body diode with series
+resistance is parallel to the D/S device nodes. It defines the
+reverse behavior, but also the breakdown of the transistor.
+
+Basic current equations for ac, dc and tran operations are
+available as well as the capacitance model.
+
+Subthreshold behavior (parameter ksubthres) is available,
+and is compatible with LTSPICE. An alternative weak inversion
+model may be seected by choosing the subslope parameter instead
+of ksubthres.
+
+A quasi saturation model enhancement is available.
+
+The model parameters supported are:
+
+/* basic device */
+"vto", ,"Threshold voltage"
+"kp", "Transconductance parameter"
+"phi", "Surface potential"
+"lambda","Channel length modulation"
+"rd", "Drain ohmic resistance"
+"rs", "Source ohmic resistance"
+"rg", "Gate ohmic resistance"
+
+"tnom", "Parameter measurement temperature"
+"kf", "Flicker noise coefficient"
+"af", "Flicker noise exponent"
+
+/* quasi saturation */
+"rq", "Quasi saturation resistance fitting parameter"
+"vq", "Quasi saturation voltage fitting parameter"
+
+"mtriode", "Conductance multiplier in triode region"
+
+/* weak inversion */
+"subslope", "Slope of weak inversion log current versus vgs - vth "
+"subshift", "Shift of weak inversion plot on the vgs axis "
+"ksubthres", "Slope n from (vgs-vth)/n, LTSPICE and SuperSpice standard"
+
+/* body diode */
+"bv", "Vds breakdown voltage"
+"ibv", "Current at Vds=bv"
+"nbv", "Vds breakdown emission coefficient"
+"rds", "Drain-source shunt resistance"
+"rb", "Body diode ohmic resistance"
+"n", "Bulk diode emission coefficient"
+"tt", "Body diode transit time"
+"eg", "Body diode activation energy for temperature effect on Is"
+"Xti", "Body diode saturation current temperature exponent"
+"is", "Body diode saturation current"
+"vj", "Body diode junction potential"
+
+/* body diode capacitance (e.g. source-drain capacitance */
+"fc", "Body diode coefficient for forward-bias depletion capacitance formula"
+"cjo", "Zero-bias body diode junction capacitance"
+"m", "Body diode grading coefficient"
+
+/* gate-source and gate-drain capacitances */
+"cgdmin", "Minimum non-linear G-D capacitance"
+"cgdmax", "Maximum non-linear G-D capacitance"
+"a", "Non-linear Cgd capacitance parameter"
+"cgs", "Gate-source capacitance"
diff --git a/Windows/spice/docs/ngspice-31-manual.pdf b/Windows/spice/docs/ngspice-31-manual.pdf
new file mode 100644
index 00000000..70b9fd55
--- /dev/null
+++ b/Windows/spice/docs/ngspice-31-manual.pdf
Binary files differ