From b19641dcc2421231c4be40075b9950a387065f6e Mon Sep 17 00:00:00 2001 From: h_vogt Date: Sat, 4 Jan 2014 15:42:57 +0100 Subject: [PATCH] whitespace --- ANALYSES | 72 ++++++------- AUTHORS | 2 +- BUGS | 16 +-- COPYING | 120 ++++++++++----------- DEVICES | 84 +++++++-------- FAQ | 204 ++++++++++++++++++------------------ INSTALL | 244 +++++++++++++++++++++---------------------- NEWS | 252 ++++++++++++++++++++++----------------------- README | 48 ++++----- README.adms | 48 ++++----- README.tcl | 20 ++-- Stuarts_Poly_Notes | 2 +- 12 files changed, 556 insertions(+), 556 deletions(-) diff --git a/ANALYSES b/ANALYSES index 9afb318ce..5f9dc2b67 100644 --- a/ANALYSES +++ b/ANALYSES @@ -7,7 +7,7 @@ This file lists the analyses currently implemented into ngspice. Table of Contents - 1 Noise analysis (NOISE) + 1 Noise analysis (NOISE) 2 Operating point analysis (OP) 3 Operating point sweep Analysis (DC) 3.1 Enhancements @@ -24,85 +24,85 @@ Table of Contents 1 Noise analysis (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 + 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. - + 2 Operating point analysis (OP) - The operating point analysis determines the dc operating point of the + 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 + 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. 3.1 Enhancements - + Added resistance and temperature sweep. 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. + 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. 5 Small-Signal distortion analysis (DISTO) - The distortion analysis computes steady-state harmonic and intermodulation + 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 + 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 + 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 + 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 + 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. + + +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/AUTHORS b/AUTHORS index fd434e3b0..6a46aa674 100644 --- a/AUTHORS +++ b/AUTHORS @@ -2,7 +2,7 @@ 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. +releasing patches to the original code through the Internet. The following people have contributed in some way: diff --git a/BUGS b/BUGS index f8da85f85..b338848fb 100644 --- a/BUGS +++ b/BUGS @@ -5,16 +5,16 @@ 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 + * 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 + + * 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 +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. @@ -29,7 +29,7 @@ OPEN BUGS: 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 diff --git a/COPYING b/COPYING index 29f5d1047..5a82c58aa 100644 --- a/COPYING +++ b/COPYING @@ -1,82 +1,82 @@ 12345678901234567890123456789012345678901234567890123456789012345678901234567890 Ngspice-25 -Copyright (c) 2012, +Copyright (c) 2012, All rights reserved. Foreword: -Spice's name was originally chosen at the University of California, Berkeley. -As it is the basis of almost all circuit simulators, the major part of the -analogue and mixed signals simulation's code is designed to fit with it. +Spice's name was originally chosen at the University of California, Berkeley. +As it is the basis of almost all circuit simulators, the major part of the +analogue and mixed signals simulation's code is designed to fit with it. The *spices (generic name for its forks) are heterogeneous in many points due to the work of researchers, electronic designers, software editors, etc. -The Ngspice team tries to collect work from the different sources and -contribute new functionalities. Thus, the material we manipulate is +The Ngspice team tries to collect work from the different sources and +contribute new functionalities. Thus, the material we manipulate is heterogeneous in licenses. Keeping the licenses as is, is the way to live with that diversity. For release 25 as well, we choose not to relicense. -Copyleft is a fundamental question in FOSS development. The choice of a +Copyleft is a fundamental question in FOSS development. The choice of a copylefted contribution, or a non copylefted contribution is an important choice that should be respected. Ngspice branch as a whole will not be covered -by a specific license. The Ngspice team wants to encourage contributions to -ngspice. We let each new developper choose its position regarding copyleft, -as we respect the position of the former developpers. In order to keep things +by a specific license. The Ngspice team wants to encourage contributions to +ngspice. We let each new developper choose its position regarding copyleft, +as we respect the position of the former developpers. In order to keep things clear ngspice team proposes to follow the following guidelines: - Each piece of code should be kept under its original contributor's license. + Each piece of code should be kept under its original contributor's license. As for any project, modifications made in sources covered by a less - restrictive license can be covered by a more restrictive license, such as + restrictive license can be covered by a more restrictive license, such as GPL. We do not encourage it. If you feel to add code in a file under a different license than the rest of the file, please use comments to mark the boundaries of the modification, and - edit the comments at the begining of the file with correct license and + edit the comments at the begining of the file with correct license and copyright information. - We encourage restrictive licenses to be chosen only for new functionalities, - written in distinct files, leading to distinct libraries that links depending + We encourage restrictive licenses to be chosen only for new functionalities, + written in distinct files, leading to distinct libraries that links depending on a specific configure flag. We encourage non proliferation of licenses (e.g. choosing either GPL, LGPL or - new BSD). + new BSD). -This heterogenous license status makes it difficult to know which license -applies. Please take care of knowing which license aplies to the code you are -editing, or conveying and not to commit license infringements, especially to +This heterogenous license status makes it difficult to know which license +applies. Please take care of knowing which license aplies to the code you are +editing, or conveying and not to commit license infringements, especially to GPL and LGPL which are quite restrictive. -On 2007, July 17th spice 3f5 changed from its original license to the new BSD +On 2007, July 17th spice 3f5 changed from its original license to the new BSD license. (http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm) -On 2008, December 1st, tclspice changes license from GPL to LGPLv2, in +On 2008, December 1st, tclspice changes license from GPL to LGPLv2, in accordance with Multigig Ltd, the copyright holder. The following table is just a reminder on license status, please don't rely -on it: - Author License Notes - -numparam Georg Post LGPL Applies to the code in - frontend/numparam -adms Laurent Lemaitre LGPL Applies to scripts in the +on it: + Author License Notes + +numparam Georg Post LGPL Applies to the code in + frontend/numparam +adms Laurent Lemaitre LGPL Applies to scripts in the spicelib/dev/adms -tclspice Stefan Jones LGPL TCL integration +tclspice Stefan Jones LGPL TCL integration cider U. of California Old BSD Device level simulator -xspice Georgia Tech. Public D Mixed signals +xspice Georgia Tech. Public D Mixed signals spice U. of California New BSD Analog circuit simulation - - + + ---------------------------------- Cider ----------------------------------- - + RESEARCH SOFTWARE AGREEMENT - + This file specifies the terms under which the software and documentation provided with this distribution are provided. - + Software is distributed as is, completely without warranty or service support. The University of California and its employ- ees are not liable for the condition or performance of the software. - + The University does not warrant that it owns the copyright or other proprietary rights to all software and documentation provided under this agreement, notwithstanding any copyright @@ -84,35 +84,35 @@ spice U. of California New BSD Analog circuit simulation or proprietary rights brought by third parties against the reci- pient of the software and documentation provided under this agreement. - + THE UNIVERSITY OF CALIFORNIA HEREBY DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE UNIVERSITY IS NOT LIABLE FOR ANY DAMAGES INCURRED BY THE RECIPIENT IN USE OF THE SOFTWARE AND DOCUMENTATION, INCLUDING DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES. - + The University of California grants the recipient the right to modify, copy, and redistribute the software and documentation, both within the recipient's organization and externally, subject to the following restrictions: - - + + (a) The recipient agrees not to charge for the University of California code itself. The recipient may, however, charge for additions, extensions, or support. - + (b) In any product based on the software, the recipient agrees to acknowledge the research group that developed the software. This acknowledgement shall appear in the product documentation. - + (c) The recipient agrees to obey all U.S. Government restric- tions governing redistribution or export of the software and documentation. ----------------------------------- Spice3f5 -------------------------------- +---------------------------------- Spice3f5 -------------------------------- Copyright (c) 1985-1991 The Regents of the University of California. All rights reserved. @@ -135,8 +135,8 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -------------------------------- Tclspice -------------------------------- - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 + 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 @@ -147,7 +147,7 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] - Preamble + Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public @@ -249,7 +249,7 @@ modification follow. Pay close attention to the difference between a 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 + GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other @@ -283,7 +283,7 @@ 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 @@ -569,7 +569,7 @@ 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 + 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. @@ -593,17 +593,17 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ---------------------------------- Xspice -------------------------------- -THE SOFTWARE PROGRAMS BELOW ARE IN THE PUBLIC DOMAIN AND ARE PROVIDED FREE OF -ANY CHARGE. THE GEORGIA TECH RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF +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 +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE +ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH THE USER. +SHOULD THE PROGRAM PROVE DEFECTIVE, THE USER ASSUMES THE ENTIRE COST OF ALL +NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL THE GEORGIA TECH +RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF TECHNOLOGY, AND/OR OTHER PARTIES +PROVIDING THE PROGRAMS BELOW BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS). diff --git a/DEVICES b/DEVICES index b7329f20a..92a48e51d 100644 --- a/DEVICES +++ b/DEVICES @@ -27,7 +27,7 @@ Table of contents 5.2 SW - Voltage controlled switch 6. Diodes 6.1 DIO - Junction Diode -7. Bipolar devices +7. Bipolar devices 7.1 BJT - Bipolar Junction Transistor 7.2 BJT2 - Bipolar Junction Transistor 7.3 VBIC - Bipolar Junction Transistor @@ -79,7 +79,7 @@ will be updated every time the device specific code is altered or changed to ref 2.1 CAP - Linear capacitor - + Ver: N/A Class: C Level: 1 (and only) @@ -96,7 +96,7 @@ will be updated every time the device specific code is altered or changed to ref 2.2 IND - Linear Inductor - + Ver: N/A Class: L Level: 1 (and only) @@ -163,7 +163,7 @@ will be updated every time the device specific code is altered or changed to ref - Does not implement parallel code switches. 3.3 TRA - Transmission line - + Ver: N/A Class: T Level: 1 (and only) @@ -206,7 +206,7 @@ will be updated every time the device specific code is altered or changed to ref 4. Voltage and current sources 4.1 ASRC - Arbitrary Source - + Ver: N/A Class: B Level: 1 (and only) @@ -218,7 +218,7 @@ will be updated every time the device specific code is altered or changed to ref current of current-controlled generators. 4.2 CCCS - Current Controlled Current Source - + Ver: N/A Class: F Level: 1 (and only) @@ -228,7 +228,7 @@ will be updated every time the device specific code is altered or changed to ref - Original spice model. 4.3 CCVS - Current Controlled Voltage Source - + Ver: N/A Class: H Level: 1 (and only) @@ -239,7 +239,7 @@ will be updated every time the device specific code is altered or changed to ref 4.4 ISRC - Independent Current Source - + Ver: N/A Class: I Level: 1 (and only) @@ -292,7 +292,7 @@ will be updated every time the device specific code is altered or changed to ref 5. Switches 5.1 CSW - Current controlled switch - + Ver: N/A Class: W Level: 1 (and only) @@ -331,7 +331,7 @@ will be updated every time the device specific code is altered or changed to ref - Temperature correction of some parameters -7. Bipolar devices +7. Bipolar devices 7.1 BJT - Bipolar Junction Transistor @@ -365,14 +365,14 @@ will be updated every time the device specific code is altered or changed to ref - 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 + 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 @@ -417,10 +417,10 @@ will be updated every time the device specific code is altered or changed to ref 9. HFET Devices - Added code from macspice3f4 HFET1&2 and MESA model + 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 + provided by Trond Ytterdal as of Nov 98 9.1 HFET1 - Heterostructure Field Effect Transistor Level 1 @@ -432,7 +432,7 @@ will be updated every time the device specific code is altered or changed to ref This is the Heterostructure Field Effect Transistor model from: K. Lee, M. Shur, T. A. Fjeldly and T. Ytterdal - "Semiconductor Device Modeling in VLSI", + "Semiconductor Device Modeling in VLSI", 1993, Prentice Hall, New Jersey Enhancements over the original model: @@ -460,7 +460,7 @@ will be updated every time the device specific code is altered or changed to ref 10. MES devices 10.1 MES - MESFET model - + Ver: N/A Class: Z Level: 1 @@ -474,10 +474,10 @@ will be updated every time the device specific code is altered or changed to ref - Alan Gillespie junction diodes implementation - Added code from macspice3f4 HFET1&2 and MESA model + 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 + provided by Trond Ytterdal as of Nov 98 10.2 MESA - MESFET model (MacSpice3f4) @@ -500,7 +500,7 @@ will be updated every time the device specific code is altered or changed to ref 11. MOS devices 11.1 MOS1 - Level 1 MOS model - + Ver: N/A Class: M Level: 1 @@ -514,7 +514,7 @@ will be updated every time the device specific code is altered or changed to ref - Temperature difference from circuit temperature 11.2 MOS2 - Level 2 MOS model - + Ver: N/A Class: M Level: 2 @@ -562,9 +562,9 @@ will be updated every time the device specific code is altered or changed to ref Dir: devices/mos9 Status: - This is a slightly modified Level 3 MOSFET model. + This is a slightly modified Level 3 MOSFET model. (Whatever the implementer have had in mind.) - Not to confuse with Philips level 9. + Not to confuse with Philips level 9. Enhancements over the original model: - Temperature difference from circuit temperature @@ -576,7 +576,7 @@ will be updated every time the device specific code is altered or changed to ref Level: 4 Dir: devices/bsim1 Status: - + Enhancements over the original model: - Parallel multiplier - Noise analysis @@ -589,7 +589,7 @@ will be updated every time the device specific code is altered or changed to ref 11.7 BSIM2 - BSIM model level 2 - + Ver: N/A Class: M Level: 5 @@ -602,7 +602,7 @@ will be updated every time the device specific code is altered or changed to ref 11.8 BSIM3v0 - BSIM model level 3 - + Ver: 3.0 Class: M Level: 8 & 49, version = 3.0 @@ -644,7 +644,7 @@ will be updated every time the device specific code is altered or changed to ref - Multirevision code (supports all 3v3.2 minor revisions) - NodesetFix - + 11.11 BSIM3 - BSIM model level 3 Ver: 3.3.0 @@ -668,7 +668,7 @@ will be updated every time the device specific code is altered or changed to ref 11.12 BSIM4 - BSIM model level 4 - + Ver: 4.2.0 - 4.6.5 Class: M Level: 14 & 54, version = 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 @@ -684,10 +684,10 @@ will be updated every time the device specific code is altered or changed to ref - Parallel Multiplier - NodesetFix - Support for Multi-core processors using OpenMP - + 11.13 HiSIM2 - Hiroshima-university STARC IGFET Model - + Ver: 2.7.0 Class: M Level: 61, 68 @@ -701,7 +701,7 @@ will be updated every time the device specific code is altered or changed to ref 11.14 HiSIM_HV - Hiroshima-University STARC IGFET High Voltage Model - + Ver: 1.2.3 Class: M Level: 62, 73 @@ -733,7 +733,7 @@ will be updated every time the device specific code is altered or changed to ref 12.2 BSIM3SOI_DD - SOI Model (dynamic depletion model) - + Ver: 2.1 Class: M Level: 56 @@ -755,7 +755,7 @@ will be updated every time the device specific code is altered or changed to ref Dir: devices/bsim3soi_pd Status: TO BE TESTED. - PD model has been integrated. There is a bsim3soipd directory + 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 @@ -763,27 +763,27 @@ will be updated every time the device specific code is altered or changed to ref 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 + 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 + - Parallel Multiplier + - Support for Multi-core processors using OpenMP + - 12.5 SOI3 - STAG SOI3 Model - + Ver: 2.6 Class: M Level: 61 @@ -794,9 +794,9 @@ will be updated every time the device specific code is altered or changed to ref 13. Verilog-A models - Configuring ngspice with ADMS (see Readme.adms) following + Configuring ngspice with ADMS (see Readme.adms) following devices are available: - + 13.1 EKV MOS Model Ver: 2.6 @@ -806,9 +806,9 @@ will be updated every time the device specific code is altered or changed to ref EKV version based on a contribution of Ivan Riis Nielsen 11/2006 - Web site at: http://legwww.epfl.ch/ekv/ + Web site at: http://legwww.epfl.ch/ekv/ (but EPFL is not publishing any usefull code) - + 13.2 PSP MOS Model diff --git a/FAQ b/FAQ index a3edb8438..a045f2c32 100644 --- a/FAQ +++ b/FAQ @@ -52,117 +52,117 @@ 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: - - - Spice3 is a widely used circuit simulator. It was developed by the - University of California at Berkeley (UCB), by "a cast of thousand" + Ngspice is a mixed-level/mixed-signal circuit simulator based on three + open source software packages: Spice3f5, Cider1b1 and Xspice: + + - 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 + + - 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 + - Xspice is an extension to Spice3 that provides code modeling support + and simulation of digital components through an embedded event driven algorithm. - The NG prefix has lot of meanings: Next Generation, New Good, etc. - Choose or invent the one you prefer. The heart of the project is the + The NG prefix has lot of meanings: Next Generation, New Good, etc. + Choose or invent the one you prefer. The heart of the project is the ngspice program. 1.2 What is tclspice ? - Tclspice is a circuit simulator that embeds ngspice and provides a + Tclspice is a circuit simulator that embeds ngspice and provides a tcl/tk interface to the user. Tclspice is both a batch and interactive - simulator and a building block for simulator applications. Analyses can + simulator and a building block for simulator applications. Analyses can be run from a tcl script and vector plotted or post processed using tcl or a small GUI can be built to analyze a circuit or a set of circuits. Tclspice is obtained compiling ngspice activating an additional option. - + 1.3 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 + 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.4 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 + 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. + of the project. Improvements in the postprocessing (data handling + capabilities) and user interface are other goals. - 1.5 What you are going to do? + 1.5 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 + 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 + thus allowing people to use the netlist generated for such tools. As most of the commercial simulators avaiable 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. - + foundries. + + Compact models: The interest in using ngspice is intimately connected - to the available models. To provide the latest models available for + 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 + + 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. This is a very time consuming task and probably the + for the new manual. It will be constantly improved during ngspice + development and integrated with the documentation accompanying Xspice + and Cider. This is a very time consuming task and probably the documentation will always be left slightly behind. - + 1.6 Legal issues - Ngspice, starting from release rework-18 is released under BSD/LGPL + Ngspice, starting from release rework-18 is released under BSD/LGPL license. Part of the code are covered by other compatible licenses: - spice3 and cider are BSD, xspice is Public Domain and TCLSPICE is + spice3 and cider are BSD, xspice is Public Domain and TCLSPICE is LGPL and the copyright is of their respective owners (need to write better) 1.7. What mailing lists exist for ngspice? - There are two general mailing lists dedicated to the ngspice project. - + There are two general mailing lists dedicated to the ngspice project. + Users mailing list: This list is for ngspice users, examples, problems, bug reports - and general discussion on ngspice can be sent here. - + and general discussion on ngspice can be sent here. + Developers mailing list: - The list dedicated to ngspice development. Developers shold + The list dedicated to ngspice development. Developers shold subscribe here, to follow the program development. May be used - to send patches, and technical discussion on ngspice. - + to send patches, and technical discussion on ngspice. + Send an empty message with Subject "help" to the following addresses to get instructions. - + @@ -182,13 +182,13 @@ 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/projects/ngspice - - (look for the "Lists" link). Old messages from the pre-sourceforge + + (look for the "Lists" link). Old messages from the pre-sourceforge age are available at: - - http://ngspice.sourceforge.net/lists.html + + http://ngspice.sourceforge.net/lists.html 1.9. What newsgroups exist for ngspice? @@ -196,9 +196,9 @@ There is no ngspice specific newsgroup. Anyway ngspice threads appear on newsgroups dedicated to circuit simulation and electronic design. An (incomplete) list is: - + sci.electronics.cad - comp.lsi.cad + comp.lsi.cad 1.10. Where can I get a copy of ngspice? @@ -211,24 +211,24 @@ 1.11. Where should I look on the World Wide Web for ngspice stuff? Look at the official Ngpice Web Page: - - http://ngspice.sourceforge.net + + http://ngspice.sourceforge.net 1.12. 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 - + There are a lot of Internet sites that have information on spice. The best way is to ask your preferred search engine. Some interesting - sites are: - + sites are: + Pages on Spice: http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/ http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm http://newton.ex.ac.uk/teaching/CDHW/Electronics2/userguide/index.html#toc - + Xspice Page: http://users.ece.gatech.edu/~mrichard/Xspice @@ -242,42 +242,42 @@ 2.1. What is the current version? - The latest version released is: - + The latest version released is: + * ngspice-rework-25 (released on 04/01/2013) - + 2.2. What are the latest features in the current release? - New features: - + add temperature coefficients for B source - + commands "mdump", "mrdump" to dump matrix to file - + allow `time', `temper', and `hertz' in expressions with behavioral R, L, C - + Enable ctrl-c to interrupt a simulation also for Windows GUI - + tests/bsim4: use the standard CMC model check - + implement exit code for command "quit" - + .nodeset all = value - + memristor code model in extradev - + new scalable diode model including tunnel component - + variable xtrtol may override the XSPICE reduction of trtol - + XSPICE example: delta-sigma converter - + XSPICE: new d_source model - + new option noopac - + bsim3: make additonal parameters accessible with @mxx[par] - + enable Mac OS X compilation - + option reseries = val - + commands "snsave", "snload" - + update hisim to version 2.7.0, new qa tests - + hisimhv update to version 1.2.3, new qa tests - + allow Ctrl-d to quit - + jfet model temperature extension, tcv and bex parameter - + speed up vector handling by hash table for vector address storage and retrieval - + update PSS code + + add temperature coefficients for B source + + commands "mdump", "mrdump" to dump matrix to file + + allow `time', `temper', and `hertz' in expressions with behavioral R, L, C + + Enable ctrl-c to interrupt a simulation also for Windows GUI + + tests/bsim4: use the standard CMC model check + + implement exit code for command "quit" + + .nodeset all = value + + memristor code model in extradev + + new scalable diode model including tunnel component + + variable xtrtol may override the XSPICE reduction of trtol + + XSPICE example: delta-sigma converter + + XSPICE: new d_source model + + new option noopac + + bsim3: make additonal parameters accessible with @mxx[par] + + enable Mac OS X compilation + + option reseries = val + + commands "snsave", "snload" + + update hisim to version 2.7.0, new qa tests + + hisimhv update to version 1.2.3, new qa tests + + allow Ctrl-d to quit + + jfet model temperature extension, tcv and bex parameter + + speed up vector handling by hash table for vector address storage and retrieval + + update PSS code - Bug fixes: - + many, many ... please see - http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0 + + 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 @@ -293,11 +293,11 @@ 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 + 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. + manual. 2.5. How can I report a bug/request for a feature? @@ -308,14 +308,14 @@ 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. @@ -327,21 +327,21 @@ 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 + 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 :). - + + This is a one-million-euros question :). + Write a mail to the user's list describing the problem and providing information on the type of hardware, the flavour of operating system. 3.3. This document didn't answer my question. Where else can I look for an answer? - + Read old messages from the mailing list archive, search the web site or read the docs. Upgrade to the latest version of ngspice, many problems are fixed in the new versions. If you still can't find an diff --git a/INSTALL b/INSTALL index e468319cf..ef2aa8162 100644 --- a/INSTALL +++ b/INSTALL @@ -23,7 +23,7 @@ Table of contents 9.2 make ngspice with MS Visual Studio 2008 9.3 make ngspice with pure CYGWIN 9.4 ngspice console app with MINGW or CYGWIN - + This file describes the procedures to install ngspice from sources. @@ -35,66 +35,66 @@ This file describes the procedures to install ngspice from sources. 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. + Ngspice is developed on GNU/Linux with gcc and GNU make. - The following software must be installed in your system to compile ngspice: + 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. + additional software: autoconf, automake, libtool, texinfo. 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 + + 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-25.tar.gz) - This covers installation from a release distribution (for example + This covers installation from a release distribution (for example ngspice-25.tar.gz, the so called tar ball). - + After downloading the tar ball to a local directory unpack it using: $ tar -zxvf ngspice-25.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 + + 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 + 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 + $ ../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 @@ -109,7 +109,7 @@ This file describes the procedures to install ngspice from sources. 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 + 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 @@ -118,14 +118,14 @@ This file describes the procedures to install ngspice from sources. $ ../configure --enable-maintainer-mode $ make $ sudo make install - - See the section titled 'Advanced Install' for instructions about arguments + + 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 smaller and speed optimized - executable). - + executable). + A fully featured ngspice on LINUX may be obtained with the following commands: $ ./autogen.sh --adms $ mkdir release @@ -133,14 +133,14 @@ This file describes the procedures to install ngspice from sources. $ ../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 proccess, 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 + + If a problem is found with the build proccess, 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 + If you have fixed the problem then the development team will love to hear from you. - + 1.4 Advanced Install @@ -148,52 +148,52 @@ This file describes the procedures to install ngspice from sources. 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 + 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-25) 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. + 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 + 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. + + --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. - + 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 + and add -O2 optimisation (instead of default O0). + This speeds up simulating significantly, and is recommended for normal use. - - + + 1.4.2 Options Specific to Using Ngspice -Most of the options now following are not well maintained, are not tested or even maybe obsolete. +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 + Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd voltages are unchanged. --enable-cluster @@ -201,24 +201,24 @@ Most of the options now following are not well maintained, are not tested or eve 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 + --enable-expdevices + Enable experimental devices. This option is used by developers to mask devices under development. Almost useless for users. --enable-experimental This enables some experimental code. Specifically it enables: - * The ability to save and load snapshots: adds + * The ability to save and load snapshots: adds interactive keywords 'savesnap' and 'loadsnap'. - --enable-help + --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 + For more information, please visit the homepage of GSS at http://gss-tcad.sourceforge.net - + --enable-newpred Enable the NEWPRED symbol in the code. @@ -230,10 +230,10 @@ Most of the options now following are not well maintained, are not tested or eve --enable-nobypass Don't bypass recalculations of slowly changing variables - + --enable-predictor Enable a predictor method for convergence - + --enable-sense2 Use spice2 sensitivity analysis @@ -246,7 +246,7 @@ Most of the options now following are not well maintained, are not tested or eve See http://www.thrysoee.dk/editline/ --with-tcl=tcldir - When configured with this option the tcl module + When configured with this option the tcl module "tclspice" is compiled and installed instead of plain ngspice. @@ -259,18 +259,18 @@ Most of the options now following are not well maintained, are not tested or eve No graphics inetrface is provided, this has to be handled by the controlling application. - + 1.4.3 Options Useful for Debugging Ngspice --enable-ansi - Configure will try to find an option for your compiler so that + 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-blktmsdebug + Debug distortion code *BLOCKTIMES* --enable-checkergcc Option for compilation with checkergcc. @@ -280,18 +280,18 @@ Most of the options now following are not well maintained, are not tested or eve --disable-debug This option will remove the '-g' option passed to the compiler. - This speeds up compilation a *lot*, and is recommended for + This speeds up compilation a *lot*, and is recommended for normal use. --enable-ftedebug Enable ngspice frontend debug. - + --enable-gc Enable the Boehm-Weiser Conservative Garbage Collector. --enable-pzdebug Debug pole/zero code. - + --enable-sensdebug Debug sensitivity code *SENSDEBUG*. @@ -300,11 +300,11 @@ Most of the options now following are not well maintained, are not tested or eve --enable-smoketest Enable smoketest compile. - + --enable-stepdebug Turns on debugging of convergence stepping?? - - + + 2 Compilers and Options ===================== @@ -445,22 +445,22 @@ Most of the options now following are not well maintained, are not tested or eve ==================================== 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-25.tar.gz, is now simple: After + 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-25.tar.gz, is now simple: After expanding, you may just run ./compile_min.sh from the ngspice-25 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 + 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 @@ -477,23 +477,23 @@ Most of the options now following are not well maintained, are not tested or eve --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. To obtain ngspice, you may do the following: - + 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 @@ -508,7 +508,7 @@ Most of the options now following are not well maintained, are not tested or eve Issue command for update $ git pull - Instead of calling ./compile_min.sh, you may choose to issue + Instead of calling ./compile_min.sh, you may choose to issue individual commands like: $ cd ngspice $ ./autogen.sh @@ -518,30 +518,30 @@ Most of the options now following are not well maintained, are not tested or eve $ 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 + 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 + 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 + The last three are from http://sourceforge.net/project/showfiles.php?group_id=23617. - - Installing from git needs more packages to MSYS in advance: + + Installing from git needs more packages to MSYS in advance: git, automake, autoconf, libtool - You may also look at + 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 + + An alternative compiler setup is available at http://tdm-gcc.tdragon.net/ @@ -553,41 +553,41 @@ Most of the options now following are not well maintained, are not tested or eve (*.cm) are not (yet) made. You may however use the code models created with MINGW (which in fact are dlls), as e.g. found in the ngspice binary distribution our made as described in 9.1. - + There is currently no installation procedure provided, you may however install the executable manually as described in the installation tree below. - - The directory (visualc) with its files + + The directory (visualc) with its files vngspice.sln (project starter) and vngspice.vcproj (project contents) allows to compile and link ngspice with MS Visual Studio 2008. The project is probably not compatible with Visual Studio 2005. - + /visualc/include contains a dedicated config.h file. It contains the preprocessor definitions required to properly compile the code. strings.h has been necessary during setting up the project. - + Install Microsoft Visual Studio 2008 C++ . The MS VS 2008 C++ Express Edition (which is available at no cost from http://www.microsoft.com/express/product/default.aspx) is adequate. - + Goto /ngspice/visualc. - + Start MS Visual Studio 2008 by double click onto vngspice.sln. - - After MS Visual Studio has opened up, select debug or release version + + 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 + + Start making ngspice (called vngspice.exe) by selecting 'Erstellen' and 'vngspice neu erstellen'. - + Object files will be created and stored in visualc/debug or visualc/release. The executable will be stored to visualc/debug/bin or visualc/release/bin. - + An installation tree (as provided with MINGW make install) and also used by vngspice is (maybe created manually): - + C:\Spice\ bin\ ngspice.exe @@ -626,23 +626,23 @@ Most of the options now following are not well maintained, are not tested or eve setplot spectrum spinit - + If you intend to install vngspice into another directory, e.g. D:\MySpice, you have to edit /visualc/include/config.h and alter the entries: #define NGSPICEBINDIR "C:/Spice/bin" #define NGSPICEDATADIR "C:/Spice/share/ngspice" to #define NGSPICEBINDIR "D:/MySpice/bin" - #define NGSPICEDATADIR "D:/MySpice/share/ngspice" - + #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). - + 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 + If you don't have libdl.a you may need to link libcygwin.a to libdl.a symbolically. for example: @@ -654,12 +654,12 @@ Most of the options now following are not well maintained, are not tested or eve 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 + + 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 + ./configure --enable-adms --enable-xspice --enable-cider --enable-openmp --disable-debug CFLAGS=-m32 LDFLAGS=-m32 prefix=C:/Spice tested with TDM mingw. diff --git a/NEWS b/NEWS index c890ffc87..c56cfea56 100644 --- a/NEWS +++ b/NEWS @@ -2,99 +2,99 @@ 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 + + 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 + + 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 + + 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 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 + + 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 + + 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 + + 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 - + + 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 + + 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 - + + 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 ============ @@ -107,11 +107,11 @@ Ngspice-22, Sept 26th, 2010 + 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 + + 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 + + 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 @@ -119,16 +119,16 @@ 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 + +- 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 + + 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 @@ -138,28 +138,28 @@ 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 +- 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 +- 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) +- 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 +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 +- 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 +- 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. +- Rework of BSim models, integration of EPFL-EKV model V2.63, ADMS models + mextram, hicum0, hicum2. Ng-spice-rework-18 @@ -187,7 +187,7 @@ into the simulator. Ng-spice-rework-17 ============ -This is a bug fix release. Previous release tarball did not included +This is a bug fix release. Previous release tarball did not included an include file necessary for compiling numparam library. @@ -198,51 +198,51 @@ 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 + 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 + 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. - +- 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: +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. @@ -250,11 +250,11 @@ 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 +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". +"--enable-ekv". The spice code contains an option to debug frontend code, now this is available in configure as "--enable-ftedebug". @@ -266,17 +266,17 @@ 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 +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 +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). + (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. @@ -363,7 +363,7 @@ 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. @@ -377,7 +377,7 @@ Input Read-in and Checking - 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 @@ -404,7 +404,7 @@ Miscellaneous Fixes/Enhancements - 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. + proceeding. .OP printout tidied up a lot to make the printout clearer. @@ -424,17 +424,17 @@ Etc. - 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 +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. +of the simulator from the frontend. Ng-spice-rework-11 ============ -Resistor code (device) has been modified to conform to spice3 device -coding standard. +Resistor code (device) has been modified to conform to spice3 device +coding standard. A new step function (U2) has been introduced. Documentation updated. @@ -483,7 +483,7 @@ 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 @@ -528,7 +528,7 @@ AC resistance. Ng-spice-rework-5 and 5_2 (Jan 2000) ============ -Internal development release, buggy and not working. +Internal development release, buggy and not working. Ng-spice-rework-4 (22/12/99) ============ @@ -540,10 +540,10 @@ 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/README b/README index 586982df6..e02f63f6b 100644 --- a/README +++ b/README @@ -1,60 +1,60 @@ README for NGSPICE ================== -Ngspice is a mixed-level/mixed-signal circuit simulator. Its code -is based on three open source software packages: Spice3f5, Cider1b1 +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 +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 +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 modeling support -and simulation of digital components through an embedded event driven +Xspice is an extension to Spice3C1 that provides code modeling support +and simulation of digital components through an embedded event driven algorithm. -Ngspice is, anyway, a little more than the simple sum of the packages +Ngspice is, anyway, a little 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 +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. +suggestions and reports. What we will be able to do depends mostly on +user interests, contributions and feedback. MAILING LISTS: ------------- - There are two mailing lists dedicated to the use and development of ngspice. + 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-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 + * 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: - + OBSOLETE MAILING LISTS: -------------- - * ngspice-bugs@list.sourceforge.net: - This list is no longer used by the ngspice maintainers. Bug reports should +------------- + * ngspice-bugs@list.sourceforge.net: + This list is no longer used by the ngspice maintainers. Bug reports should go to the ngspice bug tracker. - + WEB SITEs: -------- -This project is hosted on Sourceforge.net. +This project is hosted on Sourceforge.net. The home page is http://ngspice.sourceforge.net The summary page is http://sourceforge.net/projects/ngspice diff --git a/README.adms b/README.adms index ef23bd6e0..2c70c9397 100644 --- a/README.adms +++ b/README.adms @@ -39,8 +39,8 @@ Holger Vogt, May 2013 INTRODUCTION -In this document we will provide a guideline on how to auto-generate the -ready-to compile C code for the ngspice API of a compact device model +In this document we will provide a guideline on how to auto-generate the +ready-to compile C code for the ngspice API of a compact device model defined in the Verilog-AMS language. Condition: @@ -61,9 +61,9 @@ Goal: using the Verilog-AMS source code available at: http://www.iee.et.tu-dresden.de/~schroter/Hicum_PD/Hicumna/hicumL0V1p11.va -Limitations: - The adms ngspice interface supports a limited set of Verilog-AMS language - constructs. See the home page of adms (http://mot-adms.sourceforge.net/) +Limitations: + The adms ngspice interface supports a limited set of Verilog-AMS language + constructs. See the home page of adms (http://mot-adms.sourceforge.net/) for more info. Feel free to contribute to the adms ngspice interface so that more constructs can be supported. @@ -72,42 +72,42 @@ Limitations: 01- ngspice Files Ngspice does not (yet) have support for loading models at run time, every - model must be included at compile time. Then, adding a new model into + model must be included at compile time. Then, adding a new model into ngspice is a process that cannot be completely automated. Some files need to be edited by hand. - + 01.01 What ngspice need to know of a new model ? - + First you have to assign your new model a "device type". As you probably - know, ngspice recognizes the type of a device by the first letter in + know, ngspice recognizes the type of a device by the first letter in device's name in the netlists ("r" for resistors, "q" for BJT, "m" for mosfets and so on). Then the first thing you have to find is the correct type for your new device (let's call this device_type). - + Since there can be more than one model for each device type, another parameter you have to set is the device_level, which must be unique for each device type. - + Once you have found the (device_type, device_level) couple you have - identified the files you have to edit: + identified the files you have to edit: /configure.ac - Here you have to add the entries in adms section for your new directory - and library. + Here you have to add the entries in adms section for your new directory + and library. - /src/spicelib/parser/inp2.c + /src/spicelib/parser/inp2.c Substitute with the letter corresponding to the - type of you new model. Here you have to add the interface code for your + type of you new model. Here you have to add the interface code for your new device. In the case of hicum (a BJT model and thus a "q" device type) - you have to edit inp2q.c - + you have to edit inp2q.c + /src/spicelib/parser/inpdomod.c Here you have to add a switch for the level of your new device. /src/spicelib/devices/dev.c - Follow the structure of the files and add information on your new + Follow the structure of the files and add information on your new model. In dev.c you have to adjust some macro. - + See existing examples to make the modifications for your own implementation. is the path to the ngspice source installation. For instance can be /tools/ng-spice-rework-17 @@ -120,7 +120,7 @@ Limitations: /src/spicelib/devices/adms/admst/ngspice*.xml adms creates the ready-to-compile C code from a set of admst code generators. admst is a subset of the XML language which has been created - specifically for the purpose of C code generation. The syntax of admst is + specifically for the purpose of C code generation. The syntax of admst is very close to the XSLT language (it includes some extensions.) 03- Create the data file structure @@ -130,7 +130,7 @@ Limitations: -b /src/spicelib/devices/adms/hicum0/admsva There is no convention on the way to choice the last directory name in -a. - However in -b 'admsva' is mandatory. + However in -b 'admsva' is mandatory. 04- Save the Verilog-AMS source code @@ -166,7 +166,7 @@ Limitations: adms: admsXml.exe -Iadmsva admsva/hic0_full.va \ -06- Update/Create the auto-tools files (configure, Makefile.in, Makefile) +06- Update/Create the auto-tools files (configure, Makefile.in, Makefile) 06.01 Manual changes In directory edit file configure.ac, add new device 'hicum0' @@ -444,7 +444,7 @@ Appendix 01: Comments on spice3-flavoured flags like npn, pnp, nmos, pmos and so .model mybjtmodel npn + pnp=1 + level=5 - + In both cases flag 'npn' is just ignored. In section 'Update manually the ngspice parser files' it is recommended to use flag 'adms' instead. diff --git a/README.tcl b/README.tcl index 8c88c7e2b..c8401dfd8 100644 --- a/README.tcl +++ b/README.tcl @@ -21,7 +21,7 @@ Welcome to tclspice README_tcl -This file acompanies ngspice sources starting with ngspice-rework-18. It +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. @@ -34,16 +34,16 @@ 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 +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 +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. +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). @@ -62,7 +62,7 @@ tcl 8.4 tk 8.4 blt 2.4 -Tclspice is built and installed the same way as ngspice. Then, after reading this +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 diff --git a/Stuarts_Poly_Notes b/Stuarts_Poly_Notes index add7eaf1b..fb8c3a5e9 100644 --- a/Stuarts_Poly_Notes +++ b/Stuarts_Poly_Notes @@ -31,7 +31,7 @@ DEBUGGING SPICE To avoid a segmentation fault in the initial run, use the following command in gdb: - setenv SPICE_NO_DATASEG_CHECK "1" + setenv SPICE_NO_DATASEG_CHECK "1" Or, the comparable command in your shell before running gdb. This disable accurate tracking of how much memory is used.