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