Go to file
rlar 7afb798a6f check for illegal DEVsetup() DEVunsetup() patterns.
Consider the following silent contracts:
1)
 CKTsetup() invocations must be separated by a CKTunsetup() invocation
 But CKTsetup() has an internal flag,
   which will prevent re-invocation of DEVsetup()
 But DEVsetup() will be called during sensitivity analysis,
   bypassing this precaution. It is fatal if this will
   cause another node allocation (CKTmk..()).
   This commit tries to detect such cases.
   (Note: many DEVsetup routines (all ?) have their CKTmk..() invocations
      guarded to avoid reallocation of local nodes,
      see commit f7f454c0a1
        bug fix, fix the guard for device generated internal nodes (via CKTmkVolt())
   )
   FIXME:
     DEVsetup() is seriously obfuscated by these guards.
     If would be far better, if the sensitivity analysis
       wouldn't sidestep into DEVsetup()
     consider a device local variant of the CKTisSetup flag
2)
 DEVunsetup() must delete all, each and every,
   local allocated node in DEVsetup()
 Otherwise CKTmk..() invocations in a following CKTsetup() will
   return duplicate node numbers, effectively shorting device nodes.
 This commit tries to detect incomplete CKTdltNNum() invocations.
3)
  DEVunsetup() must not delete a netlist node.
  This can easily happen in those devices which have optional ports,
    which have code in DEVsetup() which copies node numbers to
    local node variables.
  This commit tries to detect such errors.
2017-04-12 21:32:51 +02:00
contrib unify #ifndef include wrapper 2013-12-31 12:54:32 +01:00
doc remove the ancient nobjthack option to fake 3-terminal bjt's 2016-11-01 11:56:48 +01:00
examples MC_ring.sp, replace variables by vectors in the loop 2017-02-09 22:06:04 +01:00
m4 avoid bison dependency `version >= 2.7' 2016-07-09 20:58:17 +02:00
man cleanup man pages 2014-10-28 20:54:18 +01:00
src check for illegal DEVsetup() DEVunsetup() patterns. 2017-04-12 21:32:51 +02:00
tests bsim4 model update according berkeley release - code change 2017-03-31 14:48:14 +02:00
visualc sharedspice.vcxproj, add 64 bit capability 2016-11-01 11:04:52 +01:00
xgraph remove all .cvsignore files 2012-10-26 18:30:14 +02:00
.gitattributes .gitattributes, do not modify crlf line endings of visual studio proj files 2015-10-16 20:35:07 +02:00
.gitignore avoid bison dependency `version >= 2.7' 2016-07-09 20:58:17 +02:00
ANALYSES ngspice-26: update documentation 2014-01-11 16:24:37 +01:00
AUTHORS ngspice-26: Henrik Forstén 2014-01-11 16:24:39 +01:00
BUGS whitespace 2014-01-11 16:24:34 +01:00
COPYING ngspice-26: update documentation 2014-01-11 16:24:37 +01:00
ChangeLog update ChangeLog from `git log' 2014-01-11 16:25:51 +01:00
DEVICES Update some level and version entries for MOS models 2015-10-08 18:20:16 +02:00
FAQ ngspice-26: update documentation 2014-01-11 16:24:37 +01:00
INSTALL man pages for cmpp ngmakeidx and ngproc2mod 2014-10-28 20:54:12 +01:00
Makefile.am **/Makefile.am, fix "make dist" 2016-10-15 15:06:16 +02:00
NEWS ngspice-26: Henrik Forstén 2014-01-11 16:24:39 +01:00
README ngspice-26: update documentation 2014-01-11 16:24:37 +01:00
README.adms whitespace 2014-01-11 16:24:34 +01:00
README.tcl ngspice-26: update documentation 2014-01-11 16:24:37 +01:00
Stuarts_Poly_Notes ngspice-26: update documentation 2014-01-11 16:24:37 +01:00
autogen.sh adms, polish autogen.sh and configure.ac 2017-03-12 19:34:37 +01:00
compile_min.sh compile_min.sh, add appropriate flags -O2, -s for release build 2016-02-07 17:45:23 +01:00
configure.ac introduce command "check_ifparm" to check consistency of the device IFparm sets 2017-04-09 14:40:51 +02:00
cross-compile-shared.sh cross-compile-shared.sh, fix commit, chmod a+x 2015-12-15 21:51:15 +01:00
cross-compile.sh cross-compile*.sh, mention required debian packages 2015-12-15 20:42:57 +01:00

README

README for NGSPICE
==================

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
standard for simulating circuits.

Cider couples Spice3f5 circuit level simulator to DSIM device simulator
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 modelling support
and simulation of digital components through an embedded event driven
algorithm.

Ngspice is, anyway, much 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
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.


MAILING LISTS:
-------------

 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-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>



WEB SITEs:
--------

This project is hosted on Sourceforge.net.
The home page is http://ngspice.sourceforge.net
The summary page is http://sourceforge.net/projects/ngspice