whitespace
This commit is contained in:
parent
cda86d9b82
commit
b19641dcc2
72
ANALYSES
72
ANALYSES
|
|
@ -7,7 +7,7 @@ This file lists the analyses currently implemented into ngspice.
|
|||
|
||||
Table of Contents
|
||||
|
||||
1 Noise analysis (NOISE)
|
||||
1 Noise analysis (NOISE)
|
||||
2 Operating point analysis (OP)
|
||||
3 Operating point sweep Analysis (DC)
|
||||
3.1 Enhancements
|
||||
|
|
@ -24,85 +24,85 @@ Table of Contents
|
|||
1 Noise analysis (NOISE)
|
||||
|
||||
The noise analysis does analysis device-generated noise for the given
|
||||
circuit. When provided with an input source and an output port, the analysis
|
||||
calculates the noise contributions of each device (and each noise generator
|
||||
within the device) to the output port voltage. It also calculates the input
|
||||
noise to the circuit, equivalent to the output noise referred to the
|
||||
specified input source. This is done for every frequency point in a specified
|
||||
range - the calculated value of the noise corresponds to the spectral density
|
||||
circuit. When provided with an input source and an output port, the analysis
|
||||
calculates the noise contributions of each device (and each noise generator
|
||||
within the device) to the output port voltage. It also calculates the input
|
||||
noise to the circuit, equivalent to the output noise referred to the
|
||||
specified input source. This is done for every frequency point in a specified
|
||||
range - the calculated value of the noise corresponds to the spectral density
|
||||
of the circuit variable viewed as a stationary gaussian stochastic process.
|
||||
|
||||
|
||||
|
||||
2 Operating point analysis (OP)
|
||||
|
||||
The operating point analysis determines the dc operating point of the
|
||||
The operating point analysis determines the dc operating point of the
|
||||
circuit with inductors shorted and capacitors opened.
|
||||
|
||||
|
||||
3 Operating point sweep Analysis (DC)
|
||||
|
||||
The operating point sweep analysis determines the values of output
|
||||
variables while one or two specified independent voltage or current source is
|
||||
stepped over a user-specified range and the dc output variables are stored
|
||||
The operating point sweep analysis determines the values of output
|
||||
variables while one or two specified independent voltage or current source is
|
||||
stepped over a user-specified range and the dc output variables are stored
|
||||
for each sequential source value.
|
||||
|
||||
3.1 Enhancements
|
||||
|
||||
|
||||
Added resistance and temperature sweep.
|
||||
|
||||
|
||||
4 Pole-zero analysis (PZ)
|
||||
|
||||
The pole-zero analysis computes the poles and/or zeros in the small-signal
|
||||
ac transfer function. The program first computes the dc operating point and
|
||||
then determines the linearized, small-signal models for all the nonlinear
|
||||
devices in the circuit. This circuit is then used to find the poles and zeros
|
||||
of the transfer function.
|
||||
The pole-zero analysis computes the poles and/or zeros in the small-signal
|
||||
ac transfer function. The program first computes the dc operating point and
|
||||
then determines the linearized, small-signal models for all the nonlinear
|
||||
devices in the circuit. This circuit is then used to find the poles and zeros
|
||||
of the transfer function.
|
||||
|
||||
|
||||
5 Small-Signal distortion analysis (DISTO)
|
||||
|
||||
The distortion analysis computes steady-state harmonic and intermodulation
|
||||
The distortion analysis computes steady-state harmonic and intermodulation
|
||||
products for small input signal magnitudes. Not all devices are supported.
|
||||
|
||||
|
||||
6 Small Signal frequency response analysis (AC)
|
||||
|
||||
The ac small-signal computes the ac output variables as a function of
|
||||
frequency. The program first computes the dc operating point of the circuit
|
||||
and determines linearized, small-signal models for all of the nonlinear
|
||||
devices in the circuit. The resultant linear circuit is then analyzed over a
|
||||
The ac small-signal computes the ac output variables as a function of
|
||||
frequency. The program first computes the dc operating point of the circuit
|
||||
and determines linearized, small-signal models for all of the nonlinear
|
||||
devices in the circuit. The resultant linear circuit is then analyzed over a
|
||||
user-specified range of frequencies.
|
||||
|
||||
|
||||
7 Sensitivity analysis (SENS)
|
||||
|
||||
Ngspice will calculate either the DC operating-point sensitivity or the AC
|
||||
small-signal sensitivity of an output variable with respect to all circuit
|
||||
variables, including model parameters. Spice calculates the difference in an
|
||||
output variable (either a node voltage or a branch current) by perturbing
|
||||
small-signal sensitivity of an output variable with respect to all circuit
|
||||
variables, including model parameters. Spice calculates the difference in an
|
||||
output variable (either a node voltage or a branch current) by perturbing
|
||||
each parameter of each device independently.
|
||||
|
||||
|
||||
8 Transfer function analysis (TF)
|
||||
|
||||
The (small signal) transfer function analysis computes the dc small-signal
|
||||
value of a transfer function (ratio of output variable to input source),
|
||||
input resistance, and output resistance is also computed as a part of the dc
|
||||
value of a transfer function (ratio of output variable to input source),
|
||||
input resistance, and output resistance is also computed as a part of the dc
|
||||
solution.
|
||||
|
||||
|
||||
9 Transient analysis (TRAN)
|
||||
|
||||
The transient analysis computes the transient output variables as a
|
||||
function of time over a user-specified time interval. The initial conditions
|
||||
are automatically determined by a dc analysis. All sources which are not time
|
||||
function of time over a user-specified time interval. The initial conditions
|
||||
are automatically determined by a dc analysis. All sources which are not time
|
||||
dependent (for example, power supplies) are set to their dc value.
|
||||
|
||||
|
||||
10 Periodic steady state analysis (PSS)
|
||||
|
||||
The periodic steady state analysis computes solutions for oscillating
|
||||
circuits. Currently only the autonomous case is implemented.
|
||||
|
||||
|
||||
10 Periodic steady state analysis (PSS)
|
||||
|
||||
The periodic steady state analysis computes solutions for oscillating
|
||||
circuits. Currently only the autonomous case is implemented.
|
||||
|
||||
|
||||
|
|
|
|||
2
AUTHORS
2
AUTHORS
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Spice was originally written at The University of California at Berkeley (USA).
|
||||
Since then, there have been many people working on the software, most of them
|
||||
releasing patches to the original code through the Internet.
|
||||
releasing patches to the original code through the Internet.
|
||||
|
||||
|
||||
The following people have contributed in some way:
|
||||
|
|
|
|||
16
BUGS
16
BUGS
|
|
@ -5,16 +5,16 @@ How to submit a bug report:
|
|||
|
||||
There are two methods to report a bug you have discovered in ngspice:
|
||||
|
||||
* Bug tracker: This is the preferred method of reporting a bug.
|
||||
Using the tracker on Sourceforge.net site will make your report
|
||||
* Bug tracker: This is the preferred method of reporting a bug.
|
||||
Using the tracker on Sourceforge.net site will make your report
|
||||
open by everyone and the chances of finding a fix will increase.
|
||||
|
||||
* ngspice-devel list: If you are a member of this list, you can write
|
||||
directly to the developers' list. Do not subscribe to the list only
|
||||
|
||||
* ngspice-devel list: If you are a member of this list, you can write
|
||||
directly to the developers' list. Do not subscribe to the list only
|
||||
for sending bug reports.
|
||||
|
||||
Before sending a bug report please note: all information you send to the bug
|
||||
tracking system or on the mailing lists is public. If you need to send
|
||||
Before sending a bug report please note: all information you send to the bug
|
||||
tracking system or on the mailing lists is public. If you need to send
|
||||
sensitive information, send them to a developer directly but still write non
|
||||
sensitive data on the bug tracking system to keep track of bug history.
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ OPEN BUGS:
|
|||
The pole-zero (.pz) analysis, which still uses the original spice3f5
|
||||
algorithms, does not give correct results for all tested input files.
|
||||
The effort to correct that issue seems to be large.
|
||||
|
||||
|
||||
|
||||
* voltage (and current) controlled switches need better timing
|
||||
|
||||
|
|
|
|||
120
COPYING
120
COPYING
|
|
@ -1,82 +1,82 @@
|
|||
12345678901234567890123456789012345678901234567890123456789012345678901234567890
|
||||
Ngspice-25
|
||||
Copyright (c) 2012,
|
||||
Copyright (c) 2012,
|
||||
All rights reserved.
|
||||
|
||||
|
||||
Foreword:
|
||||
Spice's name was originally chosen at the University of California, Berkeley.
|
||||
As it is the basis of almost all circuit simulators, the major part of the
|
||||
analogue and mixed signals simulation's code is designed to fit with it.
|
||||
Spice's name was originally chosen at the University of California, Berkeley.
|
||||
As it is the basis of almost all circuit simulators, the major part of the
|
||||
analogue and mixed signals simulation's code is designed to fit with it.
|
||||
The *spices (generic name for its forks) are heterogeneous in many points due
|
||||
to the work of researchers, electronic designers, software editors, etc.
|
||||
The Ngspice team tries to collect work from the different sources and
|
||||
contribute new functionalities. Thus, the material we manipulate is
|
||||
The Ngspice team tries to collect work from the different sources and
|
||||
contribute new functionalities. Thus, the material we manipulate is
|
||||
heterogeneous in licenses. Keeping the licenses as is, is the way to live with
|
||||
that diversity. For release 25 as well, we choose not to relicense.
|
||||
|
||||
Copyleft is a fundamental question in FOSS development. The choice of a
|
||||
Copyleft is a fundamental question in FOSS development. The choice of a
|
||||
copylefted contribution, or a non copylefted contribution is an important
|
||||
choice that should be respected. Ngspice branch as a whole will not be covered
|
||||
by a specific license. The Ngspice team wants to encourage contributions to
|
||||
ngspice. We let each new developper choose its position regarding copyleft,
|
||||
as we respect the position of the former developpers. In order to keep things
|
||||
by a specific license. The Ngspice team wants to encourage contributions to
|
||||
ngspice. We let each new developper choose its position regarding copyleft,
|
||||
as we respect the position of the former developpers. In order to keep things
|
||||
clear ngspice team proposes to follow the following guidelines:
|
||||
|
||||
Each piece of code should be kept under its original contributor's license.
|
||||
Each piece of code should be kept under its original contributor's license.
|
||||
As for any project, modifications made in sources covered by a less
|
||||
restrictive license can be covered by a more restrictive license, such as
|
||||
restrictive license can be covered by a more restrictive license, such as
|
||||
GPL. We do not encourage it.
|
||||
|
||||
If you feel to add code in a file under a different license than the rest of
|
||||
the file, please use comments to mark the boundaries of the modification, and
|
||||
edit the comments at the begining of the file with correct license and
|
||||
edit the comments at the begining of the file with correct license and
|
||||
copyright information.
|
||||
|
||||
We encourage restrictive licenses to be chosen only for new functionalities,
|
||||
written in distinct files, leading to distinct libraries that links depending
|
||||
We encourage restrictive licenses to be chosen only for new functionalities,
|
||||
written in distinct files, leading to distinct libraries that links depending
|
||||
on a specific configure flag.
|
||||
|
||||
We encourage non proliferation of licenses (e.g. choosing either GPL, LGPL or
|
||||
new BSD).
|
||||
new BSD).
|
||||
|
||||
This heterogenous license status makes it difficult to know which license
|
||||
applies. Please take care of knowing which license aplies to the code you are
|
||||
editing, or conveying and not to commit license infringements, especially to
|
||||
This heterogenous license status makes it difficult to know which license
|
||||
applies. Please take care of knowing which license aplies to the code you are
|
||||
editing, or conveying and not to commit license infringements, especially to
|
||||
GPL and LGPL which are quite restrictive.
|
||||
|
||||
On 2007, July 17th spice 3f5 changed from its original license to the new BSD
|
||||
On 2007, July 17th spice 3f5 changed from its original license to the new BSD
|
||||
license. (http://embedded.eecs.berkeley.edu/pubs/downloads/spice/index.htm)
|
||||
|
||||
On 2008, December 1st, tclspice changes license from GPL to LGPLv2, in
|
||||
On 2008, December 1st, tclspice changes license from GPL to LGPLv2, in
|
||||
accordance with Multigig Ltd, the copyright holder.
|
||||
|
||||
The following table is just a reminder on license status, please don't rely
|
||||
on it:
|
||||
Author License Notes
|
||||
|
||||
numparam Georg Post LGPL Applies to the code in
|
||||
frontend/numparam
|
||||
adms Laurent Lemaitre LGPL Applies to scripts in the
|
||||
on it:
|
||||
Author License Notes
|
||||
|
||||
numparam Georg Post LGPL Applies to the code in
|
||||
frontend/numparam
|
||||
adms Laurent Lemaitre LGPL Applies to scripts in the
|
||||
spicelib/dev/adms
|
||||
tclspice Stefan Jones LGPL TCL integration
|
||||
tclspice Stefan Jones LGPL TCL integration
|
||||
cider U. of California Old BSD Device level simulator
|
||||
xspice Georgia Tech. Public D Mixed signals
|
||||
xspice Georgia Tech. Public D Mixed signals
|
||||
spice U. of California New BSD Analog circuit simulation
|
||||
|
||||
|
||||
|
||||
|
||||
---------------------------------- Cider -----------------------------------
|
||||
|
||||
|
||||
RESEARCH SOFTWARE AGREEMENT
|
||||
|
||||
|
||||
This file specifies the terms under which the software and
|
||||
documentation provided with this distribution are provided.
|
||||
|
||||
|
||||
Software is distributed as is, completely without warranty
|
||||
or service support. The University of California and its employ-
|
||||
ees are not liable for the condition or performance of the
|
||||
software.
|
||||
|
||||
|
||||
The University does not warrant that it owns the copyright
|
||||
or other proprietary rights to all software and documentation
|
||||
provided under this agreement, notwithstanding any copyright
|
||||
|
|
@ -84,35 +84,35 @@ spice U. of California New BSD Analog circuit simulation
|
|||
or proprietary rights brought by third parties against the reci-
|
||||
pient of the software and documentation provided under this
|
||||
agreement.
|
||||
|
||||
|
||||
THE UNIVERSITY OF CALIFORNIA HEREBY DISCLAIMS ALL IMPLIED
|
||||
WARRANTIES, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE. THE UNIVERSITY IS NOT
|
||||
LIABLE FOR ANY DAMAGES INCURRED BY THE RECIPIENT IN USE OF THE
|
||||
SOFTWARE AND DOCUMENTATION, INCLUDING DIRECT, INDIRECT, SPECIAL,
|
||||
INCIDENTAL, OR CONSEQUENTIAL DAMAGES.
|
||||
|
||||
|
||||
The University of California grants the recipient the right
|
||||
to modify, copy, and redistribute the software and documentation,
|
||||
both within the recipient's organization and externally, subject
|
||||
to the following restrictions:
|
||||
|
||||
|
||||
|
||||
|
||||
(a) The recipient agrees not to charge for the University of
|
||||
California code itself. The recipient may, however, charge
|
||||
for additions, extensions, or support.
|
||||
|
||||
|
||||
(b) In any product based on the software, the recipient agrees
|
||||
to acknowledge the research group that developed the
|
||||
software. This acknowledgement shall appear in the product
|
||||
documentation.
|
||||
|
||||
|
||||
(c) The recipient agrees to obey all U.S. Government restric-
|
||||
tions governing redistribution or export of the software and
|
||||
documentation.
|
||||
|
||||
|
||||
---------------------------------- Spice3f5 --------------------------------
|
||||
---------------------------------- Spice3f5 --------------------------------
|
||||
|
||||
Copyright (c) 1985-1991 The Regents of the University of California.
|
||||
All rights reserved.
|
||||
|
|
@ -135,8 +135,8 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|||
|
||||
-------------------------------- Tclspice --------------------------------
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
|
@ -147,7 +147,7 @@ MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
|||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
|
|
@ -249,7 +249,7 @@ modification follow. Pay close attention to the difference between a
|
|||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
|
|
@ -283,7 +283,7 @@ such a program is covered only if its contents constitute a work based
|
|||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
|
|
@ -569,7 +569,7 @@ decision will be guided by the two goals of preserving the free status
|
|||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
|
|
@ -593,17 +593,17 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|||
DAMAGES.
|
||||
|
||||
---------------------------------- Xspice --------------------------------
|
||||
THE SOFTWARE PROGRAMS BELOW ARE IN THE PUBLIC DOMAIN AND ARE PROVIDED FREE OF
|
||||
ANY CHARGE. THE GEORGIA TECH RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF
|
||||
THE SOFTWARE PROGRAMS BELOW ARE IN THE PUBLIC DOMAIN AND ARE PROVIDED FREE OF
|
||||
ANY CHARGE. THE GEORGIA TECH RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF
|
||||
TECHNOLOGY, AND/OR OTHER PARTIES PROVIDE THIS SOFTWARE "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
|
||||
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH THE USER.
|
||||
SHOULD THE PROGRAM PROVE DEFECTIVE, THE USER ASSUMES THE ENTIRE COST OF ALL
|
||||
NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL THE GEORGIA TECH
|
||||
RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF TECHNOLOGY, AND/OR OTHER PARTIES
|
||||
PROVIDING THE PROGRAMS BELOW BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
|
||||
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
|
||||
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
|
||||
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH THE USER.
|
||||
SHOULD THE PROGRAM PROVE DEFECTIVE, THE USER ASSUMES THE ENTIRE COST OF ALL
|
||||
NECESSARY SERVICING, REPAIR OR CORRECTION. IN NO EVENT WILL THE GEORGIA TECH
|
||||
RESEARCH CORPORATION, THE GEORGIA INSTITUTE OF TECHNOLOGY, AND/OR OTHER PARTIES
|
||||
PROVIDING THE PROGRAMS BELOW BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
|
||||
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
|
||||
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS).
|
||||
|
|
|
|||
84
DEVICES
84
DEVICES
|
|
@ -27,7 +27,7 @@ Table of contents
|
|||
5.2 SW - Voltage controlled switch
|
||||
6. Diodes
|
||||
6.1 DIO - Junction Diode
|
||||
7. Bipolar devices
|
||||
7. Bipolar devices
|
||||
7.1 BJT - Bipolar Junction Transistor
|
||||
7.2 BJT2 - Bipolar Junction Transistor
|
||||
7.3 VBIC - Bipolar Junction Transistor
|
||||
|
|
@ -79,7 +79,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
|
||||
2.1 CAP - Linear capacitor
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: C
|
||||
Level: 1 (and only)
|
||||
|
|
@ -96,7 +96,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
|
||||
2.2 IND - Linear Inductor
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: L
|
||||
Level: 1 (and only)
|
||||
|
|
@ -163,7 +163,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
- Does not implement parallel code switches.
|
||||
|
||||
3.3 TRA - Transmission line
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: T
|
||||
Level: 1 (and only)
|
||||
|
|
@ -206,7 +206,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
4. Voltage and current sources
|
||||
|
||||
4.1 ASRC - Arbitrary Source
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: B
|
||||
Level: 1 (and only)
|
||||
|
|
@ -218,7 +218,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
current of current-controlled generators.
|
||||
|
||||
4.2 CCCS - Current Controlled Current Source
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: F
|
||||
Level: 1 (and only)
|
||||
|
|
@ -228,7 +228,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
- Original spice model.
|
||||
|
||||
4.3 CCVS - Current Controlled Voltage Source
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: H
|
||||
Level: 1 (and only)
|
||||
|
|
@ -239,7 +239,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
|
||||
4.4 ISRC - Independent Current Source
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: I
|
||||
Level: 1 (and only)
|
||||
|
|
@ -292,7 +292,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
5. Switches
|
||||
|
||||
5.1 CSW - Current controlled switch
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: W
|
||||
Level: 1 (and only)
|
||||
|
|
@ -331,7 +331,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
- Temperature correction of some parameters
|
||||
|
||||
|
||||
7. Bipolar devices
|
||||
7. Bipolar devices
|
||||
|
||||
7.1 BJT - Bipolar Junction Transistor
|
||||
|
||||
|
|
@ -365,14 +365,14 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
- Different area parameters for collector, base and emitter
|
||||
|
||||
7.3 VBIC - Bipolar Junction Transistor
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: Q
|
||||
Level: 4 & 9
|
||||
Dir: devices/vbic
|
||||
Status:
|
||||
|
||||
This is the Vertical Bipolar InterCompany model in version 1.2. The author
|
||||
This is the Vertical Bipolar InterCompany model in version 1.2. The author
|
||||
of VBIC is Colin McAndrew mcandrew@ieee.org.
|
||||
Spice3 Implementation: Dietmar Warning DAnalyse GmbH
|
||||
Web Site: http://www.designers-guide.com/VBIC/index.html
|
||||
|
|
@ -417,10 +417,10 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
9. HFET Devices
|
||||
|
||||
Added code from macspice3f4 HFET1&2 and MESA model
|
||||
Added code from macspice3f4 HFET1&2 and MESA model
|
||||
Original note:
|
||||
Added device calls for Mesfet models and HFET models
|
||||
provided by Trond Ytterdal as of Nov 98
|
||||
provided by Trond Ytterdal as of Nov 98
|
||||
|
||||
9.1 HFET1 - Heterostructure Field Effect Transistor Level 1
|
||||
|
||||
|
|
@ -432,7 +432,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
This is the Heterostructure Field Effect Transistor model from:
|
||||
K. Lee, M. Shur, T. A. Fjeldly and T. Ytterdal
|
||||
"Semiconductor Device Modeling in VLSI",
|
||||
"Semiconductor Device Modeling in VLSI",
|
||||
1993, Prentice Hall, New Jersey
|
||||
|
||||
Enhancements over the original model:
|
||||
|
|
@ -460,7 +460,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
10. MES devices
|
||||
|
||||
10.1 MES - MESFET model
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: Z
|
||||
Level: 1
|
||||
|
|
@ -474,10 +474,10 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
- Alan Gillespie junction diodes implementation
|
||||
|
||||
|
||||
Added code from macspice3f4 HFET1&2 and MESA model
|
||||
Added code from macspice3f4 HFET1&2 and MESA model
|
||||
Original note:
|
||||
Added device calls for Mesfet models and HFET models
|
||||
provided by Trond Ytterdal as of Nov 98
|
||||
provided by Trond Ytterdal as of Nov 98
|
||||
|
||||
10.2 MESA - MESFET model (MacSpice3f4)
|
||||
|
||||
|
|
@ -500,7 +500,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
11. MOS devices
|
||||
|
||||
11.1 MOS1 - Level 1 MOS model
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: M
|
||||
Level: 1
|
||||
|
|
@ -514,7 +514,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
- Temperature difference from circuit temperature
|
||||
|
||||
11.2 MOS2 - Level 2 MOS model
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: M
|
||||
Level: 2
|
||||
|
|
@ -562,9 +562,9 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
Dir: devices/mos9
|
||||
Status:
|
||||
|
||||
This is a slightly modified Level 3 MOSFET model.
|
||||
This is a slightly modified Level 3 MOSFET model.
|
||||
(Whatever the implementer have had in mind.)
|
||||
Not to confuse with Philips level 9.
|
||||
Not to confuse with Philips level 9.
|
||||
Enhancements over the original model:
|
||||
- Temperature difference from circuit temperature
|
||||
|
||||
|
|
@ -576,7 +576,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
Level: 4
|
||||
Dir: devices/bsim1
|
||||
Status:
|
||||
|
||||
|
||||
Enhancements over the original model:
|
||||
- Parallel multiplier
|
||||
- Noise analysis
|
||||
|
|
@ -589,7 +589,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
|
||||
11.7 BSIM2 - BSIM model level 2
|
||||
|
||||
|
||||
Ver: N/A
|
||||
Class: M
|
||||
Level: 5
|
||||
|
|
@ -602,7 +602,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
|
||||
11.8 BSIM3v0 - BSIM model level 3
|
||||
|
||||
|
||||
Ver: 3.0
|
||||
Class: M
|
||||
Level: 8 & 49, version = 3.0
|
||||
|
|
@ -644,7 +644,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
- Multirevision code (supports all 3v3.2 minor revisions)
|
||||
- NodesetFix
|
||||
|
||||
|
||||
|
||||
11.11 BSIM3 - BSIM model level 3
|
||||
|
||||
Ver: 3.3.0
|
||||
|
|
@ -668,7 +668,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
|
||||
11.12 BSIM4 - BSIM model level 4
|
||||
|
||||
|
||||
Ver: 4.2.0 - 4.6.5
|
||||
Class: M
|
||||
Level: 14 & 54, version = 4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6
|
||||
|
|
@ -684,10 +684,10 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
- Parallel Multiplier
|
||||
- NodesetFix
|
||||
- Support for Multi-core processors using OpenMP
|
||||
|
||||
|
||||
|
||||
11.13 HiSIM2 - Hiroshima-university STARC IGFET Model
|
||||
|
||||
|
||||
Ver: 2.7.0
|
||||
Class: M
|
||||
Level: 61, 68
|
||||
|
|
@ -701,7 +701,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
|
||||
11.14 HiSIM_HV - Hiroshima-University STARC IGFET High Voltage Model
|
||||
|
||||
|
||||
Ver: 1.2.3
|
||||
Class: M
|
||||
Level: 62, 73
|
||||
|
|
@ -733,7 +733,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
|
||||
12.2 BSIM3SOI_DD - SOI Model (dynamic depletion model)
|
||||
|
||||
|
||||
Ver: 2.1
|
||||
Class: M
|
||||
Level: 56
|
||||
|
|
@ -755,7 +755,7 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
Dir: devices/bsim3soi_pd
|
||||
Status: TO BE TESTED.
|
||||
|
||||
PD model has been integrated. There is a bsim3soipd directory
|
||||
PD model has been integrated. There is a bsim3soipd directory
|
||||
under the test hierarchy. Test circuits come from the bsim3soi
|
||||
|
||||
Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi
|
||||
|
|
@ -763,27 +763,27 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
|
||||
12.4 BSIMSOI - Berkeley SOI model (partially/full depleted devices)
|
||||
|
||||
|
||||
Ver: 4.3.1
|
||||
Class: M
|
||||
Level: 10 & 58
|
||||
Dir: devices/bsim3soi
|
||||
Status: o.k.
|
||||
|
||||
This is the actual version from Berkeley. This version is
|
||||
This is the actual version from Berkeley. This version is
|
||||
backward compatible with its previous versions BSIMSOI3.x.
|
||||
Usable for partially/full depleted devices.
|
||||
|
||||
Web site at: http://www-device.eecs.berkeley.edu/~bsimsoi
|
||||
|
||||
Enhancements over the original model:
|
||||
- Parallel Multiplier
|
||||
- Support for Multi-core processors using OpenMP
|
||||
- Parallel Multiplier
|
||||
- Support for Multi-core processors using OpenMP
|
||||
|
||||
|
||||
|
||||
|
||||
12.5 SOI3 - STAG SOI3 Model
|
||||
|
||||
|
||||
Ver: 2.6
|
||||
Class: M
|
||||
Level: 61
|
||||
|
|
@ -794,9 +794,9 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
13. Verilog-A models
|
||||
|
||||
Configuring ngspice with ADMS (see Readme.adms) following
|
||||
Configuring ngspice with ADMS (see Readme.adms) following
|
||||
devices are available:
|
||||
|
||||
|
||||
13.1 EKV MOS Model
|
||||
|
||||
Ver: 2.6
|
||||
|
|
@ -806,9 +806,9 @@ will be updated every time the device specific code is altered or changed to ref
|
|||
|
||||
EKV version based on a contribution of Ivan Riis Nielsen 11/2006
|
||||
|
||||
Web site at: http://legwww.epfl.ch/ekv/
|
||||
Web site at: http://legwww.epfl.ch/ekv/
|
||||
(but EPFL is not publishing any usefull code)
|
||||
|
||||
|
||||
|
||||
13.2 PSP MOS Model
|
||||
|
||||
|
|
|
|||
204
FAQ
204
FAQ
|
|
@ -52,117 +52,117 @@
|
|||
|
||||
1.1 What is ngspice ?
|
||||
|
||||
Ngspice is a mixed-level/mixed-signal circuit simulator based on three
|
||||
open source software packages: Spice3f5, Cider1b1 and Xspice:
|
||||
|
||||
- Spice3 is a widely used circuit simulator. It was developed by the
|
||||
University of California at Berkeley (UCB), by "a cast of thousand"
|
||||
Ngspice is a mixed-level/mixed-signal circuit simulator based on three
|
||||
open source software packages: Spice3f5, Cider1b1 and Xspice:
|
||||
|
||||
- Spice3 is a widely used circuit simulator. It was developed by the
|
||||
University of California at Berkeley (UCB), by "a cast of thousand"
|
||||
(as they say) initially under the guide of Donald O. Peterson.
|
||||
|
||||
- Cider is a mixed-level simulator that already includes Spice3f5 and
|
||||
adds a device simulator to it: DSIM. Cider couples the circuit level
|
||||
simulator to the device simulator to provide greater simulation
|
||||
accuracy (at the expense of greater simulation time). Critical
|
||||
devices can be described with technology parameters (numerical
|
||||
models) and non critical ones with the original spice's compact
|
||||
|
||||
- Cider is a mixed-level simulator that already includes Spice3f5 and
|
||||
adds a device simulator to it: DSIM. Cider couples the circuit level
|
||||
simulator to the device simulator to provide greater simulation
|
||||
accuracy (at the expense of greater simulation time). Critical
|
||||
devices can be described with technology parameters (numerical
|
||||
models) and non critical ones with the original spice's compact
|
||||
models.
|
||||
|
||||
- Xspice is an extension to Spice3 that provides code modeling support
|
||||
and simulation of digital components through an embedded event
|
||||
- Xspice is an extension to Spice3 that provides code modeling support
|
||||
and simulation of digital components through an embedded event
|
||||
driven algorithm.
|
||||
|
||||
The NG prefix has lot of meanings: Next Generation, New Good, etc.
|
||||
Choose or invent the one you prefer. The heart of the project is the
|
||||
The NG prefix has lot of meanings: Next Generation, New Good, etc.
|
||||
Choose or invent the one you prefer. The heart of the project is the
|
||||
ngspice program.
|
||||
|
||||
|
||||
1.2 What is tclspice ?
|
||||
|
||||
Tclspice is a circuit simulator that embeds ngspice and provides a
|
||||
Tclspice is a circuit simulator that embeds ngspice and provides a
|
||||
tcl/tk interface to the user. Tclspice is both a batch and interactive
|
||||
simulator and a building block for simulator applications. Analyses can
|
||||
simulator and a building block for simulator applications. Analyses can
|
||||
be run from a tcl script and vector plotted or post processed using tcl
|
||||
or a small GUI can be built to analyze a circuit or a set of circuits.
|
||||
Tclspice is obtained compiling ngspice activating an additional option.
|
||||
|
||||
|
||||
|
||||
1.3 Why resurrecting Berkeley's Spice?
|
||||
|
||||
|
||||
Berkeley's Spice can be considered the father of most circuit
|
||||
simulators available today. It is an old but still good piece of
|
||||
software, it may not be the fastest or the most reliable but it's
|
||||
free, it's available in source code and most of the electrical
|
||||
simulators inherited it's syntax. Spice3 is based on proven numerical
|
||||
algorithms (most commercial implementations have only strengthened
|
||||
them), implements most of the models for MOSFET submicron design
|
||||
simulators inherited it's syntax. Spice3 is based on proven numerical
|
||||
algorithms (most commercial implementations have only strengthened
|
||||
them), implements most of the models for MOSFET submicron design
|
||||
and has a powerful set of analyses. The readily availability of
|
||||
its source code in the past made this simulator the de-facto standard.
|
||||
|
||||
|
||||
|
||||
1.4 What is the project's goal?
|
||||
|
||||
Ngspice is both a maintenance and enhancement project. It is a maintenance
|
||||
project because it aims to provide the free EDA community the best spice3
|
||||
simulator available. This means fixing bugs, adding new features but always
|
||||
in the spice3 framework. Achieving compatibility with commercial spice based
|
||||
in the spice3 framework. Achieving compatibility with commercial spice based
|
||||
simulators and provide users the latest devices models are important goals
|
||||
of the project. Improvements in the postprocessing (data handling
|
||||
capabilities) and user interface are other goals.
|
||||
of the project. Improvements in the postprocessing (data handling
|
||||
capabilities) and user interface are other goals.
|
||||
|
||||
|
||||
1.5 What you are going to do?
|
||||
1.5 What you are going to do?
|
||||
|
||||
An official roadmap for ngspice was never drawn. Contributions made by
|
||||
developers drive ngspice development and the roadmap is built day by
|
||||
developers drive ngspice development and the roadmap is built day by
|
||||
day by developers writing on the lists. Ngspice development activity
|
||||
can be summarized in 3 points:
|
||||
|
||||
+ Compatibility: Ngspice should be compatible with commercial products,
|
||||
thus allowing people to use the netlist generated for such tools. As
|
||||
thus allowing people to use the netlist generated for such tools. As
|
||||
most of the commercial simulators avaiable tracked each other in netlist
|
||||
language, this should not be an impossible task. The most important goal
|
||||
here is to provide a reliable support for model libraries coming from
|
||||
foundries.
|
||||
|
||||
foundries.
|
||||
|
||||
+ Compact models: The interest in using ngspice is intimately connected
|
||||
to the available models. To provide the latest models available for
|
||||
to the available models. To provide the latest models available for
|
||||
active and passive devices is a fundamental goal of the project. In
|
||||
this direction we are integrating ADMS model compiler into ngspice.
|
||||
|
||||
+ Documentation: Commercial simulators come with very good manuals
|
||||
containing tutorials, description of models equations, example of
|
||||
use, suggestions, etc. Spice came with little documentation. The
|
||||
+ Documentation: Commercial simulators come with very good manuals
|
||||
containing tutorials, description of models equations, example of
|
||||
use, suggestions, etc. Spice came with little documentation. The
|
||||
Spice3f manual, available on the Internet has been used as the basis
|
||||
for the new manual. It will be constantly improved during ngspice
|
||||
development and integrated with the documentation accompanying Xspice
|
||||
and Cider. This is a very time consuming task and probably the
|
||||
for the new manual. It will be constantly improved during ngspice
|
||||
development and integrated with the documentation accompanying Xspice
|
||||
and Cider. This is a very time consuming task and probably the
|
||||
documentation will always be left slightly behind.
|
||||
|
||||
|
||||
|
||||
1.6 Legal issues
|
||||
|
||||
Ngspice, starting from release rework-18 is released under BSD/LGPL
|
||||
Ngspice, starting from release rework-18 is released under BSD/LGPL
|
||||
license. Part of the code are covered by other compatible licenses:
|
||||
spice3 and cider are BSD, xspice is Public Domain and TCLSPICE is
|
||||
spice3 and cider are BSD, xspice is Public Domain and TCLSPICE is
|
||||
LGPL and the copyright is of their respective owners (need to write better)
|
||||
|
||||
|
||||
1.7. What mailing lists exist for ngspice?
|
||||
|
||||
There are two general mailing lists dedicated to the ngspice project.
|
||||
|
||||
There are two general mailing lists dedicated to the ngspice project.
|
||||
|
||||
Users mailing list: <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
244
INSTALL
|
|
@ -23,7 +23,7 @@ Table of contents
|
|||
9.2 make ngspice with MS Visual Studio 2008
|
||||
9.3 make ngspice with pure CYGWIN
|
||||
9.4 ngspice console app with MINGW or CYGWIN
|
||||
|
||||
|
||||
|
||||
This file describes the procedures to install ngspice from sources.
|
||||
|
||||
|
|
@ -35,66 +35,66 @@ This file describes the procedures to install ngspice from sources.
|
|||
|
||||
Ngspice is written in C and thus a complete C compilation environment
|
||||
is needed. Almost any LINUX offers a complete C development environment.
|
||||
Ngspice is developed on GNU/Linux with gcc and GNU make.
|
||||
Ngspice is developed on GNU/Linux with gcc and GNU make.
|
||||
|
||||
The following software must be installed in your system to compile ngspice:
|
||||
The following software must be installed in your system to compile ngspice:
|
||||
bison, flex, and X11 headers and libs.
|
||||
|
||||
If you want to compile the source from the git repository you need
|
||||
additional software: autoconf, automake, libtool, texinfo.
|
||||
additional software: autoconf, automake, libtool, texinfo.
|
||||
|
||||
The following software may be needed when enabling additional features:
|
||||
editline, tcl/tk, adms
|
||||
|
||||
Please have a look at the actual ngspice manual, downloadable at
|
||||
|
||||
Please have a look at the actual ngspice manual, downloadable at
|
||||
http://ngspice.sourceforge.net/docs.html, which gives you much more
|
||||
information on ngspice and its usage.
|
||||
|
||||
|
||||
|
||||
1.2 Install from tarball (e.g. ngspice-25.tar.gz)
|
||||
|
||||
This covers installation from a release distribution (for example
|
||||
This covers installation from a release distribution (for example
|
||||
ngspice-25.tar.gz, the so called tar ball).
|
||||
|
||||
|
||||
After downloading the tar ball to a local directory unpack it using:
|
||||
|
||||
$ tar -zxvf ngspice-25.tar.gz
|
||||
|
||||
|
||||
Now change directories in to the top-level source directory (where this
|
||||
INSTALL file can be found).
|
||||
|
||||
You should be able to do:
|
||||
|
||||
|
||||
$ mkdir release
|
||||
$ cd release
|
||||
$ ../configure --with-x --with-readline=yes --disable-debug
|
||||
$ make
|
||||
$ sudo make install
|
||||
|
||||
|
||||
The default install directory for executables is /usr/local/bin.
|
||||
|
||||
A simple ../configure might be sufficient for a basic ngspice, but the preferred
|
||||
arguments to ../configure are
|
||||
|
||||
A simple ../configure might be sufficient for a basic ngspice, but the preferred
|
||||
arguments to ../configure are
|
||||
--with-x --with-readline=yes and --disable-debug
|
||||
providing you with a comfortably working ngspice (see section 1.4 for details).
|
||||
|
||||
See the section titled 'Advanced Install' for instructions about additional arguments
|
||||
that can be passed to ../configure to customise the build and installation.
|
||||
|
||||
Do not use the script ./autogen.sh, because it is not required for
|
||||
See the section titled 'Advanced Install' for instructions about additional arguments
|
||||
that can be passed to ../configure to customise the build and installation.
|
||||
|
||||
Do not use the script ./autogen.sh, because it is not required for
|
||||
compiling and installing ngspice from the tarball.
|
||||
|
||||
|
||||
A fully featured ngspice on LINUX may be obtained with the following commands:
|
||||
$ mkdir release
|
||||
$ cd release
|
||||
$ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp
|
||||
$ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp
|
||||
$ make 2>&1 | tee make.log
|
||||
$ sudo make install
|
||||
|
||||
|
||||
To remove the executables and libraries from the install directory, you may call
|
||||
$ sudo make uninstall
|
||||
|
||||
|
||||
|
||||
1.3 Install from the git repository
|
||||
|
||||
This section describes how to install from source code taken directly
|
||||
|
|
@ -109,7 +109,7 @@ This file describes the procedures to install ngspice from sources.
|
|||
Now change directories in to the top-level source directory (where this
|
||||
INSTALL file can be found).
|
||||
|
||||
The project uses the GNU build process. The compile output should go into a separate
|
||||
The project uses the GNU build process. The compile output should go into a separate
|
||||
directory, so to e.g. maintain separate debug and release versions.
|
||||
|
||||
$ ./autogen.sh
|
||||
|
|
@ -118,14 +118,14 @@ This file describes the procedures to install ngspice from sources.
|
|||
$ ../configure --enable-maintainer-mode
|
||||
$ make
|
||||
$ sudo make install
|
||||
|
||||
See the section titled 'Advanced Install' for instructions about arguments
|
||||
|
||||
See the section titled 'Advanced Install' for instructions about arguments
|
||||
that can be passed to ./configure to customise the build and installation.
|
||||
|
||||
|
||||
Preferred arguments to ./configure to obtain a comfortably working ngspice may be
|
||||
--with-readline=yes and --disable-debug (for smaller and speed optimized
|
||||
executable).
|
||||
|
||||
executable).
|
||||
|
||||
A fully featured ngspice on LINUX may be obtained with the following commands:
|
||||
$ ./autogen.sh --adms
|
||||
$ mkdir release
|
||||
|
|
@ -133,14 +133,14 @@ This file describes the procedures to install ngspice from sources.
|
|||
$ ../configure --with-x --enable-xspice --disable-debug --enable-cider --with-readline=yes --enable-openmp --enable-adms
|
||||
$ make 2>&1 | tee make.log
|
||||
$ sudo make install
|
||||
|
||||
If a problem is found with the build proccess, please submit a report to
|
||||
the Ngspice development team. Please provide information about your system
|
||||
and any ./configure arguments you are using, together with any error
|
||||
|
||||
If a problem is found with the build proccess, please submit a report to
|
||||
the Ngspice development team. Please provide information about your system
|
||||
and any ./configure arguments you are using, together with any error
|
||||
messages. Ideally you would have tried to fix the problem yourself first.
|
||||
If you have fixed the problem then the development team will love to hear
|
||||
If you have fixed the problem then the development team will love to hear
|
||||
from you.
|
||||
|
||||
|
||||
|
||||
1.4 Advanced Install
|
||||
|
||||
|
|
@ -148,52 +148,52 @@ This file describes the procedures to install ngspice from sources.
|
|||
options do:
|
||||
|
||||
$ ./configure --help
|
||||
|
||||
|
||||
Some of these options are generic to the GNU build process that is used by
|
||||
Ngspice, other are specific to Ngspice.
|
||||
|
||||
The following sections provide some guidance and descriptions for many,
|
||||
but not all, of these options.
|
||||
|
||||
|
||||
1.4.1 Most useful options:
|
||||
|
||||
--enable-adms
|
||||
ADMS is an experimental model compiler that translates
|
||||
Verilog-A compact models into C code that can be compiled into
|
||||
ADMS is an experimental model compiler that translates
|
||||
Verilog-A compact models into C code that can be compiled into
|
||||
ngspice. This is (as of ngspice-25) still experimental, some
|
||||
features (e.g. noise) are missing. If you want to use it, please
|
||||
refer to the ADMS section on ngspice web site.
|
||||
refer to the ADMS section on ngspice web site.
|
||||
|
||||
--enable-cider
|
||||
Cider is a mixed-level simulator that couples Spice3 and DSIM
|
||||
to simulate devices from their technological parameters.
|
||||
|
||||
|
||||
--enable-xspice
|
||||
Enable XSpice enhancements,
|
||||
A mixed signal simulator built upon spice3 with codemodel
|
||||
A mixed signal simulator built upon spice3 with codemodel
|
||||
dynamic loading support. See the ngspice manual for details.
|
||||
|
||||
|
||||
--with-readline=yes
|
||||
Enable GNU readline support for the command line interface.
|
||||
|
||||
--enable-openmp
|
||||
Compile ngspice for multi-core processors.
|
||||
|
||||
--enable-openmp
|
||||
Compile ngspice for multi-core processors.
|
||||
Parallelization is done by OpenMP, for MOS models in BSIM3.3.0
|
||||
BSIM4.6.0 and and BSOI4 only. See the ngspice manual for details.
|
||||
|
||||
BSIM4.6.0 and and BSOI4 only. See the ngspice manual for details.
|
||||
|
||||
--disable-debug
|
||||
This option will remove the '-g' option passed to the compiler
|
||||
and add -O2 optimisation (instead of default O0).
|
||||
This speeds up simulating significantly, and is recommended for
|
||||
and add -O2 optimisation (instead of default O0).
|
||||
This speeds up simulating significantly, and is recommended for
|
||||
normal use.
|
||||
|
||||
|
||||
|
||||
|
||||
1.4.2 Options Specific to Using Ngspice
|
||||
|
||||
Most of the options now following are not well maintained, are not tested or even maybe obsolete.
|
||||
Most of the options now following are not well maintained, are not tested or even maybe obsolete.
|
||||
|
||||
--enable-capbypass
|
||||
Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd
|
||||
Bypass calculation of cbd/cbs in the mosfets if the vbs/vbd
|
||||
voltages are unchanged.
|
||||
|
||||
--enable-cluster
|
||||
|
|
@ -201,24 +201,24 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
contribution never tested. This code comes from TCLspice
|
||||
implementation and is implemented for transient analysis only.
|
||||
|
||||
--enable-expdevices
|
||||
Enable experimental devices. This option is used by developers
|
||||
--enable-expdevices
|
||||
Enable experimental devices. This option is used by developers
|
||||
to mask devices under development. Almost useless for users.
|
||||
|
||||
--enable-experimental
|
||||
This enables some experimental code. Specifically it enables:
|
||||
* The ability to save and load snapshots: adds
|
||||
* The ability to save and load snapshots: adds
|
||||
interactive keywords 'savesnap' and 'loadsnap'.
|
||||
|
||||
--enable-help
|
||||
--enable-help
|
||||
Force building nghelp. This is deprecated.
|
||||
|
||||
--enable-ndev
|
||||
Enable NDEV interface, (experimental, needs updating)
|
||||
A TCP/IP interface to external device simulator such as GSS.
|
||||
For more information, please visit the homepage of GSS at
|
||||
For more information, please visit the homepage of GSS at
|
||||
http://gss-tcad.sourceforge.net
|
||||
|
||||
|
||||
--enable-newpred
|
||||
Enable the NEWPRED symbol in the code.
|
||||
|
||||
|
|
@ -230,10 +230,10 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
|
||||
--enable-nobypass
|
||||
Don't bypass recalculations of slowly changing variables
|
||||
|
||||
|
||||
--enable-predictor
|
||||
Enable a predictor method for convergence
|
||||
|
||||
|
||||
--enable-sense2
|
||||
Use spice2 sensitivity analysis
|
||||
|
||||
|
|
@ -246,7 +246,7 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
See http://www.thrysoee.dk/editline/
|
||||
|
||||
--with-tcl=tcldir
|
||||
When configured with this option the tcl module
|
||||
When configured with this option the tcl module
|
||||
"tclspice" is compiled and installed instead of
|
||||
plain ngspice.
|
||||
|
||||
|
|
@ -259,18 +259,18 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
No graphics inetrface is provided, this has to be
|
||||
handled by the controlling application.
|
||||
|
||||
|
||||
|
||||
1.4.3 Options Useful for Debugging Ngspice
|
||||
|
||||
--enable-ansi
|
||||
Configure will try to find an option for your compiler so that
|
||||
Configure will try to find an option for your compiler so that
|
||||
it expects ansi-C.
|
||||
|
||||
--enable-asdebug
|
||||
Debug sensitivity code *ASDEBUG*.
|
||||
|
||||
--enable-blktmsdebug
|
||||
Debug distortion code *BLOCKTIMES*
|
||||
--enable-blktmsdebug
|
||||
Debug distortion code *BLOCKTIMES*
|
||||
|
||||
--enable-checkergcc
|
||||
Option for compilation with checkergcc.
|
||||
|
|
@ -280,18 +280,18 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
|
||||
--disable-debug
|
||||
This option will remove the '-g' option passed to the compiler.
|
||||
This speeds up compilation a *lot*, and is recommended for
|
||||
This speeds up compilation a *lot*, and is recommended for
|
||||
normal use.
|
||||
|
||||
--enable-ftedebug
|
||||
Enable ngspice frontend debug.
|
||||
|
||||
|
||||
--enable-gc
|
||||
Enable the Boehm-Weiser Conservative Garbage Collector.
|
||||
|
||||
--enable-pzdebug
|
||||
Debug pole/zero code.
|
||||
|
||||
|
||||
--enable-sensdebug
|
||||
Debug sensitivity code *SENSDEBUG*.
|
||||
|
||||
|
|
@ -300,11 +300,11 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
|
||||
--enable-smoketest
|
||||
Enable smoketest compile.
|
||||
|
||||
|
||||
--enable-stepdebug
|
||||
Turns on debugging of convergence stepping??
|
||||
|
||||
|
||||
|
||||
|
||||
2 Compilers and Options
|
||||
=====================
|
||||
|
||||
|
|
@ -445,22 +445,22 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
====================================
|
||||
|
||||
9.1 How to make ngspice with MINGW and MSYS
|
||||
|
||||
|
||||
Creating ngspice with MINGW is a straight forward procedure,
|
||||
if you have MSYS/MINGW installed properly. You will need some enhancements
|
||||
to the standard install (FLEX and BISON have to be made available in MSYS).
|
||||
Some links are given below which describe the procedures.
|
||||
|
||||
Installing from the tarball, e.g. ngspice-25.tar.gz, is now simple: After
|
||||
if you have MSYS/MINGW installed properly. You will need some enhancements
|
||||
to the standard install (FLEX and BISON have to be made available in MSYS).
|
||||
Some links are given below which describe the procedures.
|
||||
|
||||
Installing from the tarball, e.g. ngspice-25.tar.gz, is now simple: After
|
||||
expanding, you may just run ./compile_min.sh from the ngspice-25 directory.
|
||||
|
||||
|
||||
The default installation location of ngspice is the Windows path
|
||||
C:\spice. The install path can be altered by passing --prefix=NEWPATH
|
||||
as an argument to ./configure during the build process.
|
||||
|
||||
Put the install path you desire inside "", e.g. "D:/NewSpice". Be
|
||||
careful to use forward slashes "/", not backward slashes "\" (something
|
||||
still to be fixed). Then add --prefix="D:/NewSpice" as an argument to
|
||||
Put the install path you desire inside "", e.g. "D:/NewSpice". Be
|
||||
careful to use forward slashes "/", not backward slashes "\" (something
|
||||
still to be fixed). Then add --prefix="D:/NewSpice" as an argument to
|
||||
./configure in the normal way.
|
||||
|
||||
The procedure of compiling a distribution (for example, a tarball from
|
||||
|
|
@ -477,23 +477,23 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
--enable-xspice
|
||||
--enable-cider
|
||||
--disable-debug (-O2 optimization, no debug information)
|
||||
|
||||
|
||||
A fully featured ngspice on Windows may be obtained with the following commands:
|
||||
$ ./autogen.sh --adms
|
||||
$ mkdir release
|
||||
$ cd release
|
||||
$ ../configure --with-wingui --enable-cider --disable-debug --enable-openmp --enable-xspice --enable-adms
|
||||
$ make install
|
||||
|
||||
|
||||
However, to compile code extracted from the git repository the procedure is
|
||||
a little different. To obtain ngspice, you may do the following:
|
||||
|
||||
|
||||
Go to a directory of your choice, e.g. D:\Spice
|
||||
$ cd /d/Spice
|
||||
|
||||
Issue the command for downloading ngspice:
|
||||
$ git clone git://ngspice.git.sourceforge.net/gitroot/ngspice/ngspice
|
||||
|
||||
|
||||
This will create directory /ngspice .
|
||||
|
||||
Go to directory ngspice
|
||||
|
|
@ -508,7 +508,7 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
Issue command for update
|
||||
$ git pull
|
||||
|
||||
Instead of calling ./compile_min.sh, you may choose to issue
|
||||
Instead of calling ./compile_min.sh, you may choose to issue
|
||||
individual commands like:
|
||||
$ cd ngspice
|
||||
$ ./autogen.sh
|
||||
|
|
@ -518,30 +518,30 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
$ make
|
||||
$ make install
|
||||
|
||||
MINGW and MSYS can be downloaded from http://www.mingw.org/. The making of
|
||||
ngspice and the code models *.cm for XSpice requires installation of BISON
|
||||
MINGW and MSYS can be downloaded from http://www.mingw.org/. The making of
|
||||
ngspice and the code models *.cm for XSpice requires installation of BISON
|
||||
and FLEX to MSYS. A typical installation was tested with:
|
||||
|
||||
|
||||
bison-2.0-MSYS.tar.gz
|
||||
flex-2.5.4a-1-bin.zip
|
||||
libiconv-1.9.2-1-bin.zip
|
||||
libintl-0.14.4-bin.zip
|
||||
|
||||
Bison 2.0 is now superseeded by newer releases (Bison 2.3, see
|
||||
Bison 2.0 is now superseeded by newer releases (Bison 2.3, see
|
||||
http://sourceforge.net/project/showfiles.php?group_id=2435&package_id=67879)
|
||||
|
||||
The last three are from
|
||||
The last three are from
|
||||
http://sourceforge.net/project/showfiles.php?group_id=23617.
|
||||
|
||||
Installing from git needs more packages to MSYS in advance:
|
||||
|
||||
Installing from git needs more packages to MSYS in advance:
|
||||
git, automake, autoconf, libtool
|
||||
|
||||
You may also look at
|
||||
You may also look at
|
||||
http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite
|
||||
http://www.mingw.org/wiki/MSYS
|
||||
http://www.mingw.org/wiki/HOWTO_Create_an_MSYS_Build_Environment.
|
||||
|
||||
An alternative compiler setup is available at
|
||||
|
||||
An alternative compiler setup is available at
|
||||
http://tdm-gcc.tdragon.net/
|
||||
|
||||
|
||||
|
|
@ -553,41 +553,41 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
(*.cm) are not (yet) made. You may however use the code models
|
||||
created with MINGW (which in fact are dlls), as e.g. found in
|
||||
the ngspice binary distribution our made as described in 9.1.
|
||||
|
||||
|
||||
There is currently no installation procedure provided, you may
|
||||
however install the executable manually as described in the
|
||||
installation tree below.
|
||||
|
||||
The directory (visualc) with its files
|
||||
|
||||
The directory (visualc) with its files
|
||||
vngspice.sln (project starter) and
|
||||
vngspice.vcproj (project contents)
|
||||
allows to compile and link ngspice with MS Visual Studio 2008.
|
||||
The project is probably not compatible with Visual Studio 2005.
|
||||
|
||||
|
||||
/visualc/include contains a dedicated config.h file. It contains the
|
||||
preprocessor definitions required to properly compile the code.
|
||||
strings.h has been necessary during setting up the project.
|
||||
|
||||
|
||||
Install Microsoft Visual Studio 2008 C++ . The
|
||||
MS VS 2008 C++ Express Edition (which is available at no cost from
|
||||
http://www.microsoft.com/express/product/default.aspx) is adequate.
|
||||
|
||||
|
||||
Goto /ngspice/visualc.
|
||||
|
||||
|
||||
Start MS Visual Studio 2008 by double click onto vngspice.sln.
|
||||
|
||||
After MS Visual Studio has opened up, select debug or release version
|
||||
|
||||
After MS Visual Studio has opened up, select debug or release version
|
||||
by checking 'Erstellen' , 'Konfigurations-Manager' 'Debug' or 'Release'.
|
||||
|
||||
Start making ngspice (called vngspice.exe) by selecting 'Erstellen' and
|
||||
|
||||
Start making ngspice (called vngspice.exe) by selecting 'Erstellen' and
|
||||
'vngspice neu erstellen'.
|
||||
|
||||
|
||||
Object files will be created and stored in visualc/debug or visualc/release.
|
||||
The executable will be stored to visualc/debug/bin or visualc/release/bin.
|
||||
|
||||
|
||||
An installation tree (as provided with MINGW make install) and also used by
|
||||
vngspice is (maybe created manually):
|
||||
|
||||
|
||||
C:\Spice\
|
||||
bin\
|
||||
ngspice.exe
|
||||
|
|
@ -626,23 +626,23 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
setplot
|
||||
spectrum
|
||||
spinit
|
||||
|
||||
|
||||
If you intend to install vngspice into another directory, e.g. D:\MySpice,
|
||||
you have to edit /visualc/include/config.h and alter the entries:
|
||||
#define NGSPICEBINDIR "C:/Spice/bin"
|
||||
#define NGSPICEDATADIR "C:/Spice/share/ngspice"
|
||||
to
|
||||
#define NGSPICEBINDIR "D:/MySpice/bin"
|
||||
#define NGSPICEDATADIR "D:/MySpice/share/ngspice"
|
||||
|
||||
#define NGSPICEDATADIR "D:/MySpice/share/ngspice"
|
||||
|
||||
If the code model files *.cm are not available, you will get warning messages,
|
||||
but you may use ngspice in the normal way (of course without XSPICE extensions).
|
||||
|
||||
but you may use ngspice in the normal way (of course without XSPICE extensions).
|
||||
|
||||
|
||||
|
||||
9.3 make ngspice with pure CYGWIN
|
||||
|
||||
If you don't have libdl.a you may need to link libcygwin.a
|
||||
If you don't have libdl.a you may need to link libcygwin.a
|
||||
to libdl.a symbolically.
|
||||
|
||||
for example:
|
||||
|
|
@ -654,12 +654,12 @@ Most of the options now following are not well maintained, are not tested or eve
|
|||
|
||||
|
||||
9.4 ngspice console app with MINGW or CYGWIN
|
||||
|
||||
Omitting the configure flag --with-wingui will yield a console ngspice.
|
||||
You then will not have any graphics interface. In CYGWIN you may add --with-x
|
||||
|
||||
Omitting the configure flag --with-wingui will yield a console ngspice.
|
||||
You then will not have any graphics interface. In CYGWIN you may add --with-x
|
||||
for the X11 graphics (not available in mingw). A typical configure command
|
||||
may look like
|
||||
./configure --enable-adms --enable-xspice --enable-cider --enable-openmp
|
||||
./configure --enable-adms --enable-xspice --enable-cider --enable-openmp
|
||||
--disable-debug CFLAGS=-m32 LDFLAGS=-m32 prefix=C:/Spice
|
||||
tested with TDM mingw.
|
||||
|
||||
|
|
|
|||
252
NEWS
252
NEWS
|
|
@ -2,99 +2,99 @@ Ngspice-25, Jan 4th, 2013
|
|||
============
|
||||
|
||||
- New features:
|
||||
+ add temperature coefficients for B source
|
||||
+ commands "mdump", "mrdump" to dump matrix to file
|
||||
+ allow `time', `temper', and `hertz' in expressions with behavioral R, L, C
|
||||
+ Enable ctrl-c to interrupt a simulation also for Windows GUI
|
||||
+ tests/bsim4: use the standard CMC model qa check
|
||||
+ implement exit code for command "quit"
|
||||
+ .nodeset all = value
|
||||
+ memristor code model in extradev
|
||||
+ new scalable diode model including tunnel component
|
||||
+ variable xtrtol may override the XSPICE reduction of trtol
|
||||
+ XSPICE example: delta-sigma converter
|
||||
+ XSPICE: new d_source model
|
||||
+ new option noopac
|
||||
+ bsim3: make additonal parameters accessible with @mxx[par]
|
||||
+ enable Mac OS X compilation
|
||||
+ option reseries = val
|
||||
+ commands "snsave", "snload"
|
||||
+ update hisim to version 2.7.0, new qa tests
|
||||
+ hisimhv update to version 1.2.3, new qa tests
|
||||
+ allow Ctrl-d to quit
|
||||
+ jfet model temperature extension, tcv and bex parameter
|
||||
+ speed up vector handling by hash table for vector address storage and retrieval
|
||||
+ update PSS code
|
||||
+ add temperature coefficients for B source
|
||||
+ commands "mdump", "mrdump" to dump matrix to file
|
||||
+ allow `time', `temper', and `hertz' in expressions with behavioral R, L, C
|
||||
+ Enable ctrl-c to interrupt a simulation also for Windows GUI
|
||||
+ tests/bsim4: use the standard CMC model qa check
|
||||
+ implement exit code for command "quit"
|
||||
+ .nodeset all = value
|
||||
+ memristor code model in extradev
|
||||
+ new scalable diode model including tunnel component
|
||||
+ variable xtrtol may override the XSPICE reduction of trtol
|
||||
+ XSPICE example: delta-sigma converter
|
||||
+ XSPICE: new d_source model
|
||||
+ new option noopac
|
||||
+ bsim3: make additonal parameters accessible with @mxx[par]
|
||||
+ enable Mac OS X compilation
|
||||
+ option reseries = val
|
||||
+ commands "snsave", "snload"
|
||||
+ update hisim to version 2.7.0, new qa tests
|
||||
+ hisimhv update to version 1.2.3, new qa tests
|
||||
+ allow Ctrl-d to quit
|
||||
+ jfet model temperature extension, tcv and bex parameter
|
||||
+ speed up vector handling by hash table for vector address storage and retrieval
|
||||
+ update PSS code
|
||||
|
||||
|
||||
- Bug fixes:
|
||||
+ many, many ... please see
|
||||
http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0
|
||||
+ many, many ... please see
|
||||
http://ngspice.git.sourceforge.net/git/gitweb.cgi?p=ngspice/ngspice;a=shortlog;pg=0
|
||||
+ remove memory leaks
|
||||
+ update tclspice for MS Windows
|
||||
+ adms3 removed due to licensing issues
|
||||
|
||||
|
||||
|
||||
Ngspice-24, Jan 29th, 2012
|
||||
============
|
||||
|
||||
- New features:
|
||||
+ .csparam allows to tranfer a param into a vector in .control ... .endc
|
||||
+ functions floor and ceil
|
||||
+ syntax Gxxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
|
||||
+ syntax Gxxx n1 n2 value={equation} or Exxx n1 n2 value={equation}
|
||||
+ variable strict_errorhandling to exit ngspice with exit code 1
|
||||
+ functions floor and ceil
|
||||
+ syntax Gxxx n1 n2 TABLE {expression} = (x0, y0) (x1, y1) (x2, y2)
|
||||
+ syntax Gxxx n1 n2 value={equation} or Exxx n1 n2 value={equation}
|
||||
+ variable strict_errorhandling to exit ngspice with exit code 1
|
||||
if any error occurs during circuit parsing
|
||||
+ command altermod allows reading from file
|
||||
+ command "devhelp" to show available devices and describe device parameters
|
||||
+ command altermod allows reading from file
|
||||
+ command "devhelp" to show available devices and describe device parameters
|
||||
+ command "inventory" to print the number of istances of each device.
|
||||
+ function cph(vec) delivers phase from a vector without jumps at +-PI
|
||||
+ function cph(vec) delivers phase from a vector without jumps at +-PI
|
||||
+ enable 64 bit compilation in MS Visual Studio
|
||||
+ --adms3 flag to compile with (experimental) adms code
|
||||
+ still very experimental pss code
|
||||
+ still very experimental pss code
|
||||
+ command 'remcirc' to remove a circuit from the list
|
||||
+ command 'wrdata' aknowledges appendwrite and prints complex variables
|
||||
+ allow comment lines inside of command files
|
||||
+ path variable NGSPICE_INPUT
|
||||
+ command 'wrdata' aknowledges appendwrite and prints complex variables
|
||||
+ allow comment lines inside of command files
|
||||
+ path variable NGSPICE_INPUT
|
||||
+ 'Filesource' code model
|
||||
|
||||
|
||||
- Bug fixes:
|
||||
+ More on prototypes, type casts, reordering of functions, compiler warnings
|
||||
+ fix a numerical problem in the hisim2 and hisimhv models
|
||||
+ plot i(vdd) from a loaded rawfile
|
||||
+ fix the guard for device generated internal nodes (via CKTmkVolt())
|
||||
+ reduce memory leaks for command 'reset'
|
||||
+ parameter processing for nested .subckt
|
||||
+ bsim4/b4noi.c: correct init the correlated noise slot in noiseDens and lnNdens vector
|
||||
+ Many small bugs
|
||||
|
||||
+ fix a numerical problem in the hisim2 and hisimhv models
|
||||
+ plot i(vdd) from a loaded rawfile
|
||||
+ fix the guard for device generated internal nodes (via CKTmkVolt())
|
||||
+ reduce memory leaks for command 'reset'
|
||||
+ parameter processing for nested .subckt
|
||||
+ bsim4/b4noi.c: correct init the correlated noise slot in noiseDens and lnNdens vector
|
||||
+ Many small bugs
|
||||
|
||||
Ngspice-23, June 5th, 2011
|
||||
============
|
||||
|
||||
- New features:
|
||||
+ Reduction of trtol to 1 only if 'A' devices in the circuit and xspice is enabled
|
||||
+ command wrs2p to write a s-parameter file using Touchstone vers. 1 format
|
||||
+ d_source d_state d_ram, test cases for those xspice codemodels
|
||||
+ transient noise simulation added to independent voltage and current sources
|
||||
+ Random telegraph noise added to independent voltage and current sources
|
||||
+ 'time = nnn' in stop command added
|
||||
+ random voltage generator option trrandom to independent voltage and current sources
|
||||
+ ngspice build possible in a separate directory (e.g. in ng-spice-rework/release)
|
||||
+ update FIND .. WHEN measurements
|
||||
+ diode & bjt temperature model update with tlev and tlevc
|
||||
+ merge bsim3v1a code with bsim3v0 and bsim3v1s code with bsim3v1
|
||||
+ bjt2: removed - all GP extensions of this model are now in the bjt model
|
||||
+ HiSIM_HV model vers. 1.2.1 added
|
||||
+ bsim3v32: delvto and mulu0 as instance parameters
|
||||
+ Replace HiSIM1 by HiSIM_2.5.1_Release_20110407
|
||||
+ d_source d_state d_ram, test cases for those xspice codemodels
|
||||
+ transient noise simulation added to independent voltage and current sources
|
||||
+ Random telegraph noise added to independent voltage and current sources
|
||||
+ 'time = nnn' in stop command added
|
||||
+ random voltage generator option trrandom to independent voltage and current sources
|
||||
+ ngspice build possible in a separate directory (e.g. in ng-spice-rework/release)
|
||||
+ update FIND .. WHEN measurements
|
||||
+ diode & bjt temperature model update with tlev and tlevc
|
||||
+ merge bsim3v1a code with bsim3v0 and bsim3v1s code with bsim3v1
|
||||
+ bjt2: removed - all GP extensions of this model are now in the bjt model
|
||||
+ HiSIM_HV model vers. 1.2.1 added
|
||||
+ bsim3v32: delvto and mulu0 as instance parameters
|
||||
+ Replace HiSIM1 by HiSIM_2.5.1_Release_20110407
|
||||
|
||||
- Bug fixes:
|
||||
+ More on prototypes, type casts, reordering of functions, compiler warnings
|
||||
+ allow models like 2N2904 or 2SK136 also in subcircuits
|
||||
+ fix sensitvity calculation (for the dc-2+.cir testcase)
|
||||
+ allow multiple call to setup w/ correct node collapsing
|
||||
+ Many small bugs
|
||||
|
||||
+ allow models like 2N2904 or 2SK136 also in subcircuits
|
||||
+ fix sensitvity calculation (for the dc-2+.cir testcase)
|
||||
+ allow multiple call to setup w/ correct node collapsing
|
||||
+ Many small bugs
|
||||
|
||||
Ngspice-22, Sept 26th, 2010
|
||||
============
|
||||
|
||||
|
|
@ -107,11 +107,11 @@ Ngspice-22, Sept 26th, 2010
|
|||
+ command 'option' for use in spinit, .spiceinit, and in scripts
|
||||
+ adms procedure updated
|
||||
+ new random number generator, random functions sunif() and sgauss()
|
||||
+ ngspice manual updated
|
||||
+ ngspice manual updated
|
||||
|
||||
- Bug fixes:
|
||||
+ Major code cleanup to reduce compiler/linker warnings: ansi function prototypes,
|
||||
void/char pointers to named pointers, explicit type casts and many more
|
||||
+ Major code cleanup to reduce compiler/linker warnings: ansi function prototypes,
|
||||
void/char pointers to named pointers, explicit type casts and many more
|
||||
+ Many small bugs
|
||||
|
||||
|
||||
|
|
@ -119,16 +119,16 @@ Ng-spice-rework-21, Jun3, 13th 2010
|
|||
============
|
||||
|
||||
- Updated Devices: BSIMSOI 4.3.1
|
||||
|
||||
- New features:
|
||||
+ Compatibility: C, L, R, devices and E, G sources with expressions
|
||||
Variables HERTZ, TIME, TEMPER added
|
||||
|
||||
- New features:
|
||||
+ Compatibility: C, L, R, devices and E, G sources with expressions
|
||||
Variables HERTZ, TIME, TEMPER added
|
||||
+ E, G sources with pwl function
|
||||
+ New manual
|
||||
+ Plotting with Gnuplot,
|
||||
+ Writing wrdata for simple text table to file
|
||||
+ .measure improved
|
||||
+ transmission line models improved
|
||||
+ Plotting with Gnuplot,
|
||||
+ Writing wrdata for simple text table to file
|
||||
+ .measure improved
|
||||
+ transmission line models improved
|
||||
|
||||
- Bug fixes:
|
||||
+ Many small bugs, memory leaks, memory overflows
|
||||
|
|
@ -138,28 +138,28 @@ Ng-spice-rework-20, November, 16th 2009
|
|||
|
||||
Ngspice release 20 is the second release of the simulator in 2009.
|
||||
|
||||
- Fixes: model names starting with a number (1n4001) are now correctly parsed.
|
||||
The .global command has been reinstated (it was previously disabled) and
|
||||
- Fixes: model names starting with a number (1n4001) are now correctly parsed.
|
||||
The .global command has been reinstated (it was previously disabled) and
|
||||
error messages now display the corresponding line numberin the input deck.
|
||||
- New Features: .measure command for transient, ac and dc analyses (still not
|
||||
- New Features: .measure command for transient, ac and dc analyses (still not
|
||||
complete, e.g. DERIV is missing).
|
||||
- Devices: Updated BISM4 model to revision 4.6.5. Added PWL (PieceWise Linear)
|
||||
- Devices: Updated BISM4 model to revision 4.6.5. Added PWL (PieceWise Linear)
|
||||
functionality for B (arbitrary generator) sources.
|
||||
|
||||
|
||||
|
||||
Ng-spice-rework-19, April, 23rd 2009
|
||||
============
|
||||
|
||||
Ngspice release 19 came early after release 18. It reveals an important work
|
||||
Ngspice release 19 came early after release 18. It reveals an important work
|
||||
in compile scripts, many bug fixes in memory management, interface, and work in device models.
|
||||
|
||||
- Compile scripts: tclspice and ADMS compiling fixes. Architecture compiling
|
||||
- Compile scripts: tclspice and ADMS compiling fixes. Architecture compiling
|
||||
fixes for SunOS, MS Visual Studio, MINGW, Cygwin.
|
||||
- Memory management: fixed memory leaks, modifies memory management for
|
||||
MS Windows, integration of espice bugfixes and enhancements, bug fixes in
|
||||
- Memory management: fixed memory leaks, modifies memory management for
|
||||
MS Windows, integration of espice bugfixes and enhancements, bug fixes in
|
||||
plots and cli interface.
|
||||
- Rework of BSim models, integration of EPFL-EKV model V2.63, ADMS models
|
||||
mextram, hicum0, hicum2.
|
||||
- Rework of BSim models, integration of EPFL-EKV model V2.63, ADMS models
|
||||
mextram, hicum0, hicum2.
|
||||
|
||||
|
||||
Ng-spice-rework-18
|
||||
|
|
@ -187,7 +187,7 @@ into the simulator.
|
|||
Ng-spice-rework-17
|
||||
============
|
||||
|
||||
This is a bug fix release. Previous release tarball did not included
|
||||
This is a bug fix release. Previous release tarball did not included
|
||||
an include file necessary for compiling numparam library.
|
||||
|
||||
|
||||
|
|
@ -198,51 +198,51 @@ Rework-16 comes out after almost one year of CVS development (from
|
|||
15-fixedRC3). This release improves ngspice in three ways:
|
||||
|
||||
- Bug fixing: most of the bugs that affected rework-15 have been fixed,
|
||||
thus ngspice is more stable, especially the xspice extension, the
|
||||
thus ngspice is more stable, especially the xspice extension, the
|
||||
subcircuit (X devices) handling and the numparam library.
|
||||
|
||||
|
||||
- New features: netlist syntax has been expandend allowing for end-of-line
|
||||
comments. A ".global" card has beed added to define global nodes, i.e.
|
||||
nodes that are not expanded in subcircuits. It is possible to define TC
|
||||
comments. A ".global" card has beed added to define global nodes, i.e.
|
||||
nodes that are not expanded in subcircuits. It is possible to define TC
|
||||
for resistors on the instance line. The editline library can be used
|
||||
instead of readline (no more GPL license violation).
|
||||
|
||||
- Porting: ngspice now works (with xspice extension) on Windows using
|
||||
MINGW/MSYS.
|
||||
|
||||
- Porting: ngspice now works (with xspice extension) on Windows using
|
||||
MINGW/MSYS.
|
||||
|
||||
|
||||
Ng-spice-rework-15
|
||||
============
|
||||
|
||||
Rework-15 release is a giant leap forward for ngspice. It incorporates
|
||||
many (read most) of the improvements implemented in tclspice during the
|
||||
two years long "sleep" of ngspice and adds many others. The incomplete
|
||||
list of new features incorporated are:
|
||||
Rework-15 release is a giant leap forward for ngspice. It incorporates
|
||||
many (read most) of the improvements implemented in tclspice during the
|
||||
two years long "sleep" of ngspice and adds many others. The incomplete
|
||||
list of new features incorporated are:
|
||||
|
||||
- Xspice simulator (with codemodel dynamic loading support):
|
||||
a mixed signal simulator built upon spice3.
|
||||
|
||||
|
||||
- Cider simulator:
|
||||
a mixed level simulator built upon spice3.
|
||||
|
||||
|
||||
- Numparam library:
|
||||
a library that allows for parameter substitution at netlist level.
|
||||
|
||||
|
||||
- Improved models:
|
||||
Diode model includes periphery effects and high level of injection effects,
|
||||
BJT and BJT2 enhanced.
|
||||
BSIM3 now includes ACM.
|
||||
BSIM4 implementation corrected.
|
||||
|
||||
|
||||
-New models:
|
||||
VBIC (3 Terminals, no excess phase and thermal network),
|
||||
HiSIM.
|
||||
|
||||
|
||||
- Frontend leaks closed.
|
||||
Now frontend works as it should.
|
||||
|
||||
|
||||
- Many new example file.
|
||||
|
||||
|
||||
- Xgraph plotting program included.
|
||||
|
||||
|
||||
|
|
@ -250,11 +250,11 @@ Ng-spice-rework-14
|
|||
============
|
||||
|
||||
This is a major release in terms of bug-fixes. Some enhancements
|
||||
have been included: BSIM4 model and support for EKV model. The
|
||||
have been included: BSIM4 model and support for EKV model. The
|
||||
source code for the latter must be obtained from EKV web site
|
||||
(see DEVICE for more info). To enable EKV support you have
|
||||
to obtain the code first and then use the configure switch
|
||||
"--enable-ekv".
|
||||
"--enable-ekv".
|
||||
|
||||
The spice code contains an option to debug frontend code, now
|
||||
this is available in configure as "--enable-ftedebug".
|
||||
|
|
@ -266,17 +266,17 @@ Ng-spice-rework-13
|
|||
|
||||
This is a major release in terms of fixes and enhancements.
|
||||
A garbage collector support has been added. If the configuration
|
||||
script detects that you have installed GC (Bohem-Weiser conservative
|
||||
garbage collector), it will use it. Some memory leaks have been
|
||||
script detects that you have installed GC (Bohem-Weiser conservative
|
||||
garbage collector), it will use it. Some memory leaks have been
|
||||
fixed too.
|
||||
|
||||
Enhancements to the code comes from Alan's contribute code, a
|
||||
Enhancements to the code comes from Alan's contribute code, a
|
||||
description of improvements follows (extracted form Alan's mail):
|
||||
|
||||
Output File Format Changes -
|
||||
|
||||
(NOTE: Do not rely on this, we may revert to the old format
|
||||
in the next release).
|
||||
(NOTE: Do not rely on this, we may revert to the old format
|
||||
in the next release).
|
||||
|
||||
Text mode .OP results even though "rawfile" written.
|
||||
|
||||
|
|
@ -363,7 +363,7 @@ New Model Parameters -
|
|||
A device multiplier instance parameter "M" (i.e. M devices in
|
||||
parallel) was added to the MOS1,2,3 and BSIM3 mosfet models.
|
||||
|
||||
|
||||
|
||||
Input Read-in and Checking -
|
||||
|
||||
Numbers beginning with a + sign got the input routine confused.
|
||||
|
|
@ -377,7 +377,7 @@ Input Read-in and Checking -
|
|||
Previously each time-point was checked as it was reached during
|
||||
the simulation, which could be very annoying if you made a mistake
|
||||
which caused the simulation to fail after hours of run-time.
|
||||
|
||||
|
||||
A check which was performed at the end of each sub-circuit expansion
|
||||
was moved to the top level. This check makes sure that all sub-circuits
|
||||
have been defined, but in its original position, it meant that if a
|
||||
|
|
@ -404,7 +404,7 @@ Miscellaneous Fixes/Enhancements -
|
|||
The "rawfile" writing routines have been modified to print the
|
||||
"reference value" to the console during the simulation. This lets
|
||||
the user see exactly how far and how fast the simulation is
|
||||
proceeding.
|
||||
proceeding.
|
||||
|
||||
.OP printout tidied up a lot to make the printout clearer.
|
||||
|
||||
|
|
@ -424,17 +424,17 @@ Etc. -
|
|||
Ng-spice-rework-12
|
||||
============
|
||||
Arno did a great work this summer!
|
||||
The pole-zero analysis has been corrected. The error was introduced
|
||||
in an attempt to eliminate compiler warnings. The source has been
|
||||
reworked and info file have been updated. As you may see, a new dir
|
||||
The pole-zero analysis has been corrected. The error was introduced
|
||||
in an attempt to eliminate compiler warnings. The source has been
|
||||
reworked and info file have been updated. As you may see, a new dir
|
||||
called "spicelib" has been created, another step toward the separation
|
||||
of the simulator from the frontend.
|
||||
of the simulator from the frontend.
|
||||
|
||||
Ng-spice-rework-11
|
||||
============
|
||||
|
||||
Resistor code (device) has been modified to conform to spice3 device
|
||||
coding standard.
|
||||
Resistor code (device) has been modified to conform to spice3 device
|
||||
coding standard.
|
||||
A new step function (U2) has been introduced.
|
||||
Documentation updated.
|
||||
|
||||
|
|
@ -483,7 +483,7 @@ Usage of this patch, once incorporated:
|
|||
|
||||
# create a working tree to work from
|
||||
cp -a ng-spice-rework-x ng-spice
|
||||
|
||||
|
||||
[ Changes made to ng-spice ]
|
||||
|
||||
# clean up all the automatically generated files
|
||||
|
|
@ -528,7 +528,7 @@ AC resistance.
|
|||
Ng-spice-rework-5 and 5_2 (Jan 2000)
|
||||
============
|
||||
|
||||
Internal development release, buggy and not working.
|
||||
Internal development release, buggy and not working.
|
||||
|
||||
Ng-spice-rework-4 (22/12/99)
|
||||
============
|
||||
|
|
@ -540,10 +540,10 @@ for the future GPL simulator. Thanks to Arno Peters and Manu Rouat.
|
|||
|
||||
2) Patched the following bug (thanks to Andrew Tuckey for having
|
||||
supplied the patch).
|
||||
|
||||
|
||||
* Wsw (current controlled switch) in subckt, parsing bug.
|
||||
* scale factor in arbitrary source.
|
||||
* bug in noise analysis.
|
||||
* save segmentation faults.
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
48
README
48
README
|
|
@ -1,60 +1,60 @@
|
|||
README for NGSPICE
|
||||
==================
|
||||
|
||||
Ngspice is a mixed-level/mixed-signal circuit simulator. Its code
|
||||
is based on three open source software packages: Spice3f5, Cider1b1
|
||||
Ngspice is a mixed-level/mixed-signal circuit simulator. Its code
|
||||
is based on three open source software packages: Spice3f5, Cider1b1
|
||||
and Xspice.
|
||||
|
||||
Spice3 does not need any introduction, is the most popular circuit
|
||||
simulator. In over 30 years of its life Spice3 has become a de-facto
|
||||
Spice3 does not need any introduction, is the most popular circuit
|
||||
simulator. In over 30 years of its life Spice3 has become a de-facto
|
||||
standard for simulating circuits.
|
||||
|
||||
Cider couples Spice3f5 circuit level simulator to DSIM device simulator
|
||||
to provide greater simulation accuracy of critical devices. DSIM
|
||||
to provide greater simulation accuracy of critical devices. DSIM
|
||||
devices are described in terms of their structures and materials.
|
||||
|
||||
Xspice is an extension to Spice3C1 that provides code modeling support
|
||||
and simulation of digital components through an embedded event driven
|
||||
Xspice is an extension to Spice3C1 that provides code modeling support
|
||||
and simulation of digital components through an embedded event driven
|
||||
algorithm.
|
||||
|
||||
Ngspice is, anyway, a little more than the simple sum of the packages
|
||||
Ngspice is, anyway, a little more than the simple sum of the packages
|
||||
above, as many people contributed to the project with their experience,
|
||||
their bug fixes and their improvements. If you are interested, browse
|
||||
the site and discover what ngspice offers and what needs. If you think
|
||||
their bug fixes and their improvements. If you are interested, browse
|
||||
the site and discover what ngspice offers and what needs. If you think
|
||||
you can help, join the development team.
|
||||
|
||||
Ngspice is an ongoing project, growing everyday from users contributions,
|
||||
suggestions and reports. What we will be able to do depends mostly on
|
||||
user interests, contributions and feedback.
|
||||
suggestions and reports. What we will be able to do depends mostly on
|
||||
user interests, contributions and feedback.
|
||||
|
||||
|
||||
MAILING LISTS:
|
||||
-------------
|
||||
|
||||
There are two mailing lists dedicated to the use and development of ngspice.
|
||||
There are two mailing lists dedicated to the use and development of ngspice.
|
||||
|
||||
* ngspice-users@lists.sourceforge.net:
|
||||
This list is the list for the users of the ngspice simulator.
|
||||
* ngspice-users@lists.sourceforge.net:
|
||||
This list is the list for the users of the ngspice simulator.
|
||||
|
||||
* ngspice-devel@lists.sourceforge.net:
|
||||
ngspice development issues. Developers and "want to be" developers should
|
||||
* ngspice-devel@lists.sourceforge.net:
|
||||
ngspice development issues. Developers and "want to be" developers should
|
||||
subscribe here.
|
||||
|
||||
|
||||
To subscribe the list(s), send a message to:
|
||||
<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
|
||||
|
|
|
|||
48
README.adms
48
README.adms
|
|
@ -39,8 +39,8 @@ Holger Vogt, May 2013
|
|||
|
||||
INTRODUCTION
|
||||
|
||||
In this document we will provide a guideline on how to auto-generate the
|
||||
ready-to compile C code for the ngspice API of a compact device model
|
||||
In this document we will provide a guideline on how to auto-generate the
|
||||
ready-to compile C code for the ngspice API of a compact device model
|
||||
defined in the Verilog-AMS language.
|
||||
|
||||
Condition:
|
||||
|
|
@ -61,9 +61,9 @@ Goal:
|
|||
using the Verilog-AMS source code available at:
|
||||
http://www.iee.et.tu-dresden.de/~schroter/Hicum_PD/Hicumna/hicumL0V1p11.va
|
||||
|
||||
Limitations:
|
||||
The adms ngspice interface supports a limited set of Verilog-AMS language
|
||||
constructs. See the home page of adms (http://mot-adms.sourceforge.net/)
|
||||
Limitations:
|
||||
The adms ngspice interface supports a limited set of Verilog-AMS language
|
||||
constructs. See the home page of adms (http://mot-adms.sourceforge.net/)
|
||||
for more info.
|
||||
Feel free to contribute to the adms ngspice interface so that more
|
||||
constructs can be supported.
|
||||
|
|
@ -72,42 +72,42 @@ Limitations:
|
|||
01- ngspice Files
|
||||
|
||||
Ngspice does not (yet) have support for loading models at run time, every
|
||||
model must be included at compile time. Then, adding a new model into
|
||||
model must be included at compile time. Then, adding a new model into
|
||||
ngspice is a process that cannot be completely automated. Some files need
|
||||
to be edited by hand.
|
||||
|
||||
|
||||
01.01 What ngspice need to know of a new model ?
|
||||
|
||||
|
||||
First you have to assign your new model a "device type". As you probably
|
||||
know, ngspice recognizes the type of a device by the first letter in
|
||||
know, ngspice recognizes the type of a device by the first letter in
|
||||
device's name in the netlists ("r" for resistors, "q" for BJT, "m" for
|
||||
mosfets and so on). Then the first thing you have to find is the correct
|
||||
type for your new device (let's call this device_type).
|
||||
|
||||
|
||||
Since there can be more than one model for each device type, another
|
||||
parameter you have to set is the device_level, which must be unique
|
||||
for each device type.
|
||||
|
||||
|
||||
Once you have found the (device_type, device_level) couple you have
|
||||
identified the files you have to edit:
|
||||
identified the files you have to edit:
|
||||
|
||||
<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.
|
||||
|
|
|
|||
20
README.tcl
20
README.tcl
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
Welcome to tclspice README_tcl
|
||||
|
||||
This file acompanies ngspice sources starting with ngspice-rework-18. It
|
||||
This file acompanies ngspice sources starting with ngspice-rework-18. It
|
||||
describes what tclspice is, its installation, and points to resources that will
|
||||
help you to start with it. It also contains usefull datas to keep informed,
|
||||
get help, or get involved in the project.
|
||||
|
|
@ -34,16 +34,16 @@ Lionel (saintel@users.sourceforge.net)
|
|||
|
||||
What is tclspice:
|
||||
|
||||
tclspice is a variant of ngspice. It share 95% of its code (approx). The
|
||||
different between plain NGspice and tclspice is the type of binary it produces,
|
||||
and the way to access it. NGspice is a standalone program that you can execute
|
||||
and which can either automatically process a spice directives script. It can
|
||||
tclspice is a variant of ngspice. It share 95% of its code (approx). The
|
||||
different between plain NGspice and tclspice is the type of binary it produces,
|
||||
and the way to access it. NGspice is a standalone program that you can execute
|
||||
and which can either automatically process a spice directives script. It can
|
||||
also propose you a command line interface.
|
||||
tclspice is a tcl package name. It is based on libspice shared library. This
|
||||
library is specifically designed to be loaded in tcl interpreters such as tclsh
|
||||
tclspice is a tcl package name. It is based on libspice shared library. This
|
||||
library is specifically designed to be loaded in tcl interpreters such as tclsh
|
||||
or wish. Then all spice directives are available as tcl functions. libspice also
|
||||
feature some new commands that are usefull for the integration into the tcl
|
||||
environment.
|
||||
feature some new commands that are usefull for the integration into the tcl
|
||||
environment.
|
||||
|
||||
tclspice differs from ngspice by its printf (bundled to tcl printf), malloc (tcl
|
||||
malloc), data handling and plotting (BLT toolkit extensions to tcl/tk).
|
||||
|
|
@ -62,7 +62,7 @@ tcl 8.4
|
|||
tk 8.4
|
||||
blt 2.4
|
||||
|
||||
Tclspice is built and installed the same way as ngspice. Then, after reading this
|
||||
Tclspice is built and installed the same way as ngspice. Then, after reading this
|
||||
paragraph, the information you lack will probably be in README file in this directory.
|
||||
There is a configuration flag to set in order to compile tclspice library rather than
|
||||
plain ngspice, that is a standalone program. This flag is --with-tcl. It accepts an
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue