The Skywater PDK offers ngspice compatible subcircuit transistor models with about 180 submodels due to binning of W and L.
ngspice had not been prepared to handle such an overwhelming number, thus even small circuits (400 transistors) have led to 2 GB of memory consumption.
Triggered by Stefan Schippers from XSCHEM, I have developed a ngspice version that reduces memory consumption by a reasonable amount (factor of 10).
Due to the fact that codes changes had to be done at several places in the ngspice code base, more regression testing will be required before adding this feature to main.
The new code is available in the ngspice git branch reduce-mem-pdk. Please have a look and perform tests with small and especially with large circuits and give feedback (here or in the ngspice discussion forums).
To enable this feature, you will have to add
set ngbehavior=hs
to .spiceinit or spice.rc in your HOME directory.
There is a small "stress test" for the new ngspice version available here with 14942 BSIM4.5 transistors, 48376 capacitors, and 33847 resistors, based on the venerable ISCAS85 circuit c7552_ann.net.
The Skywater PDK offers ngspice compatible subcircuit transistor models with about 180 submodels due to binning of W and L.
ngspice had not been prepared to handle such an overwhelming number, thus even small circuits (400 transistors) have led to 2 GB of memory consumption.
Triggered by Stefan Schippers from XSCHEM, I have developed a ngspice version that reduces memory consumption by a reasonable amount (factor of 10).
Due to the fact that codes changes had to be done at several places in the ngspice code base, more regression testing will be required before adding this feature to main.
The new code is available in the ngspice git branch reduce-mem-pdk. Please have a look and perform tests with small and especially with large circuits and give feedback (here or in the ngspice discussion forums).
To enable this feature, you will have to add
set ngbehavior=hs
to .spiceinit or spice.rc in your HOME directory.Holger