whitespace

This commit is contained in:
h_vogt 2014-01-04 15:42:57 +01:00 committed by rlar
parent cda86d9b82
commit b19641dcc2
12 changed files with 556 additions and 556 deletions

View File

@ -7,7 +7,7 @@ This file lists the analyses currently implemented into ngspice.
Table of Contents Table of Contents
1 Noise analysis (NOISE) 1 Noise analysis (NOISE)
2 Operating point analysis (OP) 2 Operating point analysis (OP)
3 Operating point sweep Analysis (DC) 3 Operating point sweep Analysis (DC)
3.1 Enhancements 3.1 Enhancements
@ -24,85 +24,85 @@ Table of Contents
1 Noise analysis (NOISE) 1 Noise analysis (NOISE)
The noise analysis does analysis device-generated noise for the given The noise analysis does analysis device-generated noise for the given
circuit. When provided with an input source and an output port, the analysis circuit. When provided with an input source and an output port, the analysis
calculates the noise contributions of each device (and each noise generator calculates the noise contributions of each device (and each noise generator
within the device) to the output port voltage. It also calculates the input 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 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 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 range - the calculated value of the noise corresponds to the spectral density
of the circuit variable viewed as a stationary gaussian stochastic process. of the circuit variable viewed as a stationary gaussian stochastic process.
2 Operating point analysis (OP) 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. circuit with inductors shorted and capacitors opened.
3 Operating point sweep Analysis (DC) 3 Operating point sweep Analysis (DC)
The operating point sweep analysis determines the values of output The operating point sweep analysis determines the values of output
variables while one or two specified independent voltage or current source is 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 stepped over a user-specified range and the dc output variables are stored
for each sequential source value. for each sequential source value.
3.1 Enhancements 3.1 Enhancements
Added resistance and temperature sweep. Added resistance and temperature sweep.
4 Pole-zero analysis (PZ) 4 Pole-zero analysis (PZ)
The pole-zero analysis computes the poles and/or zeros in the small-signal 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 ac transfer function. The program first computes the dc operating point and
then determines the linearized, small-signal models for all the nonlinear 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 devices in the circuit. This circuit is then used to find the poles and zeros
of the transfer function. of the transfer function.
5 Small-Signal distortion analysis (DISTO) 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. products for small input signal magnitudes. Not all devices are supported.
6 Small Signal frequency response analysis (AC) 6 Small Signal frequency response analysis (AC)
The ac small-signal computes the ac output variables as a function of 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 frequency. The program first computes the dc operating point of the circuit
and determines linearized, small-signal models for all of the nonlinear and determines linearized, small-signal models for all of the nonlinear
devices in the circuit. The resultant linear circuit is then analyzed over a devices in the circuit. The resultant linear circuit is then analyzed over a
user-specified range of frequencies. user-specified range of frequencies.
7 Sensitivity analysis (SENS) 7 Sensitivity analysis (SENS)
Ngspice will calculate either the DC operating-point sensitivity or the AC Ngspice will calculate either the DC operating-point sensitivity or the AC
small-signal sensitivity of an output variable with respect to all circuit small-signal sensitivity of an output variable with respect to all circuit
variables, including model parameters. Spice calculates the difference in an variables, including model parameters. Spice calculates the difference in an
output variable (either a node voltage or a branch current) by perturbing output variable (either a node voltage or a branch current) by perturbing
each parameter of each device independently. each parameter of each device independently.
8 Transfer function analysis (TF) 8 Transfer function analysis (TF)
The (small signal) transfer function analysis computes the dc small-signal The (small signal) transfer function analysis computes the dc small-signal
value of a transfer function (ratio of output variable to input source), 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 input resistance, and output resistance is also computed as a part of the dc
solution. solution.
9 Transient analysis (TRAN) 9 Transient analysis (TRAN)
The transient analysis computes the transient output variables as a The transient analysis computes the transient output variables as a
function of time over a user-specified time interval. The initial conditions 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 are automatically determined by a dc analysis. All sources which are not time
dependent (for example, power supplies) are set to their dc value. dependent (for example, power supplies) are set to their dc value.
10 Periodic steady state analysis (PSS) 10 Periodic steady state analysis (PSS)
The periodic steady state analysis computes solutions for oscillating The periodic steady state analysis computes solutions for oscillating
circuits. Currently only the autonomous case is implemented. circuits. Currently only the autonomous case is implemented.

View File

@ -2,7 +2,7 @@
Spice was originally written at The University of California at Berkeley (USA). 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 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: The following people have contributed in some way:

16
BUGS
View File

@ -5,16 +5,16 @@ How to submit a bug report:
There are two methods to report a bug you have discovered in ngspice: There are two methods to report a bug you have discovered in ngspice:
* Bug tracker: This is the preferred method of reporting a bug. * Bug tracker: This is the preferred method of reporting a bug.
Using the tracker on Sourceforge.net site will make your report Using the tracker on Sourceforge.net site will make your report
open by everyone and the chances of finding a fix will increase. 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 * 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 directly to the developers' list. Do not subscribe to the list only
for sending bug reports. for sending bug reports.
Before sending a bug report please note: all information you send to the bug 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 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 information, send them to a developer directly but still write non
sensitive data on the bug tracking system to keep track of bug history. 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 The pole-zero (.pz) analysis, which still uses the original spice3f5
algorithms, does not give correct results for all tested input files. algorithms, does not give correct results for all tested input files.
The effort to correct that issue seems to be large. The effort to correct that issue seems to be large.
* voltage (and current) controlled switches need better timing * voltage (and current) controlled switches need better timing

120
COPYING
View File

@ -1,82 +1,82 @@
12345678901234567890123456789012345678901234567890123456789012345678901234567890 12345678901234567890123456789012345678901234567890123456789012345678901234567890
Ngspice-25 Ngspice-25
Copyright (c) 2012, Copyright (c) 2012,
All rights reserved. All rights reserved.
Foreword: Foreword:
Spice's name was originally chosen at the University of California, Berkeley. 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 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. 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 The *spices (generic name for its forks) are heterogeneous in many points due
to the work of researchers, electronic designers, software editors, etc. to the work of researchers, electronic designers, software editors, etc.
The Ngspice team tries to collect work from the different sources and The Ngspice team tries to collect work from the different sources and
contribute new functionalities. Thus, the material we manipulate is contribute new functionalities. Thus, the material we manipulate is
heterogeneous in licenses. Keeping the licenses as is, is the way to live with 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. 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 copylefted contribution, or a non copylefted contribution is an important
choice that should be respected. Ngspice branch as a whole will not be covered 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 by a specific license. The Ngspice team wants to encourage contributions to
ngspice. We let each new developper choose its position regarding copyleft, 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 as we respect the position of the former developpers. In order to keep things
clear ngspice team proposes to follow the following guidelines: 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 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. GPL. We do not encourage it.
If you feel to add code in a file under a different license than the rest of 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 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. copyright information.
We encourage restrictive licenses to be chosen only for new functionalities, We encourage restrictive licenses to be chosen only for new functionalities,
written in distinct files, leading to distinct libraries that links depending written in distinct files, leading to distinct libraries that links depending
on a specific configure flag. on a specific configure flag.
We encourage non proliferation of licenses (e.g. choosing either GPL, LGPL or 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 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 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 editing, or conveying and not to commit license infringements, especially to
GPL and LGPL which are quite restrictive. 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) 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. accordance with Multigig Ltd, the copyright holder.
The following table is just a reminder on license status, please don't rely The following table is just a reminder on license status, please don't rely
on it: on it:
Author License Notes Author License Notes
numparam Georg Post LGPL Applies to the code in numparam Georg Post LGPL Applies to the code in
frontend/numparam frontend/numparam
adms Laurent Lemaitre LGPL Applies to scripts in the adms Laurent Lemaitre LGPL Applies to scripts in the
spicelib/dev/adms spicelib/dev/adms
tclspice Stefan Jones LGPL TCL integration tclspice Stefan Jones LGPL TCL integration
cider U. of California Old BSD Device level simulator 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 spice U. of California New BSD Analog circuit simulation
---------------------------------- Cider ----------------------------------- ---------------------------------- Cider -----------------------------------
RESEARCH SOFTWARE AGREEMENT RESEARCH SOFTWARE AGREEMENT
This file specifies the terms under which the software and This file specifies the terms under which the software and
documentation provided with this distribution are provided. documentation provided with this distribution are provided.
Software is distributed as is, completely without warranty Software is distributed as is, completely without warranty
or service support. The University of California and its employ- or service support. The University of California and its employ-
ees are not liable for the condition or performance of the ees are not liable for the condition or performance of the
software. software.
The University does not warrant that it owns the copyright The University does not warrant that it owns the copyright
or other proprietary rights to all software and documentation or other proprietary rights to all software and documentation
provided under this agreement, notwithstanding any copyright 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- or proprietary rights brought by third parties against the reci-
pient of the software and documentation provided under this pient of the software and documentation provided under this
agreement. agreement.
THE UNIVERSITY OF CALIFORNIA HEREBY DISCLAIMS ALL IMPLIED THE UNIVERSITY OF CALIFORNIA HEREBY DISCLAIMS ALL IMPLIED
WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE UNIVERSITY IS NOT AND FITNESS FOR A PARTICULAR PURPOSE. THE UNIVERSITY IS NOT
LIABLE FOR ANY DAMAGES INCURRED BY THE RECIPIENT IN USE OF THE LIABLE FOR ANY DAMAGES INCURRED BY THE RECIPIENT IN USE OF THE
SOFTWARE AND DOCUMENTATION, INCLUDING DIRECT, INDIRECT, SPECIAL, SOFTWARE AND DOCUMENTATION, INCLUDING DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, OR CONSEQUENTIAL DAMAGES. INCIDENTAL, OR CONSEQUENTIAL DAMAGES.
The University of California grants the recipient the right The University of California grants the recipient the right
to modify, copy, and redistribute the software and documentation, to modify, copy, and redistribute the software and documentation,
both within the recipient's organization and externally, subject both within the recipient's organization and externally, subject
to the following restrictions: to the following restrictions:
(a) The recipient agrees not to charge for the University of (a) The recipient agrees not to charge for the University of
California code itself. The recipient may, however, charge California code itself. The recipient may, however, charge
for additions, extensions, or support. for additions, extensions, or support.
(b) In any product based on the software, the recipient agrees (b) In any product based on the software, the recipient agrees
to acknowledge the research group that developed the to acknowledge the research group that developed the
software. This acknowledgement shall appear in the product software. This acknowledgement shall appear in the product
documentation. documentation.
(c) The recipient agrees to obey all U.S. Government restric- (c) The recipient agrees to obey all U.S. Government restric-
tions governing redistribution or export of the software and tions governing redistribution or export of the software and
documentation. documentation.
---------------------------------- Spice3f5 -------------------------------- ---------------------------------- Spice3f5 --------------------------------
Copyright (c) 1985-1991 The Regents of the University of California. Copyright (c) 1985-1991 The Regents of the University of California.
All rights reserved. All rights reserved.
@ -135,8 +135,8 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-------------------------------- Tclspice -------------------------------- -------------------------------- Tclspice --------------------------------
GNU LESSER GENERAL PUBLIC LICENSE GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999 Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc. Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 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 as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.] the version number 2.1.]
Preamble Preamble
The licenses for most software are designed to take away your The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public 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 former contains code derived from the library, whereas the latter must
be combined with the library in order to run. 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 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other 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 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 writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does. and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's 1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an 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 of all derivatives of our free software and of promoting the sharing
and reuse of software generally. and reuse of software generally.
NO WARRANTY NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 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. DAMAGES.
---------------------------------- Xspice -------------------------------- ---------------------------------- Xspice --------------------------------
THE SOFTWARE PROGRAMS BELOW ARE IN THE PUBLIC DOMAIN AND ARE PROVIDED FREE 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 ANY CHARGE. THE GEORGIA TECH RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF
TECHNOLOGY, AND/OR OTHER PARTIES PROVIDE THIS SOFTWARE "AS IS" WITHOUT WARRANTY 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 OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 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. 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 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 NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL THE GEORGIA TECH
RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF TECHNOLOGY, AND/OR OTHER PARTIES RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF TECHNOLOGY, AND/OR OTHER PARTIES
PROVIDING THE PROGRAMS BELOW BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY PROVIDING THE PROGRAMS BELOW BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR 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 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 BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS). FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS).

84
DEVICES
View File

@ -27,7 +27,7 @@ Table of contents
5.2 SW - Voltage controlled switch 5.2 SW - Voltage controlled switch
6. Diodes 6. Diodes
6.1 DIO - Junction Diode 6.1 DIO - Junction Diode
7. Bipolar devices 7. Bipolar devices
7.1 BJT - Bipolar Junction Transistor 7.1 BJT - Bipolar Junction Transistor
7.2 BJT2 - Bipolar Junction Transistor 7.2 BJT2 - Bipolar Junction Transistor
7.3 VBIC - 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 2.1 CAP - Linear capacitor
Ver: N/A Ver: N/A
Class: C Class: C
Level: 1 (and only) 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 2.2 IND - Linear Inductor
Ver: N/A Ver: N/A
Class: L Class: L
Level: 1 (and only) 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. - Does not implement parallel code switches.
3.3 TRA - Transmission line 3.3 TRA - Transmission line
Ver: N/A Ver: N/A
Class: T Class: T
Level: 1 (and only) 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. Voltage and current sources
4.1 ASRC - Arbitrary Source 4.1 ASRC - Arbitrary Source
Ver: N/A Ver: N/A
Class: B Class: B
Level: 1 (and only) 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. current of current-controlled generators.
4.2 CCCS - Current Controlled Current Source 4.2 CCCS - Current Controlled Current Source
Ver: N/A Ver: N/A
Class: F Class: F
Level: 1 (and only) 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. - Original spice model.
4.3 CCVS - Current Controlled Voltage Source 4.3 CCVS - Current Controlled Voltage Source
Ver: N/A Ver: N/A
Class: H Class: H
Level: 1 (and only) 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 4.4 ISRC - Independent Current Source
Ver: N/A Ver: N/A
Class: I Class: I
Level: 1 (and only) 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. Switches
5.1 CSW - Current controlled switch 5.1 CSW - Current controlled switch
Ver: N/A Ver: N/A
Class: W Class: W
Level: 1 (and only) 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 - Temperature correction of some parameters
7. Bipolar devices 7. Bipolar devices
7.1 BJT - Bipolar Junction Transistor 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 - Different area parameters for collector, base and emitter
7.3 VBIC - Bipolar Junction Transistor 7.3 VBIC - Bipolar Junction Transistor
Ver: N/A Ver: N/A
Class: Q Class: Q
Level: 4 & 9 Level: 4 & 9
Dir: devices/vbic Dir: devices/vbic
Status: 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. of VBIC is Colin McAndrew mcandrew@ieee.org.
Spice3 Implementation: Dietmar Warning DAnalyse GmbH Spice3 Implementation: Dietmar Warning DAnalyse GmbH
Web Site: http://www.designers-guide.com/VBIC/index.html 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 9. HFET Devices
Added code from macspice3f4 HFET1&2 and MESA model Added code from macspice3f4 HFET1&2 and MESA model
Original note: Original note:
Added device calls for Mesfet models and HFET models 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 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: This is the Heterostructure Field Effect Transistor model from:
K. Lee, M. Shur, T. A. Fjeldly and T. Ytterdal 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 1993, Prentice Hall, New Jersey
Enhancements over the original model: 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. MES devices
10.1 MES - MESFET model 10.1 MES - MESFET model
Ver: N/A Ver: N/A
Class: Z Class: Z
Level: 1 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 - 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: Original note:
Added device calls for Mesfet models and HFET models 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) 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. MOS devices
11.1 MOS1 - Level 1 MOS model 11.1 MOS1 - Level 1 MOS model
Ver: N/A Ver: N/A
Class: M Class: M
Level: 1 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 - Temperature difference from circuit temperature
11.2 MOS2 - Level 2 MOS model 11.2 MOS2 - Level 2 MOS model
Ver: N/A Ver: N/A
Class: M Class: M
Level: 2 Level: 2
@ -562,9 +562,9 @@ will be updated every time the device specific code is altered or changed to ref
Dir: devices/mos9 Dir: devices/mos9
Status: 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.) (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: Enhancements over the original model:
- Temperature difference from circuit temperature - 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 Level: 4
Dir: devices/bsim1 Dir: devices/bsim1
Status: Status:
Enhancements over the original model: Enhancements over the original model:
- Parallel multiplier - Parallel multiplier
- Noise analysis - 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 11.7 BSIM2 - BSIM model level 2
Ver: N/A Ver: N/A
Class: M Class: M
Level: 5 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 11.8 BSIM3v0 - BSIM model level 3
Ver: 3.0 Ver: 3.0
Class: M Class: M
Level: 8 & 49, version = 3.0 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) - Multirevision code (supports all 3v3.2 minor revisions)
- NodesetFix - NodesetFix
11.11 BSIM3 - BSIM model level 3 11.11 BSIM3 - BSIM model level 3
Ver: 3.3.0 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 11.12 BSIM4 - BSIM model level 4
Ver: 4.2.0 - 4.6.5 Ver: 4.2.0 - 4.6.5
Class: M Class: M
Level: 14 & 54, version = 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6 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 - Parallel Multiplier
- NodesetFix - NodesetFix
- Support for Multi-core processors using OpenMP - Support for Multi-core processors using OpenMP
11.13 HiSIM2 - Hiroshima-university STARC IGFET Model 11.13 HiSIM2 - Hiroshima-university STARC IGFET Model
Ver: 2.7.0 Ver: 2.7.0
Class: M Class: M
Level: 61, 68 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 11.14 HiSIM_HV - Hiroshima-University STARC IGFET High Voltage Model
Ver: 1.2.3 Ver: 1.2.3
Class: M Class: M
Level: 62, 73 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) 12.2 BSIM3SOI_DD - SOI Model (dynamic depletion model)
Ver: 2.1 Ver: 2.1
Class: M Class: M
Level: 56 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 Dir: devices/bsim3soi_pd
Status: TO BE TESTED. 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 under the test hierarchy. Test circuits come from the bsim3soi
Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi 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) 12.4 BSIMSOI - Berkeley SOI model (partially/full depleted devices)
Ver: 4.3.1 Ver: 4.3.1
Class: M Class: M
Level: 10 & 58 Level: 10 & 58
Dir: devices/bsim3soi Dir: devices/bsim3soi
Status: o.k. 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. backward compatible with its previous versions BSIMSOI3.x.
Usable for partially/full depleted devices. Usable for partially/full depleted devices.
Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi
Enhancements over the original model: Enhancements over the original model:
- Parallel Multiplier - Parallel Multiplier
- Support for Multi-core processors using OpenMP - Support for Multi-core processors using OpenMP
12.5 SOI3 - STAG SOI3 Model 12.5 SOI3 - STAG SOI3 Model
Ver: 2.6 Ver: 2.6
Class: M Class: M
Level: 61 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 13. Verilog-A models
Configuring ngspice with ADMS (see Readme.adms) following Configuring ngspice with ADMS (see Readme.adms) following
devices are available: devices are available:
13.1 EKV MOS Model 13.1 EKV MOS Model
Ver: 2.6 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 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) (but EPFL is not publishing any usefull code)
13.2 PSP MOS Model 13.2 PSP MOS Model

204
FAQ
View File

@ -52,117 +52,117 @@
1.1 What is ngspice ? 1.1 What is ngspice ?
Ngspice is a mixed-level/mixed-signal circuit simulator based on three Ngspice is a mixed-level/mixed-signal circuit simulator based on three
open source software packages: Spice3f5, Cider1b1 and Xspice: open source software packages: Spice3f5, Cider1b1 and Xspice:
- Spice3 is a widely used circuit simulator. It was developed by the - Spice3 is a widely used circuit simulator. It was developed by the
University of California at Berkeley (UCB), by "a cast of thousand" University of California at Berkeley (UCB), by "a cast of thousand"
(as they say) initially under the guide of Donald O. Peterson. (as they say) initially under the guide of Donald O. Peterson.
- Cider is a mixed-level simulator that already includes Spice3f5 and - Cider is a mixed-level simulator that already includes Spice3f5 and
adds a device simulator to it: DSIM. Cider couples the circuit level adds a device simulator to it: DSIM. Cider couples the circuit level
simulator to the device simulator to provide greater simulation simulator to the device simulator to provide greater simulation
accuracy (at the expense of greater simulation time). Critical accuracy (at the expense of greater simulation time). Critical
devices can be described with technology parameters (numerical devices can be described with technology parameters (numerical
models) and non critical ones with the original spice's compact models) and non critical ones with the original spice's compact
models. models.
- Xspice is an extension to Spice3 that provides code modeling support - Xspice is an extension to Spice3 that provides code modeling support
and simulation of digital components through an embedded event and simulation of digital components through an embedded event
driven algorithm. driven algorithm.
The NG prefix has lot of meanings: Next Generation, New Good, etc. 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 Choose or invent the one you prefer. The heart of the project is the
ngspice program. ngspice program.
1.2 What is tclspice ? 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 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 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. 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. Tclspice is obtained compiling ngspice activating an additional option.
1.3 Why resurrecting Berkeley's Spice? 1.3 Why resurrecting Berkeley's Spice?
Berkeley's Spice can be considered the father of most circuit Berkeley's Spice can be considered the father of most circuit
simulators available today. It is an old but still good piece of 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 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 free, it's available in source code and most of the electrical
simulators inherited it's syntax. Spice3 is based on proven numerical simulators inherited it's syntax. Spice3 is based on proven numerical
algorithms (most commercial implementations have only strengthened algorithms (most commercial implementations have only strengthened
them), implements most of the models for MOSFET submicron design them), implements most of the models for MOSFET submicron design
and has a powerful set of analyses. The readily availability of and has a powerful set of analyses. The readily availability of
its source code in the past made this simulator the de-facto standard. its source code in the past made this simulator the de-facto standard.
1.4 What is the project's goal? 1.4 What is the project's goal?
Ngspice is both a maintenance and enhancement project. It is a maintenance 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 project because it aims to provide the free EDA community the best spice3
simulator available. This means fixing bugs, adding new features but always 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 simulators and provide users the latest devices models are important goals
of the project. Improvements in the postprocessing (data handling of the project. Improvements in the postprocessing (data handling
capabilities) and user interface are other goals. 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 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 day by developers writing on the lists. Ngspice development activity
can be summarized in 3 points: can be summarized in 3 points:
+ Compatibility: Ngspice should be compatible with commercial products, + 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 most of the commercial simulators avaiable tracked each other in netlist
language, this should not be an impossible task. The most important goal language, this should not be an impossible task. The most important goal
here is to provide a reliable support for model libraries coming from here is to provide a reliable support for model libraries coming from
foundries. foundries.
+ Compact models: The interest in using ngspice is intimately connected + 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 active and passive devices is a fundamental goal of the project. In
this direction we are integrating ADMS model compiler into ngspice. this direction we are integrating ADMS model compiler into ngspice.
+ Documentation: Commercial simulators come with very good manuals + Documentation: Commercial simulators come with very good manuals
containing tutorials, description of models equations, example of containing tutorials, description of models equations, example of
use, suggestions, etc. Spice came with little documentation. The use, suggestions, etc. Spice came with little documentation. The
Spice3f manual, available on the Internet has been used as the basis Spice3f manual, available on the Internet has been used as the basis
for the new manual. It will be constantly improved during ngspice for the new manual. It will be constantly improved during ngspice
development and integrated with the documentation accompanying Xspice development and integrated with the documentation accompanying Xspice
and Cider. This is a very time consuming task and probably the and Cider. This is a very time consuming task and probably the
documentation will always be left slightly behind. documentation will always be left slightly behind.
1.6 Legal issues 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: 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) LGPL and the copyright is of their respective owners (need to write better)
1.7. What mailing lists exist for ngspice? 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: <ngspice-users@lists.sourceforge.net> Users mailing list: <ngspice-users@lists.sourceforge.net>
This list is for ngspice users, examples, problems, bug reports 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: <ngspice-devel@lists.sourceforge.net> Developers mailing list: <ngspice-devel@lists.sourceforge.net>
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 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 Send an empty message with Subject "help" to the following addresses
to get instructions. to get instructions.
<ngspice-users-request@lists.sourceforge.net> <ngspice-users-request@lists.sourceforge.net>
<ngspice-devel-request@lists.sourceforge.net> <ngspice-devel-request@lists.sourceforge.net>
@ -182,13 +182,13 @@
archives. The project started on the IEEE Central and South Italy archives. The project started on the IEEE Central and South Italy
web server and then moved to sourceforge. Sourceforge provides an web server and then moved to sourceforge. Sourceforge provides an
archiving service that cam be accessed via the summary page: archiving service that cam be accessed via the summary page:
http://sourceforge.net/projects/ngspice 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: age are available at:
http://ngspice.sourceforge.net/lists.html http://ngspice.sourceforge.net/lists.html
1.9. What newsgroups exist for ngspice? 1.9. What newsgroups exist for ngspice?
@ -196,9 +196,9 @@
There is no ngspice specific newsgroup. Anyway ngspice threads appear There is no ngspice specific newsgroup. Anyway ngspice threads appear
on newsgroups dedicated to circuit simulation and electronic design. on newsgroups dedicated to circuit simulation and electronic design.
An (incomplete) list is: An (incomplete) list is:
sci.electronics.cad sci.electronics.cad
comp.lsi.cad comp.lsi.cad
1.10. Where can I get a copy of ngspice? 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? 1.11. Where should I look on the World Wide Web for ngspice stuff?
Look at the official Ngpice Web Page: 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? 1.12. Where should I look on the World Wide Web for Spice documentation?
There is a detailed ngspice manual available at: There is a detailed ngspice manual available at:
http://ngspice.sourceforge.net/docs.html http://ngspice.sourceforge.net/docs.html
There are a lot of Internet sites that have information on spice. The There are a lot of Internet sites that have information on spice. The
best way is to ask your preferred search engine. Some interesting best way is to ask your preferred search engine. Some interesting
sites are: sites are:
Pages on Spice: Pages on Spice:
http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/ http://bwrc.eecs.berkeley.edu/Classes/IcBook/SPICE/
http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm
http://newton.ex.ac.uk/teaching/CDHW/Electronics2/userguide/index.html#toc http://newton.ex.ac.uk/teaching/CDHW/Electronics2/userguide/index.html#toc
Xspice Page: Xspice Page:
http://users.ece.gatech.edu/~mrichard/Xspice http://users.ece.gatech.edu/~mrichard/Xspice
@ -242,42 +242,42 @@
2.1. What is the current version? 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) * ngspice-rework-25 (released on 04/01/2013)
2.2. What are the latest features in the current release? 2.2. What are the latest features in the current release?
- New features: - New features:
+ add temperature coefficients for B source + add temperature coefficients for B source
+ commands "mdump", "mrdump" to dump matrix to file + commands "mdump", "mrdump" to dump matrix to file
+ allow `time', `temper', and `hertz' in expressions with behavioral R, L, C + allow `time', `temper', and `hertz' in expressions with behavioral R, L, C
+ Enable ctrl-c to interrupt a simulation also for Windows GUI + Enable ctrl-c to interrupt a simulation also for Windows GUI
+ tests/bsim4: use the standard CMC model check + tests/bsim4: use the standard CMC model check
+ implement exit code for command "quit" + implement exit code for command "quit"
+ .nodeset all = value + .nodeset all = value
+ memristor code model in extradev + memristor code model in extradev
+ new scalable diode model including tunnel component + new scalable diode model including tunnel component
+ variable xtrtol may override the XSPICE reduction of trtol + variable xtrtol may override the XSPICE reduction of trtol
+ XSPICE example: delta-sigma converter + XSPICE example: delta-sigma converter
+ XSPICE: new d_source model + XSPICE: new d_source model
+ new option noopac + new option noopac
+ bsim3: make additonal parameters accessible with @mxx[par] + bsim3: make additonal parameters accessible with @mxx[par]
+ enable Mac OS X compilation + enable Mac OS X compilation
+ option reseries = val + option reseries = val
+ commands "snsave", "snload" + commands "snsave", "snload"
+ update hisim to version 2.7.0, new qa tests + update hisim to version 2.7.0, new qa tests
+ hisimhv update to version 1.2.3, new qa tests + hisimhv update to version 1.2.3, new qa tests
+ allow Ctrl-d to quit + allow Ctrl-d to quit
+ jfet model temperature extension, tcv and bex parameter + jfet model temperature extension, tcv and bex parameter
+ speed up vector handling by hash table for vector address storage and retrieval + speed up vector handling by hash table for vector address storage and retrieval
+ update PSS code + update PSS code
- Bug fixes: - Bug fixes:
+ many, many ... please see + many, many ... please see
http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0 http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0
+ remove memory leaks + remove memory leaks
+ update tclspice for MS Windows + update tclspice for MS Windows
+ adms3 removed due to licensing issues + adms3 removed due to licensing issues
@ -293,11 +293,11 @@
2.4. Who are the authors of ngspice? 2.4. Who are the authors of ngspice?
The development is open to anyone who wish to contribute. If the The development is open to anyone who wish to contribute. If the
original Spice3 was made with the contribution of "a cast of original Spice3 was made with the contribution of "a cast of
thousand", ngspice can only increase that number. An incomplete thousand", ngspice can only increase that number. An incomplete
list of contributor makes the "acknowledgements" page of the ngspice list of contributor makes the "acknowledgements" page of the ngspice
manual. manual.
2.5. How can I report a bug/request for a feature? 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 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. http://ngspice.sourceforge.net/bugrep.html will give you more details.
2.6. How can I join the development? 2.6. How can I join the development?
To join the development just code the feature you want to add and send 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 your patch in the mailing list. Before you start coding check the
latest development release of ngspice from our git repository. latest development release of ngspice from our git repository.
It might be that your feature has already been implemented. It might be that your feature has already been implemented.
There is no bureaucracy here. There is no bureaucracy here.
@ -327,21 +327,21 @@
Ngspice is written in C, and uses some GNU extensions, then you need 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 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. well as MS Visual Studio.
3.2. I get errors when I try to compile the source code, why? 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 Write a mail to the user's list describing the problem and providing
information on the type of hardware, the flavour of operating system. 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 3.3. This document didn't answer my question. Where else can I look
for an answer? for an answer?
Read old messages from the mailing list archive, search the web site Read old messages from the mailing list archive, search the web site
or read the docs. Upgrade to the latest version of ngspice, many 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 problems are fixed in the new versions. If you still can't find an

244
INSTALL
View File

@ -23,7 +23,7 @@ Table of contents
9.2 make ngspice with MS Visual Studio 2008 9.2 make ngspice with MS Visual Studio 2008
9.3 make ngspice with pure CYGWIN 9.3 make ngspice with pure CYGWIN
9.4 ngspice console app with MINGW or CYGWIN 9.4 ngspice console app with MINGW or CYGWIN
This file describes the procedures to install ngspice from sources. 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 Ngspice is written in C and thus a complete C compilation environment
is needed. Almost any LINUX offers a complete C development 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. bison, flex, and X11 headers and libs.
If you want to compile the source from the git repository you need 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: The following software may be needed when enabling additional features:
editline, tcl/tk, adms 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 http://ngspice.sourceforge.net/docs.html, which gives you much more
information on ngspice and its usage. information on ngspice and its usage.
1.2 Install from tarball (e.g. ngspice-25.tar.gz) 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). ngspice-25.tar.gz, the so called tar ball).
After downloading the tar ball to a local directory unpack it using: After downloading the tar ball to a local directory unpack it using:
$ tar -zxvf ngspice-25.tar.gz $ tar -zxvf ngspice-25.tar.gz
Now change directories in to the top-level source directory (where this Now change directories in to the top-level source directory (where this
INSTALL file can be found). INSTALL file can be found).
You should be able to do: You should be able to do:
$ mkdir release $ mkdir release
$ cd release $ cd release
$ ../configure --with-x --with-readline=yes --disable-debug $ ../configure --with-x --with-readline=yes --disable-debug
$ make $ make
$ sudo make install $ sudo make install
The default install directory for executables is /usr/local/bin. The default install directory for executables is /usr/local/bin.
A simple ../configure might be sufficient for a basic ngspice, but the preferred A simple ../configure might be sufficient for a basic ngspice, but the preferred
arguments to ../configure are arguments to ../configure are
--with-x --with-readline=yes and --disable-debug --with-x --with-readline=yes and --disable-debug
providing you with a comfortably working ngspice (see section 1.4 for details). providing you with a comfortably working ngspice (see section 1.4 for details).
See the section titled 'Advanced Install' for instructions about additional arguments See the section titled 'Advanced Install' for instructions about additional arguments
that can be passed to ../configure to customise the build and installation. 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 Do not use the script ./autogen.sh, because it is not required for
compiling and installing ngspice from the tarball. compiling and installing ngspice from the tarball.
A fully featured ngspice on LINUX may be obtained with the following commands: A fully featured ngspice on LINUX may be obtained with the following commands:
$ mkdir release $ mkdir release
$ cd 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 $ make 2>&1 | tee make.log
$ sudo make install $ sudo make install
To remove the executables and libraries from the install directory, you may call To remove the executables and libraries from the install directory, you may call
$ sudo make uninstall $ sudo make uninstall
1.3 Install from the git repository 1.3 Install from the git repository
This section describes how to install from source code taken directly 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 Now change directories in to the top-level source directory (where this
INSTALL file can be found). 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. directory, so to e.g. maintain separate debug and release versions.
$ ./autogen.sh $ ./autogen.sh
@ -118,14 +118,14 @@ This file describes the procedures to install ngspice from sources.
$ ../configure --enable-maintainer-mode $ ../configure --enable-maintainer-mode
$ make $ make
$ sudo make install $ 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. that can be passed to ./configure to customise the build and installation.
Preferred arguments to ./configure to obtain a comfortably working ngspice may be Preferred arguments to ./configure to obtain a comfortably working ngspice may be
--with-readline=yes and --disable-debug (for smaller and speed optimized --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: A fully featured ngspice on LINUX may be obtained with the following commands:
$ ./autogen.sh --adms $ ./autogen.sh --adms
$ mkdir release $ 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 $ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-adms
$ make 2>&1 | tee make.log $ make 2>&1 | tee make.log
$ sudo make install $ sudo make install
If a problem is found with the build proccess, please submit a report to If a problem is found with the build proccess, please submit a report to
the Ngspice development team. Please provide information about your system the Ngspice development team. Please provide information about your system
and any ./configure arguments you are using, together with any error and any ./configure arguments you are using, together with any error
messages. Ideally you would have tried to fix the problem yourself first. 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. from you.
1.4 Advanced Install 1.4 Advanced Install
@ -148,52 +148,52 @@ This file describes the procedures to install ngspice from sources.
options do: options do:
$ ./configure --help $ ./configure --help
Some of these options are generic to the GNU build process that is used by Some of these options are generic to the GNU build process that is used by
Ngspice, other are specific to Ngspice. Ngspice, other are specific to Ngspice.
The following sections provide some guidance and descriptions for many, The following sections provide some guidance and descriptions for many,
but not all, of these options. but not all, of these options.
1.4.1 Most useful options: 1.4.1 Most useful options:
--enable-adms --enable-adms
ADMS is an experimental model compiler that translates ADMS is an experimental model compiler that translates
Verilog-A compact models into C code that can be compiled into Verilog-A compact models into C code that can be compiled into
ngspice. This is (as of ngspice-25) still experimental, some ngspice. This is (as of ngspice-25) still experimental, some
features (e.g. noise) are missing. If you want to use it, please 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 --enable-cider
Cider is a mixed-level simulator that couples Spice3 and DSIM Cider is a mixed-level simulator that couples Spice3 and DSIM
to simulate devices from their technological parameters. to simulate devices from their technological parameters.
--enable-xspice --enable-xspice
Enable XSpice enhancements, 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. dynamic loading support. See the ngspice manual for details.
--with-readline=yes --with-readline=yes
Enable GNU readline support for the command line interface. Enable GNU readline support for the command line interface.
--enable-openmp --enable-openmp
Compile ngspice for multi-core processors. Compile ngspice for multi-core processors.
Parallelization is done by OpenMP, for MOS models in BSIM3.3.0 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 --disable-debug
This option will remove the '-g' option passed to the compiler This option will remove the '-g' option passed to the compiler
and add -O2 optimisation (instead of default O0). and add -O2 optimisation (instead of default O0).
This speeds up simulating significantly, and is recommended for This speeds up simulating significantly, and is recommended for
normal use. normal use.
1.4.2 Options Specific to Using Ngspice 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 --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. voltages are unchanged.
--enable-cluster --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 contribution never tested. This code comes from TCLspice
implementation and is implemented for transient analysis only. implementation and is implemented for transient analysis only.
--enable-expdevices --enable-expdevices
Enable experimental devices. This option is used by developers Enable experimental devices. This option is used by developers
to mask devices under development. Almost useless for users. to mask devices under development. Almost useless for users.
--enable-experimental --enable-experimental
This enables some experimental code. Specifically it enables: 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'. interactive keywords 'savesnap' and 'loadsnap'.
--enable-help --enable-help
Force building nghelp. This is deprecated. Force building nghelp. This is deprecated.
--enable-ndev --enable-ndev
Enable NDEV interface, (experimental, needs updating) Enable NDEV interface, (experimental, needs updating)
A TCP/IP interface to external device simulator such as GSS. 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 http://gss-tcad.sourceforge.net
--enable-newpred --enable-newpred
Enable the NEWPRED symbol in the code. 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 --enable-nobypass
Don't bypass recalculations of slowly changing variables Don't bypass recalculations of slowly changing variables
--enable-predictor --enable-predictor
Enable a predictor method for convergence Enable a predictor method for convergence
--enable-sense2 --enable-sense2
Use spice2 sensitivity analysis 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/ See http://www.thrysoee.dk/editline/
--with-tcl=tcldir --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 "tclspice" is compiled and installed instead of
plain ngspice. 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 No graphics inetrface is provided, this has to be
handled by the controlling application. handled by the controlling application.
1.4.3 Options Useful for Debugging Ngspice 1.4.3 Options Useful for Debugging Ngspice
--enable-ansi --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. it expects ansi-C.
--enable-asdebug --enable-asdebug
Debug sensitivity code *ASDEBUG*. Debug sensitivity code *ASDEBUG*.
--enable-blktmsdebug --enable-blktmsdebug
Debug distortion code *BLOCKTIMES* Debug distortion code *BLOCKTIMES*
--enable-checkergcc --enable-checkergcc
Option for compilation with 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 --disable-debug
This option will remove the '-g' option passed to the compiler. 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. normal use.
--enable-ftedebug --enable-ftedebug
Enable ngspice frontend debug. Enable ngspice frontend debug.
--enable-gc --enable-gc
Enable the Boehm-Weiser Conservative Garbage Collector. Enable the Boehm-Weiser Conservative Garbage Collector.
--enable-pzdebug --enable-pzdebug
Debug pole/zero code. Debug pole/zero code.
--enable-sensdebug --enable-sensdebug
Debug sensitivity code *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
Enable smoketest compile. Enable smoketest compile.
--enable-stepdebug --enable-stepdebug
Turns on debugging of convergence stepping?? Turns on debugging of convergence stepping??
2 Compilers and Options 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 9.1 How to make ngspice with MINGW and MSYS
Creating ngspice with MINGW is a straight forward procedure, Creating ngspice with MINGW is a straight forward procedure,
if you have MSYS/MINGW installed properly. You will need some enhancements 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). to the standard install (FLEX and BISON have to be made available in MSYS).
Some links are given below which describe the procedures. Some links are given below which describe the procedures.
Installing from the tarball, e.g. ngspice-25.tar.gz, is now simple: After 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. expanding, you may just run ./compile_min.sh from the ngspice-25 directory.
The default installation location of ngspice is the Windows path The default installation location of ngspice is the Windows path
C:\spice. The install path can be altered by passing --prefix=NEWPATH C:\spice. The install path can be altered by passing --prefix=NEWPATH
as an argument to ./configure during the build process. as an argument to ./configure during the build process.
Put the install path you desire inside "", e.g. "D:/NewSpice". Be Put the install path you desire inside "", e.g. "D:/NewSpice". Be
careful to use forward slashes "/", not backward slashes "\" (something careful to use forward slashes "/", not backward slashes "\" (something
still to be fixed). Then add --prefix="D:/NewSpice" as an argument to still to be fixed). Then add --prefix="D:/NewSpice" as an argument to
./configure in the normal way. ./configure in the normal way.
The procedure of compiling a distribution (for example, a tarball from 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-xspice
--enable-cider --enable-cider
--disable-debug (-O2 optimization, no debug information) --disable-debug (-O2 optimization, no debug information)
A fully featured ngspice on Windows may be obtained with the following commands: A fully featured ngspice on Windows may be obtained with the following commands:
$ ./autogen.sh --adms $ ./autogen.sh --adms
$ mkdir release $ mkdir release
$ cd release $ cd release
$ ../configure --with-wingui --enable-cider --disable-debug --enable-openmp --enable-xspice --enable-adms $ ../configure --with-wingui --enable-cider --disable-debug --enable-openmp --enable-xspice --enable-adms
$ make install $ make install
However, to compile code extracted from the git repository the procedure is However, to compile code extracted from the git repository the procedure is
a little different. To obtain ngspice, you may do the following: a little different. To obtain ngspice, you may do the following:
Go to a directory of your choice, e.g. D:\Spice Go to a directory of your choice, e.g. D:\Spice
$ cd /d/Spice $ cd /d/Spice
Issue the command for downloading ngspice: Issue the command for downloading ngspice:
$ git clone git://ngspice.git.sourceforge.net/gitroot/ngspice/ngspice $ git clone git://ngspice.git.sourceforge.net/gitroot/ngspice/ngspice
This will create directory /ngspice . This will create directory /ngspice .
Go to 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 Issue command for update
$ git pull $ 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: individual commands like:
$ cd ngspice $ cd ngspice
$ ./autogen.sh $ ./autogen.sh
@ -518,30 +518,30 @@ Most of the options now following are not well maintained, are not tested or eve
$ make $ make
$ make install $ make install
MINGW and MSYS can be downloaded from http://www.mingw.org/. The making of 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 ngspice and the code models *.cm for XSpice requires installation of BISON
and FLEX to MSYS. A typical installation was tested with: and FLEX to MSYS. A typical installation was tested with:
bison-2.0-MSYS.tar.gz bison-2.0-MSYS.tar.gz
flex-2.5.4a-1-bin.zip flex-2.5.4a-1-bin.zip
libiconv-1.9.2-1-bin.zip libiconv-1.9.2-1-bin.zip
libintl-0.14.4-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) 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. 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 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/HOWTO_Install_the_MinGW_GCC_Compiler_Suite
http://www.mingw.org/wiki/MSYS http://www.mingw.org/wiki/MSYS
http://www.mingw.org/wiki/HOWTO_Create_an_MSYS_Build_Environment. 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/ 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 (*.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 created with MINGW (which in fact are dlls), as e.g. found in
the ngspice binary distribution our made as described in 9.1. the ngspice binary distribution our made as described in 9.1.
There is currently no installation procedure provided, you may There is currently no installation procedure provided, you may
however install the executable manually as described in the however install the executable manually as described in the
installation tree below. installation tree below.
The directory (visualc) with its files The directory (visualc) with its files
vngspice.sln (project starter) and vngspice.sln (project starter) and
vngspice.vcproj (project contents) vngspice.vcproj (project contents)
allows to compile and link ngspice with MS Visual Studio 2008. allows to compile and link ngspice with MS Visual Studio 2008.
The project is probably not compatible with Visual Studio 2005. The project is probably not compatible with Visual Studio 2005.
/visualc/include contains a dedicated config.h file. It contains the /visualc/include contains a dedicated config.h file. It contains the
preprocessor definitions required to properly compile the code. preprocessor definitions required to properly compile the code.
strings.h has been necessary during setting up the project. strings.h has been necessary during setting up the project.
Install Microsoft Visual Studio 2008 C++ . The Install Microsoft Visual Studio 2008 C++ . The
MS VS 2008 C++ Express Edition (which is available at no cost from MS VS 2008 C++ Express Edition (which is available at no cost from
http://www.microsoft.com/express/product/default.aspx) is adequate. http://www.microsoft.com/express/product/default.aspx) is adequate.
Goto /ngspice/visualc. Goto /ngspice/visualc.
Start MS Visual Studio 2008 by double click onto vngspice.sln. 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'. 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'. 'vngspice neu erstellen'.
Object files will be created and stored in visualc/debug or visualc/release. 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. 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 An installation tree (as provided with MINGW make install) and also used by
vngspice is (maybe created manually): vngspice is (maybe created manually):
C:\Spice\ C:\Spice\
bin\ bin\
ngspice.exe ngspice.exe
@ -626,23 +626,23 @@ Most of the options now following are not well maintained, are not tested or eve
setplot setplot
spectrum spectrum
spinit spinit
If you intend to install vngspice into another directory, e.g. D:\MySpice, 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: you have to edit /visualc/include/config.h and alter the entries:
#define NGSPICEBINDIR "C:/Spice/bin" #define NGSPICEBINDIR "C:/Spice/bin"
#define NGSPICEDATADIR "C:/Spice/share/ngspice" #define NGSPICEDATADIR "C:/Spice/share/ngspice"
to to
#define NGSPICEBINDIR "D:/MySpice/bin" #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, 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 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. to libdl.a symbolically.
for example: 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 9.4 ngspice console app with MINGW or CYGWIN
Omitting the configure flag --with-wingui will yield a console ngspice. 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 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 for the X11 graphics (not available in mingw). A typical configure command
may look like 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 --disable-debug CFLAGS=-m32 LDFLAGS=-m32 prefix=C:/Spice
tested with TDM mingw. tested with TDM mingw.

252
NEWS
View File

@ -2,99 +2,99 @@ Ngspice-25, Jan 4th, 2013
============ ============
- New features: - New features:
+ add temperature coefficients for B source + add temperature coefficients for B source
+ commands "mdump", "mrdump" to dump matrix to file + commands "mdump", "mrdump" to dump matrix to file
+ allow `time', `temper', and `hertz' in expressions with behavioral R, L, C + allow `time', `temper', and `hertz' in expressions with behavioral R, L, C
+ Enable ctrl-c to interrupt a simulation also for Windows GUI + Enable ctrl-c to interrupt a simulation also for Windows GUI
+ tests/bsim4: use the standard CMC model qa check + tests/bsim4: use the standard CMC model qa check
+ implement exit code for command "quit" + implement exit code for command "quit"
+ .nodeset all = value + .nodeset all = value
+ memristor code model in extradev + memristor code model in extradev
+ new scalable diode model including tunnel component + new scalable diode model including tunnel component
+ variable xtrtol may override the XSPICE reduction of trtol + variable xtrtol may override the XSPICE reduction of trtol
+ XSPICE example: delta-sigma converter + XSPICE example: delta-sigma converter
+ XSPICE: new d_source model + XSPICE: new d_source model
+ new option noopac + new option noopac
+ bsim3: make additonal parameters accessible with @mxx[par] + bsim3: make additonal parameters accessible with @mxx[par]
+ enable Mac OS X compilation + enable Mac OS X compilation
+ option reseries = val + option reseries = val
+ commands "snsave", "snload" + commands "snsave", "snload"
+ update hisim to version 2.7.0, new qa tests + update hisim to version 2.7.0, new qa tests
+ hisimhv update to version 1.2.3, new qa tests + hisimhv update to version 1.2.3, new qa tests
+ allow Ctrl-d to quit + allow Ctrl-d to quit
+ jfet model temperature extension, tcv and bex parameter + jfet model temperature extension, tcv and bex parameter
+ speed up vector handling by hash table for vector address storage and retrieval + speed up vector handling by hash table for vector address storage and retrieval
+ update PSS code + update PSS code
- Bug fixes: - Bug fixes:
+ many, many ... please see + many, many ... please see
http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0 http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0
+ remove memory leaks + remove memory leaks
+ update tclspice for MS Windows + update tclspice for MS Windows
+ adms3 removed due to licensing issues + adms3 removed due to licensing issues
Ngspice-24, Jan 29th, 2012 Ngspice-24, Jan 29th, 2012
============ ============
- New features: - New features:
+ .csparam allows to tranfer a param into a vector in .control ... .endc + .csparam allows to tranfer a param into a vector in .control ... .endc
+ functions floor and ceil + functions floor and ceil
+ syntax Gxxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2) + syntax Gxxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
+ syntax Gxxx n1 n2 value={equation} or Exxx n1 n2 value={equation} + syntax Gxxx n1 n2 value={equation} or Exxx n1 n2 value={equation}
+ variable strict_errorhandling to exit ngspice with exit code 1 + variable strict_errorhandling to exit ngspice with exit code 1
if any error occurs during circuit parsing if any error occurs during circuit parsing
+ command altermod allows reading from file + command altermod allows reading from file
+ command "devhelp" to show available devices and describe device parameters + command "devhelp" to show available devices and describe device parameters
+ command "inventory" to print the number of istances of each device. + 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 + enable 64 bit compilation in MS Visual Studio
+ --adms3 flag to compile with (experimental) adms code + --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 'remcirc' to remove a circuit from the list
+ command 'wrdata' aknowledges appendwrite and prints complex variables + command 'wrdata' aknowledges appendwrite and prints complex variables
+ allow comment lines inside of command files + allow comment lines inside of command files
+ path variable NGSPICE_INPUT + path variable NGSPICE_INPUT
+ 'Filesource' code model + 'Filesource' code model
- Bug fixes: - Bug fixes:
+ More on prototypes, type casts, reordering of functions, compiler warnings + More on prototypes, type casts, reordering of functions, compiler warnings
+ fix a numerical problem in the hisim2 and hisimhv models + fix a numerical problem in the hisim2 and hisimhv models
+ plot i(vdd) from a loaded rawfile + plot i(vdd) from a loaded rawfile
+ fix the guard for device generated internal nodes (via CKTmkVolt()) + fix the guard for device generated internal nodes (via CKTmkVolt())
+ reduce memory leaks for command 'reset' + reduce memory leaks for command 'reset'
+ parameter processing for nested .subckt + parameter processing for nested .subckt
+ bsim4/b4noi.c: correct init the correlated noise slot in noiseDens and lnNdens vector + bsim4/b4noi.c: correct init the correlated noise slot in noiseDens and lnNdens vector
+ Many small bugs + Many small bugs
Ngspice-23, June 5th, 2011 Ngspice-23, June 5th, 2011
============ ============
- New features: - New features:
+ Reduction of trtol to 1 only if 'A' devices in the circuit and xspice is enabled + 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 + 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 + d_source d_state d_ram, test cases for those xspice codemodels
+ transient noise simulation added to independent voltage and current sources + transient noise simulation added to independent voltage and current sources
+ Random telegraph noise added to independent voltage and current sources + Random telegraph noise added to independent voltage and current sources
+ 'time = nnn' in stop command added + 'time = nnn' in stop command added
+ random voltage generator option trrandom to independent voltage and current sources + 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) + ngspice build possible in a separate directory (e.g. in ng-spice-rework/release)
+ update FIND .. WHEN measurements + update FIND .. WHEN measurements
+ diode & bjt temperature model update with tlev and tlevc + diode & bjt temperature model update with tlev and tlevc
+ merge bsim3v1a code with bsim3v0 and bsim3v1s code with bsim3v1 + merge bsim3v1a code with bsim3v0 and bsim3v1s code with bsim3v1
+ bjt2: removed - all GP extensions of this model are now in the bjt model + bjt2: removed - all GP extensions of this model are now in the bjt model
+ HiSIM_HV model vers. 1.2.1 added + HiSIM_HV model vers. 1.2.1 added
+ bsim3v32: delvto and mulu0 as instance parameters + bsim3v32: delvto and mulu0 as instance parameters
+ Replace HiSIM1 by HiSIM_2.5.1_Release_20110407 + Replace HiSIM1 by HiSIM_2.5.1_Release_20110407
- Bug fixes: - Bug fixes:
+ More on prototypes, type casts, reordering of functions, compiler warnings + More on prototypes, type casts, reordering of functions, compiler warnings
+ allow models like 2N2904 or 2SK136 also in subcircuits + allow models like 2N2904 or 2SK136 also in subcircuits
+ fix sensitvity calculation (for the dc-2+.cir testcase) + fix sensitvity calculation (for the dc-2+.cir testcase)
+ allow multiple call to setup w/ correct node collapsing + allow multiple call to setup w/ correct node collapsing
+ Many small bugs + Many small bugs
Ngspice-22, Sept 26th, 2010 Ngspice-22, Sept 26th, 2010
============ ============
@ -107,11 +107,11 @@ Ngspice-22, Sept 26th, 2010
+ command 'option' for use in spinit, .spiceinit, and in scripts + command 'option' for use in spinit, .spiceinit, and in scripts
+ adms procedure updated + adms procedure updated
+ new random number generator, random functions sunif() and sgauss() + new random number generator, random functions sunif() and sgauss()
+ ngspice manual updated + ngspice manual updated
- Bug fixes: - Bug fixes:
+ Major code cleanup to reduce compiler/linker warnings: ansi function prototypes, + Major code cleanup to reduce compiler/linker warnings: ansi function prototypes,
void/char pointers to named pointers, explicit type casts and many more void/char pointers to named pointers, explicit type casts and many more
+ Many small bugs + Many small bugs
@ -119,16 +119,16 @@ Ng-spice-rework-21, Jun3, 13th 2010
============ ============
- Updated Devices: BSIMSOI 4.3.1 - Updated Devices: BSIMSOI 4.3.1
- New features: - New features:
+ Compatibility: C, L, R, devices and E, G sources with expressions + Compatibility: C, L, R, devices and E, G sources with expressions
Variables HERTZ, TIME, TEMPER added Variables HERTZ, TIME, TEMPER added
+ E, G sources with pwl function + E, G sources with pwl function
+ New manual + New manual
+ Plotting with Gnuplot, + Plotting with Gnuplot,
+ Writing wrdata for simple text table to file + Writing wrdata for simple text table to file
+ .measure improved + .measure improved
+ transmission line models improved + transmission line models improved
- Bug fixes: - Bug fixes:
+ Many small bugs, memory leaks, memory overflows + 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. Ngspice release 20 is the second release of the simulator in 2009.
- Fixes: model names starting with a number (1n4001) are now correctly parsed. - Fixes: model names starting with a number (1n4001) are now correctly parsed.
The .global command has been reinstated (it was previously disabled) and The .global command has been reinstated (it was previously disabled) and
error messages now display the corresponding line numberin the input deck. 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). 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. functionality for B (arbitrary generator) sources.
Ng-spice-rework-19, April, 23rd 2009 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. 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. fixes for SunOS, MS Visual Studio, MINGW, Cygwin.
- Memory management: fixed memory leaks, modifies memory management for - Memory management: fixed memory leaks, modifies memory management for
MS Windows, integration of espice bugfixes and enhancements, bug fixes in MS Windows, integration of espice bugfixes and enhancements, bug fixes in
plots and cli interface. plots and cli interface.
- Rework of BSim models, integration of EPFL-EKV model V2.63, ADMS models - Rework of BSim models, integration of EPFL-EKV model V2.63, ADMS models
mextram, hicum0, hicum2. mextram, hicum0, hicum2.
Ng-spice-rework-18 Ng-spice-rework-18
@ -187,7 +187,7 @@ into the simulator.
Ng-spice-rework-17 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. 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: 15-fixedRC3). This release improves ngspice in three ways:
- Bug fixing: most of the bugs that affected rework-15 have been fixed, - 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. subcircuit (X devices) handling and the numparam library.
- New features: netlist syntax has been expandend allowing for end-of-line - 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. 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 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 for resistors on the instance line. The editline library can be used
instead of readline (no more GPL license violation). instead of readline (no more GPL license violation).
- Porting: ngspice now works (with xspice extension) on Windows using - Porting: ngspice now works (with xspice extension) on Windows using
MINGW/MSYS. MINGW/MSYS.
Ng-spice-rework-15 Ng-spice-rework-15
============ ============
Rework-15 release is a giant leap forward for ngspice. It incorporates Rework-15 release is a giant leap forward for ngspice. It incorporates
many (read most) of the improvements implemented in tclspice during the many (read most) of the improvements implemented in tclspice during the
two years long "sleep" of ngspice and adds many others. The incomplete two years long "sleep" of ngspice and adds many others. The incomplete
list of new features incorporated are: list of new features incorporated are:
- Xspice simulator (with codemodel dynamic loading support): - Xspice simulator (with codemodel dynamic loading support):
a mixed signal simulator built upon spice3. a mixed signal simulator built upon spice3.
- Cider simulator: - Cider simulator:
a mixed level simulator built upon spice3. a mixed level simulator built upon spice3.
- Numparam library: - Numparam library:
a library that allows for parameter substitution at netlist level. a library that allows for parameter substitution at netlist level.
- Improved models: - Improved models:
Diode model includes periphery effects and high level of injection effects, Diode model includes periphery effects and high level of injection effects,
BJT and BJT2 enhanced. BJT and BJT2 enhanced.
BSIM3 now includes ACM. BSIM3 now includes ACM.
BSIM4 implementation corrected. BSIM4 implementation corrected.
-New models: -New models:
VBIC (3 Terminals, no excess phase and thermal network), VBIC (3 Terminals, no excess phase and thermal network),
HiSIM. HiSIM.
- Frontend leaks closed. - Frontend leaks closed.
Now frontend works as it should. Now frontend works as it should.
- Many new example file. - Many new example file.
- Xgraph plotting program included. - Xgraph plotting program included.
@ -250,11 +250,11 @@ Ng-spice-rework-14
============ ============
This is a major release in terms of bug-fixes. Some enhancements 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 source code for the latter must be obtained from EKV web site
(see DEVICE for more info). To enable EKV support you have (see DEVICE for more info). To enable EKV support you have
to obtain the code first and then use the configure switch 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 The spice code contains an option to debug frontend code, now
this is available in configure as "--enable-ftedebug". 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. This is a major release in terms of fixes and enhancements.
A garbage collector support has been added. If the configuration A garbage collector support has been added. If the configuration
script detects that you have installed GC (Bohem-Weiser conservative script detects that you have installed GC (Bohem-Weiser conservative
garbage collector), it will use it. Some memory leaks have been garbage collector), it will use it. Some memory leaks have been
fixed too. 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): description of improvements follows (extracted form Alan's mail):
Output File Format Changes - Output File Format Changes -
(NOTE: Do not rely on this, we may revert to the old format (NOTE: Do not rely on this, we may revert to the old format
in the next release). in the next release).
Text mode .OP results even though "rawfile" written. 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 A device multiplier instance parameter "M" (i.e. M devices in
parallel) was added to the MOS1,2,3 and BSIM3 mosfet models. parallel) was added to the MOS1,2,3 and BSIM3 mosfet models.
Input Read-in and Checking - Input Read-in and Checking -
Numbers beginning with a + sign got the input routine confused. 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 Previously each time-point was checked as it was reached during
the simulation, which could be very annoying if you made a mistake the simulation, which could be very annoying if you made a mistake
which caused the simulation to fail after hours of run-time. which caused the simulation to fail after hours of run-time.
A check which was performed at the end of each sub-circuit expansion 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 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 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 The "rawfile" writing routines have been modified to print the
"reference value" to the console during the simulation. This lets "reference value" to the console during the simulation. This lets
the user see exactly how far and how fast the simulation is 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. .OP printout tidied up a lot to make the printout clearer.
@ -424,17 +424,17 @@ Etc. -
Ng-spice-rework-12 Ng-spice-rework-12
============ ============
Arno did a great work this summer! Arno did a great work this summer!
The pole-zero analysis has been corrected. The error was introduced The pole-zero analysis has been corrected. The error was introduced
in an attempt to eliminate compiler warnings. The source has been 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 reworked and info file have been updated. As you may see, a new dir
called "spicelib" has been created, another step toward the separation 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 Ng-spice-rework-11
============ ============
Resistor code (device) has been modified to conform to spice3 device Resistor code (device) has been modified to conform to spice3 device
coding standard. coding standard.
A new step function (U2) has been introduced. A new step function (U2) has been introduced.
Documentation updated. Documentation updated.
@ -483,7 +483,7 @@ Usage of this patch, once incorporated:
# create a working tree to work from # create a working tree to work from
cp -a ng-spice-rework-x ng-spice cp -a ng-spice-rework-x ng-spice
[ Changes made to ng-spice ] [ Changes made to ng-spice ]
# clean up all the automatically generated files # clean up all the automatically generated files
@ -528,7 +528,7 @@ AC resistance.
Ng-spice-rework-5 and 5_2 (Jan 2000) 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) 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 2) Patched the following bug (thanks to Andrew Tuckey for having
supplied the patch). supplied the patch).
* Wsw (current controlled switch) in subckt, parsing bug. * Wsw (current controlled switch) in subckt, parsing bug.
* scale factor in arbitrary source. * scale factor in arbitrary source.
* bug in noise analysis. * bug in noise analysis.
* save segmentation faults. * save segmentation faults.

48
README
View File

@ -1,60 +1,60 @@
README for NGSPICE README for NGSPICE
================== ==================
Ngspice is a mixed-level/mixed-signal circuit simulator. Its code Ngspice is a mixed-level/mixed-signal circuit simulator. Its code
is based on three open source software packages: Spice3f5, Cider1b1 is based on three open source software packages: Spice3f5, Cider1b1
and Xspice. and Xspice.
Spice3 does not need any introduction, is the most popular circuit 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 simulator. In over 30 years of its life Spice3 has become a de-facto
standard for simulating circuits. standard for simulating circuits.
Cider couples Spice3f5 circuit level simulator to DSIM device simulator 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. devices are described in terms of their structures and materials.
Xspice is an extension to Spice3C1 that provides code modeling support Xspice is an extension to Spice3C1 that provides code modeling support
and simulation of digital components through an embedded event driven and simulation of digital components through an embedded event driven
algorithm. 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, above, as many people contributed to the project with their experience,
their bug fixes and their improvements. If you are interested, browse their bug fixes and their improvements. If you are interested, browse
the site and discover what ngspice offers and what needs. If you think the site and discover what ngspice offers and what needs. If you think
you can help, join the development team. you can help, join the development team.
Ngspice is an ongoing project, growing everyday from users contributions, Ngspice is an ongoing project, growing everyday from users contributions,
suggestions and reports. What we will be able to do depends mostly on suggestions and reports. What we will be able to do depends mostly on
user interests, contributions and feedback. user interests, contributions and feedback.
MAILING LISTS: 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: * ngspice-users@lists.sourceforge.net:
This list is the list for the users of the ngspice simulator. This list is the list for the users of the ngspice simulator.
* ngspice-devel@lists.sourceforge.net: * ngspice-devel@lists.sourceforge.net:
ngspice development issues. Developers and "want to be" developers should ngspice development issues. Developers and "want to be" developers should
subscribe here. subscribe here.
To subscribe the list(s), send a message to: To subscribe the list(s), send a message to:
<ngspice-users-subscribe@lists.sourceforge.net> <ngspice-users-subscribe@lists.sourceforge.net>
<ngspice-devel-subscribe@lists.sourceforge.net> <ngspice-devel-subscribe@lists.sourceforge.net>
OBSOLETE MAILING LISTS: OBSOLETE MAILING LISTS:
------------- -------------
* ngspice-bugs@list.sourceforge.net: * ngspice-bugs@list.sourceforge.net:
This list is no longer used by the ngspice maintainers. Bug reports should This list is no longer used by the ngspice maintainers. Bug reports should
go to the ngspice bug tracker. go to the ngspice bug tracker.
WEB SITEs: 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 home page is http://ngspice.sourceforge.net
The summary page is http://sourceforge.net/projects/ngspice The summary page is http://sourceforge.net/projects/ngspice

View File

@ -39,8 +39,8 @@ Holger Vogt, May 2013
INTRODUCTION INTRODUCTION
In this document we will provide a guideline on how to auto-generate the 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 ready-to compile C code for the ngspice API of a compact device model
defined in the Verilog-AMS language. defined in the Verilog-AMS language.
Condition: Condition:
@ -61,9 +61,9 @@ Goal:
using the Verilog-AMS source code available at: using the Verilog-AMS source code available at:
http://www.iee.et.tu-dresden.de/~schroter/Hicum_PD/Hicumna/hicumL0V1p11.va http://www.iee.et.tu-dresden.de/~schroter/Hicum_PD/Hicumna/hicumL0V1p11.va
Limitations: Limitations:
The adms ngspice interface supports a limited set of Verilog-AMS language The adms ngspice interface supports a limited set of Verilog-AMS language
constructs. See the home page of adms (http://mot-adms.sourceforge.net/) constructs. See the home page of adms (http://mot-adms.sourceforge.net/)
for more info. for more info.
Feel free to contribute to the adms ngspice interface so that more Feel free to contribute to the adms ngspice interface so that more
constructs can be supported. constructs can be supported.
@ -72,42 +72,42 @@ Limitations:
01- ngspice Files 01- ngspice Files
Ngspice does not (yet) have support for loading models at run time, every 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 ngspice is a process that cannot be completely automated. Some files need
to be edited by hand. to be edited by hand.
01.01 What ngspice need to know of a new model ? 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 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 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 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). type for your new device (let's call this device_type).
Since there can be more than one model for each device type, another 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 parameter you have to set is the device_level, which must be unique
for each device type. for each device type.
Once you have found the (device_type, device_level) couple you have 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:
<ngspice-data-tree>/configure.ac <ngspice-data-tree>/configure.ac
Here you have to add the entries in adms section for your new directory Here you have to add the entries in adms section for your new directory
and library. and library.
<ngspice-data-tree>/src/spicelib/parser/inp2<device_type>.c <ngspice-data-tree>/src/spicelib/parser/inp2<device_type>.c
Substitute <device_type> with the letter corresponding to the Substitute <device_type> 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) 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
<ngspice-data-tree>/src/spicelib/parser/inpdomod.c <ngspice-data-tree>/src/spicelib/parser/inpdomod.c
Here you have to add a switch for the level of your new device. Here you have to add a switch for the level of your new device.
<ngspice-data-tree>/src/spicelib/devices/dev.c <ngspice-data-tree>/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. model. In dev.c you have to adjust some macro.
See existing examples to make the modifications for your own implementation. See existing examples to make the modifications for your own implementation.
<ngspice-data-tree> is the path to the ngspice source installation. <ngspice-data-tree> is the path to the ngspice source installation.
For instance <ngspice-data-tree> can be /tools/ng-spice-rework-17 For instance <ngspice-data-tree> can be /tools/ng-spice-rework-17
@ -120,7 +120,7 @@ Limitations:
<ngspice-data-tree>/src/spicelib/devices/adms/admst/ngspice*.xml <ngspice-data-tree>/src/spicelib/devices/adms/admst/ngspice*.xml
adms creates the ready-to-compile C code from a set of admst code 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 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.) very close to the XSLT language (it includes some extensions.)
03- Create the data file structure 03- Create the data file structure
@ -130,7 +130,7 @@ Limitations:
-b <ngspice-data-tree>/src/spicelib/devices/adms/hicum0/admsva -b <ngspice-data-tree>/src/spicelib/devices/adms/hicum0/admsva
There is no convention on the way to choice the last directory name in -a. 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 04- Save the Verilog-AMS source code
@ -166,7 +166,7 @@ Limitations:
adms: adms:
admsXml.exe -Iadmsva admsva/hic0_full.va \ 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 06.01 Manual changes
In directory <ngspice-data-tree> edit file configure.ac, add new device 'hicum0' In directory <ngspice-data-tree> 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 .model mybjtmodel npn
+ pnp=1 + pnp=1
+ level=5 + level=5
In both cases flag 'npn' is just ignored. In both cases flag 'npn' is just ignored.
In section 'Update manually the ngspice parser files' it is recommended In section 'Update manually the ngspice parser files' it is recommended
to use flag 'adms' instead. to use flag 'adms' instead.

View File

@ -21,7 +21,7 @@
Welcome to tclspice README_tcl 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 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, help you to start with it. It also contains usefull datas to keep informed,
get help, or get involved in the project. get help, or get involved in the project.
@ -34,16 +34,16 @@ Lionel (saintel@users.sourceforge.net)
What is tclspice: What is tclspice:
tclspice is a variant of ngspice. It share 95% of its code (approx). The 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, 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 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 and which can either automatically process a spice directives script. It can
also propose you a command line interface. also propose you a command line interface.
tclspice is a tcl package name. It is based on libspice shared library. This 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 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 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 feature some new commands that are usefull for the integration into the tcl
environment. environment.
tclspice differs from ngspice by its printf (bundled to tcl printf), malloc (tcl tclspice differs from ngspice by its printf (bundled to tcl printf), malloc (tcl
malloc), data handling and plotting (BLT toolkit extensions to tcl/tk). malloc), data handling and plotting (BLT toolkit extensions to tcl/tk).
@ -62,7 +62,7 @@ tcl 8.4
tk 8.4 tk 8.4
blt 2.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. 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 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 plain ngspice, that is a standalone program. This flag is --with-tcl. It accepts an

View File

@ -31,7 +31,7 @@ DEBUGGING SPICE
To avoid a segmentation fault in the initial run, use the following To avoid a segmentation fault in the initial run, use the following
command in gdb: 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 Or, the comparable command in your shell before running gdb. This
disable accurate tracking of how much memory is used. disable accurate tracking of how much memory is used.