ngspice 16 review

by on

Ngspice is both the name of a development project and the name of the developed software (hmm, strange isnt'it ?). The ngspice pro

License: BSD License
File size: 0K
Developer: Paolo Nenzi
0 stars award from

Ngspice is both the name of a development project and the name of the developed software (hmm, strange isnt'it ?).

The ngspice project aims to build an open source GPLed mixed-mode/mixed-level circuit simulator. This means that the circuit simulator has to be written nearly from scratch, which is a complex and time consuming task.

The project first step (and not a small one) has been to get a freely available (but not GPLed) circuit simulator, spice 3f5 and studied its code in the hope that we could use it as a base for the real ngspice (the GPLed one).

While it is not possible, at the time this page is written, to base our code on spice 3f5, because of a conflict between its license and the GPL, we are trying to correct its bugs and make some improvements, providing our results to the community.

This process goes in parallel with the task of writing the new simulator. We hope that Berkeley's people will change spice's license releasing it under GPL or under the new version of the BSD which has the incompatibility removed. This will surely speed up the coming of the real ngspice.

Here are some key features of "ngspice":
Better convergence: new algorithms for Operating Point analysis. Modified Fixed Point homotopy is a good candidate.
Dynamically Loadable Devices: In the original spice code all devices' models have to be statically linked in the simulator executable. This new approach will reduce the memory needed by the simulator code and improve it's modularity. A device interface that allows dynamic loading has not yet defined. Since ng-spice-rework-10 all devices are shared libraries, but they must still be linked at compile time. The next step is to make devices behave as "plugins".
Implementation of new analyses: ngspice should become a powerful synthesis tool, so 2-ports networks analyses are a must and optimization features must be taken into account.
Mixed Mode / Mixed Level simulation: include into ng-spice the capabilities to simulate analog and digital systems and include numerical devices into its netlists. CIDER device simulator (always from Berkeley's CAD group) is the candidate for the Mixed Level part.
Input/output enhancements: most spice users have requested improvements in the I/O part of spice, mostly compatibility issues with existing commercial simulators.

What's New in This Release:
Bug fixing: most of the bugs that affected rework-15 have been fixed, 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 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.

ngspice 16 keywords