Documentation updated

This commit is contained in:
pnenzi 2001-12-06 16:33:02 +00:00
parent 5347790036
commit dfd1cf014b
4 changed files with 542 additions and 331 deletions

View File

@ -37,4 +37,4 @@ Michael Widlok <widlok@@uci.agh.edu.pl>,
and many others... and many others...
If you feel you should be on this list, write to If you feel you should be on this list, write to
<ng-spice@@ieee.ing.uniroma1.it>. <ngspice-user@lists.sourceforge.net>.

272
DEVICES
View File

@ -1,14 +1,14 @@
DEVICES DEVICES
------------------------------------------------------------------------------- ---------------------------------------------------------------------------
This file contains the status of devices available in ng-spice. This This file contains the status of devices available in ngspice. This file
file will be updated every time the device cospecific code is will be updated every time the device pecific code is altered or changed.
altered/changed. This file it is useful in writing ngspice documentation.
************************************** ***************************************************************************
********** Linear devices ********** ************************* Linear devices ********************************
************************************** ***************************************************************************
CAP - Capacitor CAP - Capacitor
Initial Release Initial Release
@ -17,18 +17,18 @@ IND - Inductor
Initial Release Initial Release
RES - Resistor RES - Resistor
This is a modified version of the spice3 resistance model. This This is a modified version of the spice3 resistance model. This model
model supports different ac and dc values (ac=...). This changes supports different ac and dc values (ac=...). These changes have been
are introduced by Serban Popescu. The "multiplicity factor" (m) introduced by Serban Popescu. The "multiplicity factor" (m) has been
has been introduced. The "scale factor" has been introduced. introduced. The "scale factor" has been introduced.
*)Rework 11: The code has been modified to reflect spice parsing *)Rework 11: The code has been modified to reflect spice parsing
standard. standard.
************************************** ***************************************************************************
******** Distributed elements ******** ********************* Distributed elements ********************************
************************************** ***************************************************************************
TRA - Transmission line TRA - Transmission line
Initial release Initial release
@ -40,9 +40,9 @@ URC - Uniform distributed RC line
Initial release Initial release
************************************** ***************************************************************************
********** V/I Sources ********** **************************** V/I Sources *****************************
************************************** ***************************************************************************
ASRC - Arbitrary Source ASRC - Arbitrary Source
Initial Release Initial Release
@ -66,9 +66,9 @@ VSRC - Independent Voltage Source
Initial Release Initial Release
************************************** ***************************************************************************
********* Switches ********** **************************** Switches ****************************
************************************** ***************************************************************************
CSW - Current controlled switch CSW - Current controlled switch
Initial release Initial release
@ -77,25 +77,27 @@ SW - Voltage controlled switch
Initial release Initial release
************************************** ***************************************************************************
********** Diodes ********** **************************** Diodes ****************************
************************************** ***************************************************************************
DIO - Junction Diode DIO - Junction Diode
Initial Release Initial Release
************************************** ***************************************************************************
*********** Bipolar Devices ********** ************************* Bipolar Devices *************************
************************************** ***************************************************************************
BJT - Bipolar Junction Transistor BJT - Bipolar Junction Transistor
Initial Relelase Initial Relelase
BJT2 - Bipolar Junction Trasistor (Alan Gillespie)
On hold (not included)
************************************** ***************************************************************************
********** FET Devices ********** ***************************** FET Devices ***************************
************************************** ***************************************************************************
JFET - Junction Field Effect transistor JFET - Junction Field Effect transistor
Initial Release Initial Release
@ -103,71 +105,158 @@ JFET - Junction Field Effect transistor
JFET2 - Jfet PS model JFET2 - Jfet PS model
Initial release. TO BE TESTED Initial release. TO BE TESTED
***************************************************************************
************************************** *************************** HFET devices ***************************
********* MES devices ********* ***************************************************************************
**************************************
HFET - HFET Level 1
Initial release.
HFET2 - HFET Level 2
Initial release.
***************************************************************************
*************************** MES devices ***************************
***************************************************************************
MES - MESfet model MES - MESfet model
Initial release Initial release
MESA - MESA model
Initial release. TO BE TESTED
************************************** ***************************************************************************
********* MOS devices ********* **************************** MOS devices ****************************
************************************** ***************************************************************************
MOS1 - Level 1 MOS model MOS1 - Level 1 MOS model
Initial Release Initial Release.
Ver: N/A
Class: M
Level: 1
Status: TO BE TESTED
MOS2 - Level 2 MOS model MOS2 - Level 2 MOS model
Initial Release Initial Release.
Ver: N/A
Class: M
Level: 2
Status: TO BE TESTED
MOS3 - Level 3 MOS model MOS3 - Level 3 MOS model
Initial Release Initial Release.
Ver: N/A
Class: M
Level: 3
Status: TO BE TESTED
MOS6 - Level 6 MOS model MOS6 - Level 6 MOS model
Initial Release Initial Release.
Ver: N/A
Class: M
Level: 6
Status: TO BE TESTED
MOS9 - Level 9 MOS model
Initial Release.
Ver: N/A
Class: M
Level: 9
Status: TO BE TESTED
BSIM1 - BSIM model level 1 BSIM1 - BSIM model level 1
Initial Release Initial Release.
Ver: N/A
Class: M
Level: 4
Status: TO BE TESTED
BSIM2 - BSIM model level 2 BSIM2 - BSIM model level 2
Initial Release Initial Release.
Ver: N/A
Class: M
Level: 5
Status: TO BE TESTED
BSIM3 - BSIM model level 3 BSIM3 - BSIM model level 3
This is the BSIM3v3.2.2 model from Berkeley device group. You Initial Release.
can find some test netlists with results for this model at Ver: 3.2.2
http://www-device.eecs.berkeley.edu/~bsim3. Class: M
Level: 8
Status: TO BE TESTED
This is the BSIM3v3.2.2 model from Berkeley device group.
You can find some test netlists with results for this model
on its web site.
Web site:
http://www-device.eecs.berkeley.edu/~bsim3
BSIM3v1 - BSIM model level 3 BSIM3v1 - BSIM model level 3
This is the BSIM3v3.1 model modified by Serban Popescu. This is Initial Release.
level 49 model. It is an implementation that supports HDIF and M Ver: N/A
parameters. Test netlists are available at the URL above. TO BE Class: M
TESTED AND IMPROVED. Level: 49
Status: TO BE TESTED AND IMPROVED
This is the BSIM3v3.1 model modified by Serban Popescu.
This is level 49 model. It is an implementation that supports
"HDIF" and "M" parameters.
BSIM3v2 - BSIM model level 3 BSIM3v2 - BSIM model level 3
This is the BSIM3v3.2 model. It is proved only for compatibility Initial Relese.
with existing netlists and parameters files. As always, tests Ver: 3.2
are availabe on the Berkeley's device group site (at the above Class: M
URL). Level: 50
Status: TO BE TESTED
This is the BSIM3v3.2 model. It is included only for compatibility
with existing netlists and parameters files. As always, tests
are availabe on the Berkeley's device group site.
Web site:
http://www-device.eecs.berkeley.edu/~bsim3
BSIM4 - BSIM model level 4 (0.18 um) BSIM4 - BSIM model level 4 (0.18 um)
Initial Release. TO BE TESTED. Initial Release.
Updated to 4.21 YET UNTESTED. Ver: 4.2.1 (Updated in rewor 14)
Class: M
Level: 14
Status: TO BE TESTED
This is the BSIM4 device model from Berkeley Device Group.
Test are available on its web site.
Web site:
http://www-device.eecs.berkeley.edu/~bsim3/bsim4.html
*) Rework 14: Updated to 4.21 YET UNTESTED.
************************************** ***************************************************************************
********** SOI Devices ********* ***************************** SOI Devices ****************************
************************************** ***************************************************************************
BSIM3SOI_FD - SOI model (fully depleted devices) BSIM3SOI_FD - SOI model (fully depleted devices)
Initial Release Ver: 2.1. TO BE TESTED. Initial Release.
FD model has been integrated as Level = 10 Ver: 2.1.
Class: M
Level: 11
Status: TO BE TESTED.
FD model has been integrated.
There is a bsim3soifd directory under the test There is a bsim3soifd directory under the test
hierarchy. Test circuits come from the bsim3soi hierarchy. Test circuits come from the bsim3soi
web site at:
Web site at:
http://www-device.eecs.berkeley.edu/~bsimsoi http://www-device.eecs.berkeley.edu/~bsimsoi
*) rework-14: removed #ifndef NEWCONV code. *) rework-14: removed #ifndef NEWCONV code.
@ -175,21 +264,60 @@ BSIM3SOI_FD - SOI model (fully depleted devices)
BSIM3SOI_PD - SOI model (partially depleted devices) BSIM3SOI_PD - SOI model (partially depleted devices)
Initial Release Ver: 2.2.1. TO BE TESTED. Initial Release.
PD model has been integrated as Level = 9 Ver: 2.2.1
Class: M
Level: 10
Status: TO BE TESTED.
PD model has been integrated.
There is a bsim3soipd directory under the test There is a bsim3soipd directory under the test
hierarchy. Test circuits come from the bsim3soi hierarchy. Test circuits come from the bsim3soi
web site at:
Web site at:
http://www-device.eecs.berkeley.edu/~bsimsoi http://www-device.eecs.berkeley.edu/~bsimsoi
*) rework-14: removed #ifndef NEWCONV code. *) rework-14: removed #ifndef NEWCONV code.
BSIM3SOI_DD - SOI Model (dynamic depletion model) BSIM3SOI_DD - SOI Model (dynamic depletion model)
Initial Release Ver: 2.1. TO BE TESTED. Initial Release.
DD model has been integrated as level= 11 Ver: 2.1
Class: M
Level: 12
Status: TO BE TESTED.
There is a bsim3soidd directory under the There is a bsim3soidd directory under the
test hierarchy. Test circuits come from bsim3soi test hierarchy. Test circuits come from bsim3soi
web site at:
Web site at:
http://www-device.eecs.berkeley.edu/~bsimsoi http://www-device.eecs.berkeley.edu/~bsimsoi
*) rework-14: removed #ifndef NEWCONV code. *) rework-14: removed #ifndef NEWCONV code.
SOI3 - STAG SOI3 Model
Initial Release.
Ver: 2.6
Class: M
Level: 62
Status: TO BE TESTED
Web site at:
http://www.micro.ecs.soton.ac.uk/stag/
***************************************************************************
**************** Other devices not released as source code ****************
***************************************************************************
EKV - EKV model
Initial Release.
Ver: 2.6
Class: M
Level: 44
Status: TO BE TESTED
Note: This model is not released in source code.
You have to obtain the source code from the address below.
Web site at:
http://legwww.epfl.ch/ekv/

530
FAQ
View File

@ -1,299 +1,377 @@
Ngspice F.A.Q.Version 1.0
Maintened by Paolo Nenzi <p.nenzi@ieee.org>
Last update: 05/12/2001
This document contains the Frequently Asked Questions (and Answers)
for ngspice project.
______________________________________________________________________
Table of Contents
NG-Spice F.A.Q. 1. INTRODUCTION AND GENERAL INFORMATION
Frequently Asked Questions 1.1 What is ngspice?
(and Answers) 1.2 Why resurrecting Berkeley's Spice?
1.3 What is the project's goal?
1.4 What you are going to do?
1.5 Legal issues
1.6 What mailing lists exist for ngspice?
1.7 Are the mailing lists archived anywhere?
1.8 What newsgroups exist for ngspice?
1.9 Where can I get a copy of ngspice?
1.10 Where should I look on the World Wide Web for ngspice stuff?
1.11 Where should I look on the World Wide Web for Spice documentation?
Maintened by Daniele Foci <d.foci@ieee.ing.uniroma1.it> 2. DEVELOPMENT
Last update: 29/08/1999
CONTENTS
1. INTRODUCTION AND GENERAL INFORMATION
1.1 What is NG-Spice?
1.2 Why resurrecting Berkeley's Spice?
1.3 What is the project's goal?
1.4 What you are going to do ?
1.5 Legal issues
1.6 What mailing lists exist for NG-Spice?
1.7 Are the mailing lists archived anywhere?
1.8 What newsgroups exist for NG-Spice?
1.9 Where can I get a copy of NG-Spice?
1.10 Where should I look on the World Wide Web for NG-Spice stuff?
2. DEVELOPMENT
2.1 What is the current version? 2.1 What is the current version?
2.2 What are the latest features in the current release? 2.2 What are the latest features in the current release?
2.3 What does it look like ? 2.3 What does it look like?
2.4 Who are the authors of ng-spice ? 2.4 Who are the authors of ngspice?
2.5 How can I report a bug/request for a feature? 2.5 How can I report a bug/request for a feature?
2.6 How can I join the development? 2.6 How can I join the development?
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS
3.1 What systems are supported? 3.1 What systems are supported?
3.2 I get errors when I try to compile the source code, why? 3.2 I get errors when I try to compile the source code, why?
3.3 This document didn't answer my question. Where else can I look for 3.3 This document didn't answer my question. Where else can I look for an answer?
an answer?
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS 4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS
4.1 Feedback 4.1 Feedback
4.2 Formats in which this FAQ is available 4.2 Formats in which this FAQ is available
4.3 Authorship and acknowledgements 4.3 Authorship and acknowledgements
4.4 Disclaimer and Copyright 4.4 Disclaimer and Copyright
-------------------------------------------------------------------------------
1. INTRODUCTION AND GENERAL INFORMATION ______________________________________________________________________
1.1 What is NG-Spice? 11.. IINNTTRROODDUUCCTTIIOONN AANNDD GGEENNEERRAALL IINNFFOORRMMAATTIIOONN
NG-spice is the name of a project and of a program in the project. Spice is
the famous circuit simulator developed by the CAD Group of the University
of California at Berkeley (UCB). The NG prefix has a lot of meanings: Next
Generation, New Good, etc. Choose or invent the one you prefer. The NG-spice
project aims to improve the capabilities of the Spice3 circuit simulator.
The heart of the project is the ng-spice program, a circuit simulator
derived from spice3f5.
1.2 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.
On the more technical side, spice3 uses good numerical algorithms
( most commercial implementations have only strengthened them), implements
most of the models for MOSFET submicron designs and has a powerful set of
analyses. On the more "social" side, spice3 it's well introduced in the
academic environment.
1.3 What is the project's goal?
The final goal of NG-spice project is to develop a reliable, fast and
friendly circuit simulator for mixed signal/mixed level simulation.
Easy isn't it ;-).
1.4 What you are going to do?
The NG-spice project is divided in two main overlapping phases. The first
phase is strictly pertinent to the spice3f5 code: during this phase the
original spice3f5 code will be "cleaned" and corrected and small improvements
made to it. In phase one the Autoconf interface will replace the Berkeley's
one and this will lead to a different structure of the sources.
The second phase is the development of improvements in the ngspice code
(the old spice3f5 code cleaned and corrected) and of some programs that will
interface with it, like a schematic editor and a waveform viewer. A list of
proposed improvements follows:
1) The framework (or Graphic User Interface):
Spice is (and should continue to be) a command line or a text tool, but
this makes very difficult to design large circuits. To overcome this
difficulty, a schematic entry tool and a waveform viewer tools are needed.
Nevertheless, there are other tools that can be useful: a parts database,
an editor which higlights the syntax, a symbol editor, etc.
Most of these program already exists in the open source world, so they
need only to be integrated in a common EDA environment.
2) Documentation:
Commercial simulators have very good manuals with tutorials, models
equations explained, example of use, suggestions, etc. This line of
development has the task of providing the final spice user with an ordered
and comprehensive set of information on the program and its features.
The documentation should be useful for the student as well as for the
circuit professional.
3) Improvements to the Spice code:
This is the hard part. The target of this direction is to make ngspice a
commercial grade simulator. This means improving it's speed, its
numerical strenght, include the latest models available and some other
important features:
* Numerical Algorithms:
- More stable algorithms for integration (as Runge-Kutta Methods).
- Better convergence in Operating Point Calculation replacing the
Newton-Raphson algorithm, a modified version of Fixed-Point
Homotopy.
* Devices:
- Behavioral device: enhance the B device of spice3 to accepts IF THEN
ELSE conditions, and digital keywords like DELAY,
HIGHV, LOWV, etc. to simulate simple digital
device.
- Dynamically Loadable Devices: reduce the memory occupied by the
simulator by using shared object code
for devices. Each device is a .so
library that is inserted only if the
circuit contains an element modeled by
the device. If we are simulating CMOS,
we do not need BJT or SOI (in most of
the situations).
- Code Level Modeling: let users write their devices in C and use
them in the simulator.
- Improving device: include additional parameters to some devices as
HDIF, LDIF, etc.
* New types of analysis, oriented to circuits syntesis and optimization:
- Network analysis: given four nodes, extract z,y,s and the other
double bipole paramters.
- Monte Carlo analysis: statistical simulation based on device
tolerances.
- Worst Case analysis: find the worst case of operation of a given
circuit based on device tolerances.
- Parametric analysis: repeat an analysis when one or more parameters
assumes different values.
* Faster handling of sparse matrices.
* Possibility to mesure circuit pameters, like the delay between two
nodes, etc.
* ... whatever else can be judged useful.
1.5 Legal issues
[not written yet: GPL vs. Berkeley] 11..11.. WWhhaatt iiss nnggssppiiccee??
1.6 What mailing lists exist for NG-Spice? Ngspice is the name of a project and of a program in the project.
Spice is the famous circuit simulator developed by the CAD Group of
the University of California at Berkeley (UCB). The NG prefix has a
lot of meanings: Next Generation, New Good, etc. Choose or invent the
one you prefer. The ngspice project aims to improve the capabilities
of the Spice3 circuit simulator. The heart of the project is the
ngspice program, a circuit simulator derived from spice3f5.
Only one. Send an empty message to <ng-spice-help@ieee.ing.uniroma1.it> to
have information on subscription.
1.7 Is the mailing lists archived anywhere? 11..22.. WWhhyy rreessuurrrreeccttiinngg BBeerrkkeelleeyy''ss SSppiiccee??
Yes, the list is archived. Send an empty message to Berkeley's Spice can be considered the father of most circuit
<ng-spice-help@ieee.ing.uniroma1.it> to have information on how to retrieve simulators available today. It is an old but still good piece of
old messages. 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. On the more technical side, spice3
uses good numerical algorithms (most commercial implementations have
only strengthened them), implements most of the models for MOSFET
submicron designs and has a powerful set of analyses. On the more
"social" side, spice3 it's well introduced in the academic
environment.
1.8 What newsgroups exist for NG-Spice?
11..33.. WWhhaatt iiss tthhee pprroojjeecctt''ss ggooaall??
The final goal of ngspice project is to develop a reliable, fast and
friendly circuit simulator for mixed signal/mixed level simulation.
Easy isn't it? ;-).
11..44.. WWhhaatt yyoouu aarree ggooiinngg ttoo ddoo??
We are going to develop a circuit simulation program. The line of
development follows two parallel paths:
1. EEnnhhaanncceemmeennttss aanndd bbuugg--ffiixxiinngg ooff tthhee oorriiggiinnaall ssppiiccee33ff55 ccooddee..
2. DDeevveellppppmmeenntt ooff aa nneeww GGPPLL''eedd ssiimmuullaattoorr..
The first phat will lead to a better spice3f5 and nothing more than
this, while the second one will bring us a new simulator,
compatible with its father but more expandable and presumably
faster and numerically stronger.
There is another project in ngspice: the development of one or more
frontend to the new simulator. One of the key issues of our project is
to let users design the front end they want, using the widget set and
the language they prefer. For this reason ngspice differs a lot from
spice3f5: in ngspice there is a clear distinction between the front
end and the back end. In ngspice the front end takes care of the
interaction with the user. It is back-end's task to maintain the
object database, to exchange data with the simulator, etc.
There are various improvements we are planning, some follows:
1. TThhee ffrraammeewwoorrkk ((oorr GGrraapphhiicc UUsseerr IInntteerrffaaccee)):: Spice is (and should
continue to be) a command line or a text tool, but this makes very
difficult to design large circuits. To overcome this difficulty, a
schematic entry tool and a waveform viewer tools are needed.
Nevertheless, there are other tools that can be useful: a parts
database, an editor which higlights the syntax, a symbol editor,
etc. Most of these program already exists in the open source world,
so they need only to be integrated in a common EDA environment.
2. DDooccuummeennttaattiioonn:: Commercial simulators have very good manuals with
tutorials, models equations explained, example of use, suggestions,
etc. This line of development has the task of providing the final
spice user with an ordered and comprehensive set of information on
the program and its features. The documentation should be useful
for the student as well as for the circuit professional.
3. IImmpprroovveemmeennttss ttoo tthhee SSppiiccee ccooddee:: This is the hard part. The target
of this direction is to make ngspice a commercial grade simulator.
This means improving it's speed, its numerical strenght, include
the latest models available and some other important features:
+o Numerical Algorithms:
+o More stable algorithms for integration (as Runge-Kutta
Methods (?) ).
+o Better convergence in Operating Point Calculation adding a
modified version of Fixed-Point Homotopy to the Newton-
Raphson algorithm,
+o Devices:
+o Behavioral device: enhance the B device of spice3 to accepts
IF THEN ELSE conditions, and digital keywords like DELAY,
HIGHV, LOWV, etc. to simulate simple digital macromodels.
+o Dynamically Loadable Devices: reduce the memory occupied by
the simulator by using shared object code for devices. Each
device is a .so library that is inserted only if the circuit
contains an element modeled by the device. If we are
simulating CMOS, we do not need BJT or SOI (in most of the
situations).
+o Code Level Modeling: let users write their devices in C and
use them in the simulator.
+o Improving device: include additional parameters to some
devices as HDIF, LDIF, etc.
+o New types of analysis, oriented to circuits syntesis and
optimization:
+o Network analysis: given four nodes, extract z,y,s and the
other double bipole paramters.
+o Monte Carlo analysis: statistical simulation based on device
tolerances.
+o Worst Case analysis: find the worst case of operation of a
given circuit based on device parameters tolerances.
+o Parametric analysis: repeat an analysis when one or more
parameters assumes different values.
+o Faster handling of sparse matrices.
+o Possibility to mesure circuit pameters, like the delay between
two nodes, etc.
+o Whatever else can be judged useful.
11..55.. LLeeggaall iissssuueess
The improved spice3f5 will be relased under the original Berkeley's
lincese. The new simulator will be released as GPL. Make ngspice a GPL
program, allow us to link a lot of good code laying on the net and
obviously contribute to the GPL community.
11..66.. WWhhaatt mmaaiilliinngg lliissttss eexxiisstt ffoorr nnggssppiiccee??
There are three mailing lists dedicated to the ngspice project. Send
an empty message to the following addresses to get information on
subscription. <ngspice-users-help@lists.sourceforge.net>
<ngspice-devel-help@lists.sourceforge.net>
<ngspice-frontends-help@lists.sourceforge.net>
11..77.. AArree tthhee mmaaiilliinngg lliissttss aarrcchhiivveedd aannyywwhheerree??
Yes, the list are archived. Look at the project's web site to access
archives.
11..88.. WWhhaatt nneewwssggrroouuppss eexxiisstt ffoorr nnggssppiiccee??
None. Sorry. None. Sorry.
1.9 Where can I get a copy of NG-Spice?
You can download NG-Spice from: 11..99.. WWhheerree ccaann II ggeett aa ccooppyy ooff nnggssppiiccee??
ftp://ieee.ing.uniroma1.it/pub/ng-spice/distribution/
1.10 Where should I look on the World Wide Web for NG-Spice stuff? You can download ngspice from:
There is a WWW page for NG-Spice. The URL is: <http://sourceforge.net/projects/ngspice>
http://geda.seul.org under the tools section.
2. DEVELOPMENT 11..1100.. WWhheerree sshhoouulldd II llooookk oonn tthhee WWoorrlldd WWiiddee WWeebb ffoorr nnggssppiiccee ssttuuffff??
2.1 What is the current version? Look at the official NG-Spice Web Page
<http://ngspice.sourceforge.net>
0.3 (released on 30/08/1999)
2.2 What are the latest features in the current release? 11..1111.. WWhheerree sshhoouulldd II llooookk oonn tthhee WWoorrlldd WWiiddee WWeebb ffoorr SSppiiccee ddooccuummeennttaa--
ttiioonn??
* New features: 50 Circuits analyzed with SPICE
- Autoconf interface. <http://www.dacafe.com/DACafe/EDATools/EDAbooks/SpiceHandBook/01_TOC.html>
- BSIM 3.2.2 Model.
- PS jfet Model (jfet level 2).
- Temperature and resistance sweeps.
- "spec" command for spectrum analysis.
* Bug fixes: <http://www.dacafe.com/DACafe/EDATools/EDAbooks/SMPS/SMPS.htm>
- Altermod command connected to the parser.
- Some memory leaks closed.
- Spice3f5 fixes available on the net.
2.3 What does it look like ?
22.. DDEEVVEELLOOPPMMEENNTT
22..11.. WWhhaatt iiss tthhee ccuurrrreenntt vveerrssiioonn??
rework-14 (released on 10/12/2001)
22..22.. WWhhaatt aarree tthhee llaatteesstt ffeeaattuurreess iinn tthhee ccuurrrreenntt rreelleeaassee??
New features:
+o New functions for vectors: vecmax (find max element in a vector),
vecmin (find minimum element in a vector), vecd (differentiate a
vector).
+o BSIM 4 and support EKV models.
Bug fixes:
+o Some memory leaks closed.
+o Error reporting more verbose
22..33.. WWhhaatt ddooeess iitt llooookk lliikkee??
This is a command line utility, no screenshots! This is a command line utility, no screenshots!
2.4 Who are the authors of ng-spice ?
22..44.. WWhhoo aarree tthhee aauutthhoorrss ooff nnggssppiiccee??
The development is open to anyone who wish to contribute. The development is open to anyone who wish to contribute.
People who contributed are:
* Daniele Foci <d.foci@ieee.ing.uniroma1.it> People who contributed are (in alphabetical order):
* Paolo Nenzi <pnenzi@ieee.ing.uniroma1.it>
* Arno Peters <A.W.Peters@ieee.org> +o Daniele Foci <dfoci@ieee.ing.uniroma1.it>
* Serban-Mihai Popescu <serbanp@ix.netcom.com>
* Emmanuel Rouat <emmanuel.rouat@wanadoo.fr> +o Paolo Nenzi <pnenzi@ieee.ing.uniroma1.it>
* Michael Widlok <widlok@uci.agh.edu.pl>
+o Arno Peters <A.W.Peters@ieee.org>
This list is surely incomplete (due to open development group), there are
many people who contributed with improvements, pieces of code, bux fixes, +o Serban-Mihai Popescu <serbanp@ix.netcom.com>
etc. If you have contributed and do not appear, write to:
ng-spice@ieee.ing.uniroma1.it +o Emmanuel Rouat <emmanuel.rouat@wanadoo.fr>
+o Michael Widlok <twidlok@uci.agh.edu.pl>
This list is surely incomplete (due to open development group), there
are many people who contributed with improvements, pieces of code, bug
fixes, etc. If you have contributed and do not appear, write to:
<ng-spice@ieee.ing.uniroma1.it>
and ask to be included. and ask to be included.
2.5 How can I report a bug/request for a feature?
Write in the mailing list. 22..55.. HHooww ccaann II rreeppoorrtt aa bbuugg//rreeqquueesstt ffoorr aa ffeeaattuurree??
2.6 How can I join the development? Look at the projects summary page: ngspice summary page
To join the development just code the feature you want to add and send your 22..66.. HHooww ccaann II jjooiinn tthhee ddeevveellooppmmeenntt??
patch in the mailing list. Before you start coding check the latest
development release of NG-Spice from our CVS. It might be that your feature
has already been implemented.
To access the anonymous CVS do the following:
1) Install cvs on your machine (version 1.9.x - 1.10.x are just fine). To join the development just code the feature you want to add and send
2) Set one of the following environment variables: your patch in the mailing list. Before you start coding check the
For bash: latest development release of ngspice from our CVS. It might be that
export CVSROOT=:pserver:anonymous@ieee.ing.uniroma1.it:/var/services/cvsroot your feature has already been implemented.
For csh/tcsh:
setenv CVSROOT :pserver:anonymous@ieee.ing.uniroma1.it:/var/services/cvsroot
3) Login to the cvs server by running:
$> cvs login
The password is 'guest' (without the quotes of course). You will only
have to do this once.
4) Checkout the appropriate files executing the following commands:
$> mkdir somedirectory
$> cd somedirectory
$> cvs co ng-spice
5) Wait for the cvs logout.
3. SOLUTIONS TO COMMON MISCELLANEOUS PROBLEMS 33.. SSOOLLUUTTIIOONNSS TTOO CCOOMMMMOONN MMIISSCCEELLLLAANNEEOOUUSS PPRROOBBLLEEMMSS
3.1 What systems are supported?
33..11.. WWhhaatt ssyysstteemmss aarree ssuuppppoorrtteedd??
This is the updated list: This is the updated list:
Hardware O.S. Compiler Functional? Hardware O.S. Version Compiler Functional?
---------------- ------------------ -------------- ----------- ---------------- ----------------------- -------------- -----------
i386 Linux (RedHat) gcc yes ???? HP-UX 10.10 gcc 2.95.2 yes
i386 Linux (Debian) gcc yes IBM Risc 6000 ??? lcc no
i386 Linux (SuSE) gcc yes i386 Debian GNU/Linux 2.1 gcc 2.7.2 yes
IBM Risc 6000 AiX lcc no i386 Red Hat Linux 5.2 gcc 2.7.2 yes
SUN Solaris 7 gcc yes i386 SuSE Linux 6.0 gcc 2.7.2 yes
SUN Solaris 7 SUN Workshop ? i386 Linux (SuSE) gcc yes
UltraSPARC Solaris 7 gcc yes
UltraSPARC Solaris 7 SUN Workshop ?
3.2 I get errors when I try to compile the source code, why?
MS-Dos, VMS and MacOS are no longer supported.
33..22.. II ggeett eerrrroorrss wwhheenn II ttrryy ttoo ccoommppiillee tthhee ssoouurrccee ccooddee,, wwhhyy??
[not written yet] [not written yet]
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 33..33.. TThhiiss ddooccuummeenntt ddiiddnn''tt aannsswweerr mmyy qquueessttiioonn.. WWhheerree eellssee ccaann II llooookk
the docs. Upgrade to the latest version of NG-Spice, many problems are fixed ffoorr aann aannsswweerr??
in the new versions. If you still can't find an answer, post your question
to the mailing list. Read old messages from the mailing list archive, search the web site
or read the docs. Upgrade to the latest version of ngspice, many
problems are fixed in the new versions. If you still can't find an
answer, post your question to the mailing list.
4. ADMINISTRATIVE INFORMATION AND ACKNOWLEDGEMENTS 44.. AADDMMIINNIISSTTRRAATTIIVVEE IINNFFOORRMMAATTIIOONN AANNDD AACCKKNNOOWWLLEEDDGGEEMMEENNTTSS
4.1 Feedback
Send your comments about this F.A.Q. to <d.foci@ieee.ing.uniroma1.it>. 44..11.. FFeeeeddbbaacckk
Send your comments about NG-Spice to <ng-spice@ieee.ing.uniroma1.it>.
4.2 Formats in which this FAQ is available Send your comments about this F.A.Q. to:
This document is available only in ASCII format in the NG-Spice source Paolo Nenzi <p.nenzi@ieee.org>.
Send your comments about ngspice to:
Paolo Nenzi <p.nenzi@ieee.org>.
44..22.. FFoorrmmaattss iinn wwhhiicchh tthhiiss FFAAQQ iiss aavvaaiillaabbllee
This document is available only in ASCII format in the ngspice source
package. package.
4.3 Authorship and acknowledgements
44..33.. AAuutthhoorrsshhiipp aanndd aacckknnoowwlleeddggeemmeennttss
Parts of the questions and answers are originate from Paolo Nenzi. Parts of the questions and answers are originate from Paolo Nenzi.
4.4 Disclaimer and Copyright
This document is provided as is. The information in it is not warranted to 44..44.. DDiissccllaaiimmeerr aanndd CCooppyyrriigghhtt
be correct: you use it at your own risk.
This document is provided as is. The information in it is not
warranted to be correct: you use it at your own risk.

69
README
View File

@ -1,32 +1,32 @@
README for NGSPICE README for NGSPICE
------------------ ------------------
This long message describes what NG-SPICE may become in the (near ?) This long message describes what NGSPICE may become in the (near ?)
future. I used a question mark because, as you will read, most of the future. I used a question mark because, as you will read, most of the
features of ng-spice are found on Hi-quality commercial products and features of ngspice are found on Hi-quality commercial products and
(which is the true reason) I have no idea on how can be implemented. (which is the true reason) I have no idea on how can be implemented.
** Why resurrecting Berkeley's Spice ? ** Why resurrecting Berkeley's Spice ?
Berkeley's spice can be considered the father of most circuit simulator 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 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 is available in be the fastest or the most reliable, but it's free, it is available in
source code, and most of the electrical simulators inherited it's syntax. source code, and most of the electrical simulators inherited it's syntax.
On the more technical side, spice3f4(5) uses good numerical algorithms On the more technical side, spice3f4(5) uses good numerical algorithms
(commercial implementations have only strengthened them), implements most (commercial implementations have only strengthened them), implements most
of the models for MOSFET submicron designs and has a powerful set of of the models for MOSFET submicron designs and has a powerful set of
analyses. On the more "social" side: it's weel introduced in the analyses. On the more "social" side: it's well introduced in the
academic environment. academic environment.
** What does NG-SPICE mean ? ** What does NGSPICE mean ?
It stands for Next Generation Spice but that's not the official name of It stands for Next Generation Spice but that's not the official name of
the projest. This projects still lacks a name. NG-SPICE is a temporary the projest. This projects still lacks a name. NGSPICE is a temporary
name. name.
** What will NG-SPICE be ? ** What will NGSPICE be ?
Berkeley's Spice lacks in three directions: Berkeley's Spice lacks in three directions:
@ -51,53 +51,56 @@ Berkeley's Spice lacks in three directions:
program and it's features. The documentation should be useful for the program and it's features. The documentation should be useful for the
student as well as for the circuit professional. student as well as for the circuit professional.
* Improvements to the spice code: This is the hard part. Th target of * Improvements to the spice code: This is the hard part. The target of
this direction is to make ng-spice a commercial grade simulator. This this direction is to make ngspice a commercial grade simulator. This
means improving it's speed, it's numerical robustness, include the means improving it's speed, it's numerical robustness, include the
latest models available and some other important features. I will latest models available and some other important features. I will
describe some of them briefly: describe some of them briefly:
- Analyses - - Analyses -
Network analisys: given four nodes, extract z,y,s and the other Network analysis: given four nodes, extract z,y,s and the other
double bipole paramters. double bipole parameters.
Monte Carlo analisys: statistical simulation based on device Monte Carlo analysis: statistical simulation based on device
tolerances. parameters tolerances.
Worst Case analisys: find the worst case of operation of a given Worst Case analysis: find the worst case of operation of a given
circuit based on device tolerances. circuit based on device parameters tolerances.
Parametric analisys: repeat an analysis when one or more parameters Parametric analysis: repeat an analysis when one or more parameters
assumes different values. assumes different values.
- Devices - - Devices -
Behavioral device: enhance the B device of spice3 to accepts IF THEN Behavioral device: enhance the B device of spice3 to accepts IF THEN
ELSE conditions, and digital keywords like DELAY, HIGHV. LOWV, etc to ELSE conditions, and digital keywords like DELAY, HIGHV. LOWV, etc to
simulate simple digital device. simulate simple digital circuits.
Dynamically loading of device: reduce the memory occupied by the Dynamically loading of device: reduce the memory occupied by the
simulator by using shared object code for devices. Each device simulator using shared object code for devices. Each device
is a .so library that is inserted only if the circuit contains is a .so library that is inserted only if the circuit contains
an element modeled by the device. If we are simulating CMOS, an element modeled by the device. If we are simulating CMOS,
we do not need BJT or SOI (in most of the situations). we do not need BJT or SOI (in most of the situations).
Code Level Modeling: Let users write their devices in C and use Code Level Modeling: Let users write their devices in C and use
them in the simulator. I have discovered a couple of standars them in the simulator. I have discovered a couple of standars
for doing this at the Sematech ftp site. for doing this at the Sematech ftp site.
Improving device: Include additional parameters to some devices: Improving device: Include additional parameters to some devices:
HDIF, LDIF, etc. (Serban, can you explain better). HDIF, LDIF, etc.
- Numerical Algs - - Numerical Algs -
Integration: include (if necessary) more stable algorithms for Integration: include (if necessary) more stable algorithms for
integration. Runge-Kutta Methods ? integration. What about Runge-Kutta Methods ?
How if we check LKC at every node as convergence test ?
Linearization: Linearization:
Are there better algorithms for nonlinear equations the the Newton Are there better algorithms for nonlinear equations the the Newton
raphson ? raphson ?
- Sparse Matrix - - Sparse Matrix -
Faster handling of sparse matrices. Faster handling of sparse matrices: new processors offers generous
caches and vectors operations.
- Options - - Options -
@ -136,25 +139,27 @@ MAILING LISTS:
There are three mailing lists dedicated to the development of ngspice. There are three mailing lists dedicated to the development of ngspice.
ng-spice@ieee.ing.uniroma1.it: This list is the list for the users of the ngspice-users@lists.sourceforge.net: This list is the list for the users of the
ng-spice simulator. ngspice simulator.
ng-spice-devel@ieee.ing.uniroma1.it: ng-spice development issues. ngspice-devel@lists.sourceforge.net: ngspice development issues. Developers and
"want to be" developers should
subscribe here.
ng-spice-frontends@ieee.ing.uniroma1.it: issues related to development of ngspice-frontend@list.sourceforge.net: issues related to development of
frontends for ng-spice. frontends for ngspice.
To subscribe the list(s), send a message to: To subscribe the list(s), send a message to:
<ng-spice-subscribe@ieee.ing.uniroma1.it> <ngspice-users-subscribe@lists.sourceforge.net>
<ng-spice-devel-subscribe@ieee.ing.uniroma1.it> <ngspice-devel-subscribe@lists.sourceforge.net>
<ng-spice-frontends-subscribe@ieee.ing.uniroma1.it> <ngspice-frontend-subscribe@lists.sourceforge.net>
WEB SITE: WEB SITE:
-------- --------
This project is hosted on the IEEE Central & South Italy Section Server. This project is hosted on Sourceforge.
The home page is http://ieee.ing.uniroma1.it/ngspice The home page is http://ngspice.sourceforge.net
Manu (emmanuel.rouat@wanadoo.fr) Manu (emmanuel.rouat@wanadoo.fr)
Paolo (p.nenzi@ieee.org) Paolo (p.nenzi@ieee.org)