diff options
author | rahulp13 | 2020-02-28 11:38:58 +0530 |
---|---|---|
committer | rahulp13 | 2020-02-28 11:38:58 +0530 |
commit | 246319682f60293b132fca1ce6e24689c6682617 (patch) | |
tree | 6871b758a17869efecfd617f5513e31f9a933f4a /Windows/spice/doc | |
parent | d9ab84106cac311d953f344386fef1c1e2bca1cf (diff) | |
download | eSim-246319682f60293b132fca1ce6e24689c6682617.tar.gz eSim-246319682f60293b132fca1ce6e24689c6682617.tar.bz2 eSim-246319682f60293b132fca1ce6e24689c6682617.zip |
initial commit
Diffstat (limited to 'Windows/spice/doc')
-rw-r--r-- | Windows/spice/doc/ANALYSES | 115 | ||||
-rw-r--r-- | Windows/spice/doc/AUTHORS | 76 | ||||
-rw-r--r-- | Windows/spice/doc/BUGS | 38 | ||||
-rw-r--r-- | Windows/spice/doc/COPYING | 613 | ||||
-rw-r--r-- | Windows/spice/doc/DEVICES | 854 | ||||
-rw-r--r-- | Windows/spice/doc/FAQ | 376 | ||||
-rw-r--r-- | Windows/spice/doc/INSTALL | 699 | ||||
-rw-r--r-- | Windows/spice/doc/NEWS | 578 | ||||
-rw-r--r-- | Windows/spice/doc/README | 54 | ||||
-rw-r--r-- | Windows/spice/doc/ngspice26-manual.pdf | bin | 0 -> 2141771 bytes |
10 files changed, 3403 insertions, 0 deletions
diff --git a/Windows/spice/doc/ANALYSES b/Windows/spice/doc/ANALYSES new file mode 100644 index 00000000..5b715be9 --- /dev/null +++ b/Windows/spice/doc/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/doc/AUTHORS b/Windows/spice/doc/AUTHORS new file mode 100644 index 00000000..e13a65ad --- /dev/null +++ b/Windows/spice/doc/AUTHORS @@ -0,0 +1,76 @@ +@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, +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/doc/BUGS b/Windows/spice/doc/BUGS new file mode 100644 index 00000000..b338848f --- /dev/null +++ b/Windows/spice/doc/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/doc/COPYING b/Windows/spice/doc/COPYING new file mode 100644 index 00000000..e266da01 --- /dev/null +++ b/Windows/spice/doc/COPYING @@ -0,0 +1,613 @@ +12345678901234567890123456789012345678901234567890123456789012345678901234567890 +Ngspice 26 +Copyright (c) 2014, +All rights reserved. + + +Foreword: +The name 'Spice' (Simulation Program with Integrated Circuit Emphasis) +was originally chosen at the University of California, Berkeley. The +original Berkeley code is covered under the modified BSD license and +thus sets the basis for all other code added. +As Spice is the basis of almost all circuit simulators, the major part of the +analogue and mixed signals simulation's code is designed to fit with it. +The *spices (generic name for its forks) are heterogeneous in many points due +to the work of researchers, electronic designers, software editors, etc. +The Ngspice team tries to collect work from the different sources and +contribute new functionalities. Thus, the material we manipulate is +heterogeneous in licenses. Keeping the licenses as is, but also keep it +compatible with the new BSD license, is the way to live with that diversity. + +Copyleft is a fundamental question in FOSS development. The choice of a +copylefted contribution, or a non copylefted contribution is an important +choice that should be respected. Ngspice branch as a whole will not be covered +by a specific license. The Ngspice team wants to encourage contributions to +ngspice. We let each new developer choose its position regarding copyleft, +as we respect the position of the former developers. In order to keep things +clear ngspice team proposes to follow the following guidelines: + + Each piece of code should be kept under its original contributor's license. + As for any project, modifications made in sources covered by a less + restrictive license can be covered by a more restrictive license than new BSD. + We do not encourage it. + + If you feel to add code in a file under a different license than the rest of + the file, please use comments to mark the boundaries of the modification, and + edit the comments at the beginning of the file with correct license and + copyright information. + + We encourage restrictive licenses to be chosen only for new functionalities, + written in distinct files, leading to distinct libraries that link depending + on a specific configure flag. + + We encourage non proliferation of licenses (e.g. choosing either LGPL or + new BSD). GPL is not suitable for code to be directly linked into ngspice, + but may be used in shared object libraries only. + +This heterogeneous license status requires some effort to keep track on licenses +applied. Please take care of knowing which license applies to the code you are +editing, or conveying and not to commit license infringements, especially to +GPL and LGPL which are quite restrictive. + +On 2007, July 17th spice 3f5 changed from its original license to the new BSD +license. (http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm) + +On 2008, December 1st, tclspice changes license from GPL to LGPLv2, in +accordance with Multigig Ltd, the copyright holder. + +The following table is just a reminder on license status, please don't rely +on it: + Author License Notes + +numparam Georg Post LGPL Applies to the code in + frontend/numparam +adms Laurent Lemaitre LGPL Applies to scripts in the + spicelib/dev/adms +tclspice Stefan Jones LGPL TCL integration +cider U. of California Old BSD Device level simulator +xspice Georgia Tech. Public D Mixed signals +spice U. of California New BSD Analog circuit simulation + + +---------------------------------- Cider ----------------------------------- + + RESEARCH SOFTWARE AGREEMENT + + This file specifies the terms under which the software and + documentation provided with this distribution are provided. + + Software is distributed as is, completely without warranty + or service support. The University of California and its employ- + ees are not liable for the condition or performance of the + software. + + The University does not warrant that it owns the copyright + or other proprietary rights to all software and documentation + provided under this agreement, notwithstanding any copyright + notice, and shall not be liable for any infringement of copyright + or proprietary rights brought by third parties against the reci- + pient of the software and documentation provided under this + agreement. + + THE UNIVERSITY OF CALIFORNIA HEREBY DISCLAIMS ALL IMPLIED + WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE. THE UNIVERSITY IS NOT + LIABLE FOR ANY DAMAGES INCURRED BY THE RECIPIENT IN USE OF THE + SOFTWARE AND DOCUMENTATION, INCLUDING DIRECT, INDIRECT, SPECIAL, + INCIDENTAL, OR CONSEQUENTIAL DAMAGES. + + The University of California grants the recipient the right + to modify, copy, and redistribute the software and documentation, + both within the recipient's organization and externally, subject + to the following restrictions: + + + (a) The recipient agrees not to charge for the University of + California code itself. The recipient may, however, charge + for additions, extensions, or support. + + (b) In any product based on the software, the recipient agrees + to acknowledge the research group that developed the + software. This acknowledgement shall appear in the product + documentation. + + (c) The recipient agrees to obey all U.S. Government restric- + tions governing redistribution or export of the software and + documentation. + + +---------------------------------- Spice3f5 -------------------------------- + +Copyright (c) 1985-1991 The Regents of the University of California. +All rights reserved. + +Permission is hereby granted, without written agreement and without license +or royalty fees, to use, copy, modify, and distribute this software and its +documentation for any purpose, provided that the above copyright notice and +the following two paragraphs appear in all copies of this software. + +IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR +DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT +OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF +CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN +"AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE +MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + +-------------------------------- Tclspice -------------------------------- + + 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. + +---------------------------------- 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). diff --git a/Windows/spice/doc/DEVICES b/Windows/spice/doc/DEVICES new file mode 100644 index 00000000..29c309e2 --- /dev/null +++ b/Windows/spice/doc/DEVICES @@ -0,0 +1,854 @@ +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 +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.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 + Dir: devices/bsim4 (level 4.6.5) + 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.7.0 + Class: M + Level: 61, 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 + + + 11.14 HiSIM_HV - Hiroshima-University STARC IGFET High Voltage Model + + Ver: 1.2.3 + Class: M + Level: 62, 73 + Dir: devices/hisimhv + Status: TO BE TESTED. + + This is the HiSIM_HV model available from Hiroshima University + (Ultra-Small Device Engineering Laboratory) + + Web site: http://home.hiroshima-u.ac.jp/usdl/HiSIM.html + + +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: 61 + 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/doc/FAQ b/Windows/spice/doc/FAQ new file mode 100644 index 00000000..e137c93c --- /dev/null +++ b/Windows/spice/doc/FAQ @@ -0,0 +1,376 @@ + Ngspice F.A.Q.Version 2.0 (ngspice 26 release) + Maintained by Paolo Nenzi, Holger Vogt + Last update: 02-01-2014 + + 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 What mailing lists exist for ngspice? + 1.9 Are the mailing lists archived anywhere? + 1.10 What newsgroups exist for ngspice? + 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 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. + + + 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. Please see file COPYING + for details. + + + 1.8 What mailing lists exist for ngspice? + + 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.9 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.10 What newsgroups exist for ngspice? + + There is no ngspice specific newsgroup. Sourceforge offers additional + discussion groups for ngspice, please see + + http://sourceforge.net/p/ngspice/discussion/ + + ngspice threads may appear on newsgroups dedicated to circuit + simulation and electronic design. + + + 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-26 (released on 04/01/2013) + + + 2.2. What are the latest features in the current release? + +- 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 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 + + Many small bugs + + + + 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 a mail to the user's list 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: + + Paolo Nenzi <p.nenzi@ieee.org>. + + Send your comments about ngspice to: + + Paolo Nenzi <p.nenzi@ieee.org>. + + + 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 are originate from Paolo Nenzi. + + + 4.4. Disclaimer and Copyright + + 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/doc/INSTALL b/Windows/spice/doc/INSTALL new file mode 100644 index 00000000..23c1f877 --- /dev/null +++ b/Windows/spice/doc/INSTALL @@ -0,0 +1,699 @@ +Ngspice installation instructions +================================= + +Table of contents + + 1 Ngspice installation (LINUX) + 1.1 Prerequisites + 1.2 Install from tarball (e.g. ngspice-26.tar.gz) + 1.3 Install from git repository + 1.4 Advanced Install + 1.4.1 Most useful options + 1.4.2 Options Specific to Using Ngspice + 1.4.3 Options Useful for Debugging Ngspice + 2 Compilers and Options + 3 Compiling For Multiple Architectures + 4 Installation Names + 5 Optional Features + 6 Specifying the System Type + 7 Sharing Defaults + 8 Operation Controls + 9 NGSPICE COMPILATION UNDER WINDOWS OS + 9.1 How to make ngspice with MINGW and MSYS + 9.2 make ngspice with MS Visual Studio 2008 + 9.3 make ngspice with pure CYGWIN + 9.4 ngspice console app with MINGW or CYGWIN + + +This file describes the procedures to install ngspice from sources. + + +1 Ngspice Installation (LINUX, maybe others) + ==================== + +1.1 Prerequisites + + Ngspice is written in C and thus a complete C compilation environment + is needed. Almost any LINUX offers a complete C development environment. + Ngspice is developed on GNU/Linux with gcc and GNU make. + + The following software must be installed in your system to compile ngspice: + bison, flex, and X11 headers and libs. + + If you want to compile the source from the git repository you need + additional software: autoconf, automake, libtool, texinfo, readline. + + The following software may be needed when enabling additional features: + editline, tcl/tk, adms + + Please have a look at the actual ngspice manual, downloadable at + http://ngspice.sourceforge.net/docs.html, which gives you much more + information on ngspice and its usage. + + +1.2 Install from tarball (e.g. ngspice-26.tar.gz) + + This covers installation from a release distribution (for example + ngspice-26.tar.gz, the so called tar ball). + + After downloading the tar ball to a local directory unpack it using: + + $ tar -zxvf ngspice-26.tar.gz + + Now change directories in to the top-level source directory (where this + INSTALL file can be found). + + You should be able to do: + + $ mkdir release + $ cd release + $ ../configure --with-x --with-readline=yes --disable-debug + $ make + $ sudo make install + + The default install directory for executables is /usr/local/bin. + + A simple ../configure might be sufficient for a basic ngspice, but the preferred + arguments to ../configure are + --with-x --with-readline=yes and --disable-debug + providing you with a comfortably working ngspice (see section 1.4 for details). + + See the section titled 'Advanced Install' for instructions about additional arguments + that can be passed to ../configure to customise the build and installation. + + Do not use the script ./autogen.sh, because it is not required for + compiling and installing ngspice from the tarball. + + A fully featured ngspice on LINUX may be obtained with the following commands: + $ mkdir release + $ cd release + $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp + $ make 2>&1 | tee make.log + $ sudo make install + + To remove the executables and libraries from the install directory, you may call + $ sudo make uninstall + + +1.3 Install from the git repository + + This section describes how to install from source code taken directly + from the git repository. It is intended for those who want to use the most + recent enhancements of ngspice and for developers. For user install + instructions using source from a released distributions, please see the + sections titled 'Install from tarball' and 'Advanced Install'. + + Download ngspice sources from the git repository as described on the sourceforge project page + (see http://ngspice.sourceforge.net/download.html and click on the git link) + + Now change directories in to the top-level source directory (where this + INSTALL file can be found). + + The project uses the GNU build process. The compile output should go into a separate + directory, so to e.g. maintain separate debug and release versions. + + $ ./autogen.sh + $ mkdir debug + $ cd debug + $ ../configure --with-x --with-readline=yes + $ make + $ sudo make install + + See the section titled 'Advanced Install' for instructions about arguments + that can be passed to ./configure to customise the build and installation. + + Preferred arguments to ./configure to obtain a comfortably working ngspice may be + --with-readline=yes and --disable-debug (for a smaller and speed optimized + executable). + + A fully featured ngspice on LINUX may be obtained with the following commands: + $ ./autogen.sh --adms + $ mkdir release + $ cd release + $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-adms + $ make 2>&1 | tee make.log + $ sudo make install + + If a problem is found with the build process, please submit a report to + the ngspice development team. Please provide information about your system + and any ./configure arguments you are using, together with any error + messages. Ideally you would have tried to fix the problem yourself first. + If you have fixed the problem then the development team will love to hear + from you. + + +1.4 Advanced Install + + Some extra options can be provided to './configure'. To get all available + options do: + + $ ./configure --help + + Some of these options are generic to the GNU build process that is used by + Ngspice, other are specific to Ngspice. + + The following sections provide some guidance and descriptions for many, + but not all, of these options. + + 1.4.1 Most useful options: + + --enable-adms + ADMS is an experimental model compiler that translates + Verilog-A compact models into C code that can be compiled into + ngspice. This is (as of ngspice-26) still experimental, some + features (e.g. noise) are missing. If you want to use it, please + refer to the ADMS section on ngspice web site. + + --enable-cider + Cider is a mixed-level simulator that couples Spice3 and DSIM + to simulate devices from their technological parameters. + + --enable-xspice + Enable XSpice enhancements, + A mixed signal simulator built upon spice3 with codemodel + dynamic loading support. See the ngspice manual for details. + + --with-readline=yes + Enable GNU readline support for the command line interface. + + --enable-openmp + Compile ngspice for multi-core processors. + Parallelization is done by OpenMP, for MOS models in BSIM3.3.0 + BSIM4.6.0 and and BSOI4 only. See the ngspice manual for details. + + --disable-debug + This option will remove the '-g' option passed to the compiler + and add -O2 optimisation (instead of default O0). + This speeds up simulating significantly, and is recommended for + normal use. + + +1.4.2 Options Specific to Using Ngspice + +Most of the options now following are not well maintained, are not tested or even maybe obsolete. + + --enable-capbypass + Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd + voltages are unchanged. + + --enable-cluster + Clustering code for distributed simulation. This is a + contribution never tested. This code comes from TCLspice + implementation and is implemented for transient analysis only. + + --enable-expdevices + Enable experimental devices. This option is used by developers + to mask devices under development. Almost useless for users. + + --enable-experimental + This enables some experimental code. Specifically it enables: + * The ability to save and load snapshots: adds + interactive keywords 'savesnap' and 'loadsnap'. + + --enable-help + Force building nghelp. This is deprecated. + + --enable-ndev + Enable NDEV interface, (experimental, needs updating) + A TCP/IP interface to external device simulator such as GSS. + For more information, please visit the homepage of GSS at + http://gss-tcad.sourceforge.net + + --enable-newpred + Enable the NEWPRED symbol in the code. + + --enable-newtrunc + Enable the newtrunc option + + --enable-nodelimiting + Experimental damping scheme + + --enable-nobypass + Don't bypass recalculations of slowly changing variables + + --enable-predictor + Enable a predictor method for convergence + + --enable-sense2 + Use spice2 sensitivity analysis + + --enable-xgraph + Compile the Xgraph plotting program. + Xgraph is a plotting package for X11 and was once very popular. + + --with-editline=yes + Enables the use of the BSD editline library (libedit). + See http://www.thrysoee.dk/editline/ + + --with-tcl=tcldir + When configured with this option the tcl module + "tclspice" is compiled and installed instead of + plain ngspice. + + --with-ngshared + This option let you compile ngspice as a shared + library or dll, allowing an application controlling + ngspice. This option excludes using --with-x or + --with-wingui. Useful additional options are + --enable-xspice --enable-cider --enable-openmp. + No graphics inetrface is provided, this has to be + handled by the controlling application. + + +1.4.3 Options Useful for Debugging Ngspice + + --enable-ansi + Configure will try to find an option for your compiler so that + it expects ansi-C. + +--enable-asdebug + Debug sensitivity code *ASDEBUG*. + + --enable-blktmsdebug + Debug distortion code *BLOCKTIMES* + + --enable-checkergcc + Option for compilation with checkergcc. + + --enable-cpdebug + Enable ngspice shell code debug. + + --disable-debug + This option will remove the '-g' option passed to the compiler. + This speeds up compilation a *lot*, and is recommended for + normal use. + + --enable-ftedebug + Enable ngspice frontend debug. + + --enable-gc + Enable the Boehm-Weiser Conservative Garbage Collector. + + --enable-pzdebug + Debug pole/zero code. + + --enable-sensdebug + Debug sensitivity code *SENSDEBUG*. + + --enable-smltmsdebug + Debug distortion code *SMALLTIMES* + + --enable-smoketest + Enable smoketest compile. + + --enable-stepdebug + Turns on debugging of convergence stepping?? + + +2 Compilers and Options + ===================== + + Some systems require unusual options for compilation or linking that + the `configure' script does not know about. You can give `configure' + initial values for variables by setting them in the environment. Using + a Bourne-compatible shell, you can do that on the command line like + this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + + Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +3 Compiling For Multiple Architectures + ==================================== + + You can compile the package for more than one kind of computer at the + same time, by placing the object files for each architecture in their + own directory. To do this, you must use a version of `make' that + supports the `VPATH' variable, such as GNU `make'. `cd' to the + directory where you want the object files and executables to go and run + the `configure' script. `configure' automatically checks for the + source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' + variable, you have to compile the package for one architecture at a time + in the source code directory. After you have installed the package for + one architecture, use `make distclean' before reconfiguring for another + architecture. + +4 Installation Names + ================== + + By default, `make install' will install the package's files in + `/usr/local/bin', `/usr/local/man', etc. You can specify an + installation prefix other than `/usr/local' by giving `configure' the + option `--prefix=PATH'. + + You can specify separate installation prefixes for + architecture-specific files and architecture-independent files. If you + give `configure' the option `--exec-prefix=PATH', the package will use + PATH as the prefix for installing programs and libraries. + Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give + options like `--bindir=PATH' to specify different values for particular + kinds of files. Run `configure --help' for a list of the directories + you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed + with an extra prefix or suffix on their names by giving `configure' the + option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + When installed on MinGW with MSYS alternative paths are not fully supported. + See 'How to make ngspice with MINGW and MSYS' below for details. + + +5 Optional Features + ================= + + Some packages pay attention to `--enable-FEATURE' options to + `configure', where FEATURE indicates an optional part of the package. + They may also pay attention to `--with-PACKAGE' options, where PACKAGE + is something like `gnu-as' or `x' (for the X Window System). The + `README' should mention any `--enable-' and `--with-' options that the + package recognizes. + + For packages that use the X Window System, `configure' can usually + find the X include and library files automatically, but if it doesn't, + you can use the `configure' options `--x-includes=DIR' and + `--x-libraries=DIR' to specify their locations. + +6 Specifying the System Type + ========================== + + There may be some features `configure' can not figure out + automatically, but needs to determine by the type of host the package + will run on. Usually `configure' can figure that out, but if it prints + a message saying it can not guess the host type, give it the + `--host=TYPE' option. TYPE can either be a short name for the system + type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + + See the file `config.sub' for the possible values of each field. If + `config.sub' isn't included in this package, then this package doesn't + need to know the host type. + + If you are building compiler tools for cross-compiling, you can also + use the `--target=TYPE' option to select the type of system they will + produce code for and the `--build=TYPE' option to select the type of + system on which you are compiling the package. + +7 Sharing Defaults + ================ + + If you want to set default values for `configure' scripts to share, + you can create a site shell script called `config.site' that gives + default values for variables like `CC', `cache_file', and `prefix'. + `configure' looks for `PREFIX/share/config.site' if it exists, then + `PREFIX/etc/config.site' if it exists. Or, you can set the + `CONFIG_SITE' environment variable to the location of the site script. + A warning: not all `configure' scripts look for a site script. + +8 Operation Controls + ================== + + `configure' recognizes the following options to control how it + operates. + + `--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + + `--help' + Print a summary of the options to `configure', and exit. + + `--quiet' + `--silent' + `-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + + `--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + + `--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + + `configure' also accepts some other, not widely useful, options. + + + +9 NGSPICE COMPILATION UNDER WINDOWS OS + ==================================== + +9.1 How to make ngspice with MINGW and MSYS + + Creating ngspice with MINGW is a straight forward procedure, + if you have MSYS/MINGW installed properly. You will need some enhancements + to the standard install (FLEX and BISON have to be made available in MSYS). + Some links are given below which describe the procedures. + + Installing from the tarball, e.g. ngspice-26.tar.gz, is now simple: After + expanding, you may just run ./compile_min.sh from the ngspice-26 directory. + + The default installation location of ngspice is the Windows path + C:\spice. The install path can be altered by passing --prefix=NEWPATH + as an argument to ./configure during the build process. + + Put the install path you desire inside "", e.g. "D:/NewSpice". Be + careful to use forward slashes "/", not backward slashes "\" (something + still to be fixed). Then add --prefix="D:/NewSpice" as an argument to + ./configure in the normal way. + + The procedure of compiling a distribution (for example, a tarball from + the ngspice website), is as follows: + + $ cd ngspice-26 + $ mkdir release + $ cd release + $ ../configure --with-wingui ...and other options + $ make + $ make install + + The most useful options are: + --enable-xspice + --enable-cider + --disable-debug (-O2 optimization, no debug information) + + A fully featured ngspice on Windows may be obtained with the following commands: + $ ./autogen.sh --adms + $ mkdir release + $ cd release + $ ../configure --with-wingui --enable-cider --disable-debug --enable-openmp --enable-xspice --enable-adms + $ make install + + However, to compile code extracted from the git repository the procedure is + a little different. Firstly install git, e.g. from http://git-scm.com/download/win + To obtain ngspice, you may do the following: + + Open the git command window. Go to a directory of your choice, e.g. D:\Spice + $ cd /d/Spice + + Issue the command for downloading ngspice: + $ git clone git://ngspice.git.sourceforge.net/gitroot/ngspice/ngspice + + This will create directory /ngspice . + + Go to directory ngspice + $ cd /d/Spice/ngspice + Start compiling, e.g. by calling + $ ./autogen.sh --adms + $ ./compile_min.sh + + Update the ngspice files: + Go to directory ngspice + $ cd /d/Spice/ngspice + Issue command for update + $ git pull + + Instead of calling ./compile_min.sh, you may choose to issue + individual commands like: + $ cd ngspice + $ ./autogen.sh + $ mkdir release + $ cd release + $ ../configure --enable-maintainer-mode --with-wingui ...and other options + $ make + $ make install + + MINGW and MSYS can be downloaded from http://www.mingw.org/. The making of + ngspice and the code models *.cm for XSpice requires installation of BISON + and FLEX to MSYS. A typical installation was tested with: + + bison-2.0-MSYS.tar.gz + flex-2.5.4a-1-bin.zip + libiconv-1.9.2-1-bin.zip + libintl-0.14.4-bin.zip + + Bison 2.0 is now superseeded by newer releases (Bison 2.3, see + http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879) + + The last three are from + http://sourceforge.net/project/showfiles.php?group_id=23617. + + Installing from git needs more packages to MSYS in advance: + git, automake, autoconf, libtool + + You may also look at + http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite + http://www.mingw.org/wiki/MSYS + http://www.mingw.org/wiki/HOWTO_Create_an_MSYS_Build_Environment. + + An alternative compiler setup is available at + http://tdm-gcc.tdragon.net/ + + +9.2 make ngspice with MS Visual Studio 2008 + + ngspice may be compiled with MS Visual Studio 2008 or 2010. + + CIDER and XSPICE are included, but the code models for XSPICE + (*.cm) are not (yet) made. You may however use the code models + created with MINGW (which in fact are dlls), as e.g. found in + the ngspice binary distribution our made as described in 9.1. + + There is currently no installation procedure provided, you may + however install the executable manually as described in the + installation tree below. + + The directory (visualc) with its files + vngspice.sln (project starter) and + vngspice.vcproj (project contents) + allows to compile and link ngspice with MS Visual Studio 2008. + Newer Visual Studio versions will translate the project files + into their compatible format (tested with MS Visual Studio 2010). + + /visualc/include contains a dedicated config.h file. It contains the + preprocessor definitions required to properly compile the code. + strings.h has been necessary during setting up the project. + + Install Microsoft Visual Studio 2008 C++ . The + MS VS 2008 C++ Express Edition (which is available at no cost from + http://www.microsoft.com/express/product/default.aspx) is adequate. + + Goto /ngspice/visualc. + + Start MS Visual Studio 2008 by double click onto vngspice.sln. + + After MS Visual Studio has opened up, select debug or release version + by checking 'Erstellen' , 'Konfigurations-Manager' 'Debug' or 'Release'. + + Start making ngspice (called vngspice.exe) by selecting 'Erstellen' and + 'vngspice neu erstellen'. + + Object files will be created and stored in visualc/debug or visualc/release. + The executable will be stored to visualc/debug/bin or visualc/release/bin. + + An installation tree (as provided with MINGW make install) and also used by + vngspice is (maybe created manually): + + C:\Spice\ + bin\ + ngspice.exe + nghelp.exe + ngmakeidx.exe + ngnutmeg.exe + cmpp.exe + lib\ + spice\ + analog.cm + digital.cm + spice2poly.cm + extradev.cm + extravt.cm + share\ + info\ + dir + ngspice.info + ngspice.info-1 + .. + ngspice.info-10 + man\ + man1\ + ngmultidec.1 + ngnutmeg.1 + ngsconvert.1 + ngspice.1 + ngspice\ + helpdir\ + ngspice.idx + ngspice.txt + scripts\ + ciderinit + devaxis + devload + setplot + spectrum + spinit + + If you intend to install vngspice into another directory, e.g. D:\MySpice, + you have to edit /visualc/include/config.h and alter the entries: + #define NGSPICEBINDIR "C:/Spice/bin" + #define NGSPICEDATADIR "C:/Spice/share/ngspice" + to + #define NGSPICEBINDIR "D:/MySpice/bin" + #define NGSPICEDATADIR "D:/MySpice/share/ngspice" + + If the code model files *.cm are not available, you will get warning messages, + but you may use ngspice in the normal way (of course without XSPICE extensions). + + + +9.3 make ngspice with pure CYGWIN + + If you don't have libdl.a you may need to link libcygwin.a + to libdl.a symbolically. + + for example: + + $ cd /lib + $ ln -s libcygwin.a libdl.a. + + The procedure of compiling is the same as Linux. + + +9.4 ngspice console app with MINGW or CYGWIN + + Omitting the configure flag --with-wingui will yield a console ngspice. + You then will not have any graphics interface. In CYGWIN you may add --with-x + for the X11 graphics (not available in mingw). A typical configure command + may look like + ./configure --enable-adms --enable-xspice --enable-cider --enable-openmp + --disable-debug CFLAGS=-m32 LDFLAGS=-m32 prefix=C:/Spice + tested with TDM mingw. + + + +10 NGSPICE COMPILATION UNDER MAC OS X + ================================== + +10.1 Use precompiled binary package + 1. Install an X11 interface (like Xquartz) + 2. Install the downloaded NGSPICE package + 3. Open a terminal window and start using NGSPICE + +10.2 Compile NGSPICE manually from a tarball + 1. Install an X11 interface (like Xquartz) + 2. Install MacPorts from http://www.macports.org + 3. Execute this command: + sudo port install bison flex ncurses xorg-libXaw + 4. Configure NGSPICE invoking "./configure". A complete set of feature is: + ./configure --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no + 5. Compile NGSPICE invoking "make" + 6. Install NGSPICE invoking "make install" or "sudo make install" + +10.3 Compile NGSPICE manually from git + 1. Install an X11 interface (like Xquartz) + 2. Install MacPorts from http://www.macports.org + 3. Execute this command: + sudo port install automake autoconf libtool bison flex ncurses xorg-libXaw + 4. Execute this command: + ./autogen.sh or ./autogen.sh --adms (if you want to enable ADMS) + 5. Configure NGSPICE invoking "./configure". A complete set of feature is: + ./configure --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no + ./configure --enable-adms --enable-cider --enable-xspice --enable-openmp --enable-pss --enable-debug=no (if you want to enable ADMS) + 6. Compile NGSPICE invoking "make" + 7. Install NGSPICE invoking "make install" or "sudo make install" diff --git a/Windows/spice/doc/NEWS b/Windows/spice/doc/NEWS new file mode 100644 index 00000000..dcbf695a --- /dev/null +++ b/Windows/spice/doc/NEWS @@ -0,0 +1,578 @@ +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/doc/README b/Windows/spice/doc/README new file mode 100644 index 00000000..f5dfecc5 --- /dev/null +++ b/Windows/spice/doc/README @@ -0,0 +1,54 @@ +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. + + +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 summary page is http://sourceforge.net/projects/ngspice diff --git a/Windows/spice/doc/ngspice26-manual.pdf b/Windows/spice/doc/ngspice26-manual.pdf Binary files differnew file mode 100644 index 00000000..4bd5b091 --- /dev/null +++ b/Windows/spice/doc/ngspice26-manual.pdf |