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

View File

@ -2,7 +2,7 @@
Spice was originally written at The University of California at Berkeley (USA).
Since then, there have been many people working on the software, most of them
releasing patches to the original code through the Internet.
releasing patches to the original code through the Internet.
The following people have contributed in some way:

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

120
COPYING
View File

@ -1,82 +1,82 @@
12345678901234567890123456789012345678901234567890123456789012345678901234567890
Ngspice-25
Copyright (c) 2012,
Copyright (c) 2012,
All rights reserved.
Foreword:
Spice's name was originally chosen at the University of California, Berkeley.
As it is the basis of almost all circuit simulators, the major part of the
analogue and mixed signals simulation's code is designed to fit with it.
Spice's name was originally chosen at the University of California, Berkeley.
As it is the basis of almost all circuit simulators, the major part of the
analogue and mixed signals simulation's code is designed to fit with it.
The *spices (generic name for its forks) are heterogeneous in many points due
to the work of researchers, electronic designers, software editors, etc.
The Ngspice team tries to collect work from the different sources and
contribute new functionalities. Thus, the material we manipulate is
The Ngspice team tries to collect work from the different sources and
contribute new functionalities. Thus, the material we manipulate is
heterogeneous in licenses. Keeping the licenses as is, is the way to live with
that diversity. For release 25 as well, we choose not to relicense.
Copyleft is a fundamental question in FOSS development. The choice of a
Copyleft is a fundamental question in FOSS development. The choice of a
copylefted contribution, or a non copylefted contribution is an important
choice that should be respected. Ngspice branch as a whole will not be covered
by a specific license. The Ngspice team wants to encourage contributions to
ngspice. We let each new developper choose its position regarding copyleft,
as we respect the position of the former developpers. In order to keep things
by a specific license. The Ngspice team wants to encourage contributions to
ngspice. We let each new developper choose its position regarding copyleft,
as we respect the position of the former developpers. In order to keep things
clear ngspice team proposes to follow the following guidelines:
Each piece of code should be kept under its original contributor's license.
Each piece of code should be kept under its original contributor's license.
As for any project, modifications made in sources covered by a less
restrictive license can be covered by a more restrictive license, such as
restrictive license can be covered by a more restrictive license, such as
GPL. We do not encourage it.
If you feel to add code in a file under a different license than the rest of
the file, please use comments to mark the boundaries of the modification, and
edit the comments at the begining of the file with correct license and
edit the comments at the begining of the file with correct license and
copyright information.
We encourage restrictive licenses to be chosen only for new functionalities,
written in distinct files, leading to distinct libraries that links depending
We encourage restrictive licenses to be chosen only for new functionalities,
written in distinct files, leading to distinct libraries that links depending
on a specific configure flag.
We encourage non proliferation of licenses (e.g. choosing either GPL, LGPL or
new BSD).
new BSD).
This heterogenous license status makes it difficult to know which license
applies. Please take care of knowing which license aplies to the code you are
editing, or conveying and not to commit license infringements, especially to
This heterogenous license status makes it difficult to know which license
applies. Please take care of knowing which license aplies to the code you are
editing, or conveying and not to commit license infringements, especially to
GPL and LGPL which are quite restrictive.
On 2007, July 17th spice 3f5 changed from its original license to the new BSD
On 2007, July 17th spice 3f5 changed from its original license to the new BSD
license. (http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm)
On 2008, December 1st, tclspice changes license from GPL to LGPLv2, in
On 2008, December 1st, tclspice changes license from GPL to LGPLv2, in
accordance with Multigig Ltd, the copyright holder.
The following table is just a reminder on license status, please don't rely
on it:
Author License Notes
numparam Georg Post LGPL Applies to the code in
frontend/numparam
adms Laurent Lemaitre LGPL Applies to scripts in the
on it:
Author License Notes
numparam Georg Post LGPL Applies to the code in
frontend/numparam
adms Laurent Lemaitre LGPL Applies to scripts in the
spicelib/dev/adms
tclspice Stefan Jones LGPL TCL integration
tclspice Stefan Jones LGPL TCL integration
cider U. of California Old BSD Device level simulator
xspice Georgia Tech. Public D Mixed signals
xspice Georgia Tech. Public D Mixed signals
spice U. of California New BSD Analog circuit simulation
---------------------------------- Cider -----------------------------------
RESEARCH SOFTWARE AGREEMENT
This file specifies the terms under which the software and
documentation provided with this distribution are provided.
Software is distributed as is, completely without warranty
or service support. The University of California and its employ-
ees are not liable for the condition or performance of the
software.
The University does not warrant that it owns the copyright
or other proprietary rights to all software and documentation
provided under this agreement, notwithstanding any copyright
@ -84,35 +84,35 @@ spice U. of California New BSD Analog circuit simulation
or proprietary rights brought by third parties against the reci-
pient of the software and documentation provided under this
agreement.
THE UNIVERSITY OF CALIFORNIA HEREBY DISCLAIMS ALL IMPLIED
WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE UNIVERSITY IS NOT
LIABLE FOR ANY DAMAGES INCURRED BY THE RECIPIENT IN USE OF THE
SOFTWARE AND DOCUMENTATION, INCLUDING DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, OR CONSEQUENTIAL DAMAGES.
The University of California grants the recipient the right
to modify, copy, and redistribute the software and documentation,
both within the recipient's organization and externally, subject
to the following restrictions:
(a) The recipient agrees not to charge for the University of
California code itself. The recipient may, however, charge
for additions, extensions, or support.
(b) In any product based on the software, the recipient agrees
to acknowledge the research group that developed the
software. This acknowledgement shall appear in the product
documentation.
(c) The recipient agrees to obey all U.S. Government restric-
tions governing redistribution or export of the software and
documentation.
---------------------------------- Spice3f5 --------------------------------
---------------------------------- Spice3f5 --------------------------------
Copyright (c) 1985-1991 The Regents of the University of California.
All rights reserved.
@ -135,8 +135,8 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-------------------------------- Tclspice --------------------------------
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
@ -147,7 +147,7 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@ -249,7 +249,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@ -283,7 +283,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@ -569,7 +569,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@ -593,17 +593,17 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
---------------------------------- Xspice --------------------------------
THE SOFTWARE PROGRAMS BELOW ARE IN THE PUBLIC DOMAIN AND ARE PROVIDED FREE OF
ANY CHARGE. THE GEORGIA TECH RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF
THE SOFTWARE PROGRAMS BELOW ARE IN THE PUBLIC DOMAIN AND ARE PROVIDED FREE OF
ANY CHARGE. THE GEORGIA TECH RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF
TECHNOLOGY, AND/OR OTHER PARTIES PROVIDE THIS SOFTWARE "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH THE USER.
SHOULD THE PROGRAM PROVE DEFECTIVE, THE USER ASSUMES THE ENTIRE COST OF ALL
NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL THE GEORGIA TECH
RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF TECHNOLOGY, AND/OR OTHER PARTIES
PROVIDING THE PROGRAMS BELOW BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH THE USER.
SHOULD THE PROGRAM PROVE DEFECTIVE, THE USER ASSUMES THE ENTIRE COST OF ALL
NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL THE GEORGIA TECH
RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF TECHNOLOGY, AND/OR OTHER PARTIES
PROVIDING THE PROGRAMS BELOW BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS).

84
DEVICES
View File

@ -27,7 +27,7 @@ Table of contents
5.2 SW - Voltage controlled switch
6. Diodes
6.1 DIO - Junction Diode
7. Bipolar devices
7. Bipolar devices
7.1 BJT - Bipolar Junction Transistor
7.2 BJT2 - Bipolar Junction Transistor
7.3 VBIC - Bipolar Junction Transistor
@ -79,7 +79,7 @@ will be updated every time the device specific code is altered or changed to ref
2.1 CAP - Linear capacitor
Ver: N/A
Class: C
Level: 1 (and only)
@ -96,7 +96,7 @@ will be updated every time the device specific code is altered or changed to ref
2.2 IND - Linear Inductor
Ver: N/A
Class: L
Level: 1 (and only)
@ -163,7 +163,7 @@ will be updated every time the device specific code is altered or changed to ref
- Does not implement parallel code switches.
3.3 TRA - Transmission line
Ver: N/A
Class: T
Level: 1 (and only)
@ -206,7 +206,7 @@ will be updated every time the device specific code is altered or changed to ref
4. Voltage and current sources
4.1 ASRC - Arbitrary Source
Ver: N/A
Class: B
Level: 1 (and only)
@ -218,7 +218,7 @@ will be updated every time the device specific code is altered or changed to ref
current of current-controlled generators.
4.2 CCCS - Current Controlled Current Source
Ver: N/A
Class: F
Level: 1 (and only)
@ -228,7 +228,7 @@ will be updated every time the device specific code is altered or changed to ref
- Original spice model.
4.3 CCVS - Current Controlled Voltage Source
Ver: N/A
Class: H
Level: 1 (and only)
@ -239,7 +239,7 @@ will be updated every time the device specific code is altered or changed to ref
4.4 ISRC - Independent Current Source
Ver: N/A
Class: I
Level: 1 (and only)
@ -292,7 +292,7 @@ will be updated every time the device specific code is altered or changed to ref
5. Switches
5.1 CSW - Current controlled switch
Ver: N/A
Class: W
Level: 1 (and only)
@ -331,7 +331,7 @@ will be updated every time the device specific code is altered or changed to ref
- Temperature correction of some parameters
7. Bipolar devices
7. Bipolar devices
7.1 BJT - Bipolar Junction Transistor
@ -365,14 +365,14 @@ will be updated every time the device specific code is altered or changed to ref
- Different area parameters for collector, base and emitter
7.3 VBIC - Bipolar Junction Transistor
Ver: N/A
Class: Q
Level: 4 & 9
Dir: devices/vbic
Status:
This is the Vertical Bipolar InterCompany model in version 1.2. The author
This is the Vertical Bipolar InterCompany model in version 1.2. The author
of VBIC is Colin McAndrew mcandrew@ieee.org.
Spice3 Implementation: Dietmar Warning DAnalyse GmbH
Web Site: http://www.designers-guide.com/VBIC/index.html
@ -417,10 +417,10 @@ will be updated every time the device specific code is altered or changed to ref
9. HFET Devices
Added code from macspice3f4 HFET1&2 and MESA model
Added code from macspice3f4 HFET1&2 and MESA model
Original note:
Added device calls for Mesfet models and HFET models
provided by Trond Ytterdal as of Nov 98
provided by Trond Ytterdal as of Nov 98
9.1 HFET1 - Heterostructure Field Effect Transistor Level 1
@ -432,7 +432,7 @@ will be updated every time the device specific code is altered or changed to ref
This is the Heterostructure Field Effect Transistor model from:
K. Lee, M. Shur, T. A. Fjeldly and T. Ytterdal
"Semiconductor Device Modeling in VLSI",
"Semiconductor Device Modeling in VLSI",
1993, Prentice Hall, New Jersey
Enhancements over the original model:
@ -460,7 +460,7 @@ will be updated every time the device specific code is altered or changed to ref
10. MES devices
10.1 MES - MESFET model
Ver: N/A
Class: Z
Level: 1
@ -474,10 +474,10 @@ will be updated every time the device specific code is altered or changed to ref
- Alan Gillespie junction diodes implementation
Added code from macspice3f4 HFET1&2 and MESA model
Added code from macspice3f4 HFET1&2 and MESA model
Original note:
Added device calls for Mesfet models and HFET models
provided by Trond Ytterdal as of Nov 98
provided by Trond Ytterdal as of Nov 98
10.2 MESA - MESFET model (MacSpice3f4)
@ -500,7 +500,7 @@ will be updated every time the device specific code is altered or changed to ref
11. MOS devices
11.1 MOS1 - Level 1 MOS model
Ver: N/A
Class: M
Level: 1
@ -514,7 +514,7 @@ will be updated every time the device specific code is altered or changed to ref
- Temperature difference from circuit temperature
11.2 MOS2 - Level 2 MOS model
Ver: N/A
Class: M
Level: 2
@ -562,9 +562,9 @@ will be updated every time the device specific code is altered or changed to ref
Dir: devices/mos9
Status:
This is a slightly modified Level 3 MOSFET model.
This is a slightly modified Level 3 MOSFET model.
(Whatever the implementer have had in mind.)
Not to confuse with Philips level 9.
Not to confuse with Philips level 9.
Enhancements over the original model:
- Temperature difference from circuit temperature
@ -576,7 +576,7 @@ will be updated every time the device specific code is altered or changed to ref
Level: 4
Dir: devices/bsim1
Status:
Enhancements over the original model:
- Parallel multiplier
- Noise analysis
@ -589,7 +589,7 @@ will be updated every time the device specific code is altered or changed to ref
11.7 BSIM2 - BSIM model level 2
Ver: N/A
Class: M
Level: 5
@ -602,7 +602,7 @@ will be updated every time the device specific code is altered or changed to ref
11.8 BSIM3v0 - BSIM model level 3
Ver: 3.0
Class: M
Level: 8 & 49, version = 3.0
@ -644,7 +644,7 @@ will be updated every time the device specific code is altered or changed to ref
- Multirevision code (supports all 3v3.2 minor revisions)
- NodesetFix
11.11 BSIM3 - BSIM model level 3
Ver: 3.3.0
@ -668,7 +668,7 @@ will be updated every time the device specific code is altered or changed to ref
11.12 BSIM4 - BSIM model level 4
Ver: 4.2.0 - 4.6.5
Class: M
Level: 14 & 54, version = 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6
@ -684,10 +684,10 @@ will be updated every time the device specific code is altered or changed to ref
- Parallel Multiplier
- NodesetFix
- Support for Multi-core processors using OpenMP
11.13 HiSIM2 - Hiroshima-university STARC IGFET Model
Ver: 2.7.0
Class: M
Level: 61, 68
@ -701,7 +701,7 @@ will be updated every time the device specific code is altered or changed to ref
11.14 HiSIM_HV - Hiroshima-University STARC IGFET High Voltage Model
Ver: 1.2.3
Class: M
Level: 62, 73
@ -733,7 +733,7 @@ will be updated every time the device specific code is altered or changed to ref
12.2 BSIM3SOI_DD - SOI Model (dynamic depletion model)
Ver: 2.1
Class: M
Level: 56
@ -755,7 +755,7 @@ will be updated every time the device specific code is altered or changed to ref
Dir: devices/bsim3soi_pd
Status: TO BE TESTED.
PD model has been integrated. There is a bsim3soipd directory
PD model has been integrated. There is a bsim3soipd directory
under the test hierarchy. Test circuits come from the bsim3soi
Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi
@ -763,27 +763,27 @@ will be updated every time the device specific code is altered or changed to ref
12.4 BSIMSOI - Berkeley SOI model (partially/full depleted devices)
Ver: 4.3.1
Class: M
Level: 10 & 58
Dir: devices/bsim3soi
Status: o.k.
This is the actual version from Berkeley. This version is
This is the actual version from Berkeley. This version is
backward compatible with its previous versions BSIMSOI3.x.
Usable for partially/full depleted devices.
Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi
Enhancements over the original model:
- Parallel Multiplier
- Support for Multi-core processors using OpenMP
- Parallel Multiplier
- Support for Multi-core processors using OpenMP
12.5 SOI3 - STAG SOI3 Model
Ver: 2.6
Class: M
Level: 61
@ -794,9 +794,9 @@ will be updated every time the device specific code is altered or changed to ref
13. Verilog-A models
Configuring ngspice with ADMS (see Readme.adms) following
Configuring ngspice with ADMS (see Readme.adms) following
devices are available:
13.1 EKV MOS Model
Ver: 2.6
@ -806,9 +806,9 @@ will be updated every time the device specific code is altered or changed to ref
EKV version based on a contribution of Ivan Riis Nielsen 11/2006
Web site at: http://legwww.epfl.ch/ekv/
Web site at: http://legwww.epfl.ch/ekv/
(but EPFL is not publishing any usefull code)
13.2 PSP MOS Model

204
FAQ
View File

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

244
INSTALL
View File

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

252
NEWS
View File

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

48
README
View File

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

View File

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

View File

@ -21,7 +21,7 @@
Welcome to tclspice README_tcl
This file acompanies ngspice sources starting with ngspice-rework-18. It
This file acompanies ngspice sources starting with ngspice-rework-18. It
describes what tclspice is, its installation, and points to resources that will
help you to start with it. It also contains usefull datas to keep informed,
get help, or get involved in the project.
@ -34,16 +34,16 @@ Lionel (saintel@users.sourceforge.net)
What is tclspice:
tclspice is a variant of ngspice. It share 95% of its code (approx). The
different between plain NGspice and tclspice is the type of binary it produces,
and the way to access it. NGspice is a standalone program that you can execute
and which can either automatically process a spice directives script. It can
tclspice is a variant of ngspice. It share 95% of its code (approx). The
different between plain NGspice and tclspice is the type of binary it produces,
and the way to access it. NGspice is a standalone program that you can execute
and which can either automatically process a spice directives script. It can
also propose you a command line interface.
tclspice is a tcl package name. It is based on libspice shared library. This
library is specifically designed to be loaded in tcl interpreters such as tclsh
tclspice is a tcl package name. It is based on libspice shared library. This
library is specifically designed to be loaded in tcl interpreters such as tclsh
or wish. Then all spice directives are available as tcl functions. libspice also
feature some new commands that are usefull for the integration into the tcl
environment.
feature some new commands that are usefull for the integration into the tcl
environment.
tclspice differs from ngspice by its printf (bundled to tcl printf), malloc (tcl
malloc), data handling and plotting (BLT toolkit extensions to tcl/tk).
@ -62,7 +62,7 @@ tcl 8.4
tk 8.4
blt 2.4
Tclspice is built and installed the same way as ngspice. Then, after reading this
Tclspice is built and installed the same way as ngspice. Then, after reading this
paragraph, the information you lack will probably be in README file in this directory.
There is a configuration flag to set in order to compile tclspice library rather than
plain ngspice, that is a standalone program. This flag is --with-tcl. It accepts an

View File

@ -31,7 +31,7 @@ DEBUGGING SPICE
To avoid a segmentation fault in the initial run, use the following
command in gdb:
setenv SPICE_NO_DATASEG_CHECK "1"
setenv SPICE_NO_DATASEG_CHECK "1"
Or, the comparable command in your shell before running gdb. This
disable accurate tracking of how much memory is used.