What's new in ngspice 42
Dec 28, 2023
- New features:
- New optional matrix solver KLU (select by 'option klu')
- improve error messages (more verbose, user centric)
- Add variable wr_onspace to allow printing the vector name with
- one space delimiter
- Re-write of the code model PWM generator
- Linked list modtab has been enhanced by a hash table
- modtabhash
- Add a code model function cm_cexit(const int exitcode).
- PSP103 model pspnqs103va is now standard
- Add Isotel d_process xspice digital model (enable C models).
- OSDI interface allows small signal noise simulation in Verilog-A
- compact models compiled by current OpenVAF.
- Add series resistance 1e-4 Ohms to diode model, if RS is not given
- Generate seed numbers from a microseconds clock, not a seconds clock
- Add functions ngSpice_LockRealloc and ngSpice_UnlockRealloc
- Add new code model function cm_irreversible().
- Add XSPICE code model d_cosim, a generic adaptor for digital cosimulation.
- Script 'vlnggen' may be used with Verilator and d_cosim to create
- XSPICE code models controlled by HDL code.
- New interpreter commands strstr, strslice, fopen, fread and fclose.
- Recognise *ng_script_with_params
- Add a predefined variable 'skywaterpdk' to speed up circuit
- loading and parsing.
New in ngspice 41 (Sep 9, 2023)
- New features:
- Add support for PSpice DLYLINE
- eprvcd -a] -t timescale] node node ..., new options
- Completely renew XSPICE d_osc code model
- Read Touchstone file for S parameter simulation
- Analog node changes in VCD file output
- Add variable "csnumprec" to allow setting the precision of vectors
- and variables
- option nginfo to enable a status report during simulation (MS Windows GUI)
- Returned status of the "shell" command available as interpreter
- variable "shellstatus"
- New default colors for Linux, macOS plot windows.
- Update to commands setscale and compose
- New function cvector for creating complex vectors
- Add an option FREQ to the E- and G-sources
- Improve error messages: More verbose, better user information
- iplot: new option -w to set width for the window, and -d to set
- starting of the plot
- New dot command .libsave to save a parsed PDK for speeding up
- later usage.
- Speed up parsing of large PDKs (e.g. Skywater)
- Update VBIC device model
- Prepare noise capability of XSPICE code models
- Command 'listing': new extension 'listing r' writes parsed netlist
- without further formatting, ready to be be loaded and run again.
- Bug fixes:
- Several crash bugs (double delete, access NULL pointer etc) removed
- which have occurred mostly due to incomplete or faulty inputs.
- Memory leaks for CIDER removed
New in ngspice 40 (Apr 1, 2023)
- New features:
- VBIC: Add optional parameters for determining the operation region
- VBIC: Add bvbe, bvbc, bvce, bvsub as SOA parameters
- Add inertial delay to all basic digital code models, make it available
- for U devices
- VDMOS default parameters are now similar to IRF540 IRF9540
- Add function atanh to .control section
- Add a scale factor 'a' (atto, 1e-18)
- Bug fixes:
- ngspice-40 is mostly a bug-fix release. In conjunction with KiCad and
- shared ngspice, inappropriate user inputs have led to crashing ngspice.
- bugs no. 331, 619, 620, 624 have been fixed
- 9 crash bugs (double delete, access NULL pointer etc) removed which have
- occurred mostly due to incomplete or faulty inputs.
- Memory leaks removed
New in ngspice 39 (Feb 11, 2023)
- New features:
- OSDI interface integrated to read und simulate with
- OpenVAF-compiled Verilog-A compact models delivers
- access to open CMC models and many others.
- Visual Studio 2022 is required.
- ADMS is declared deprecated.
- Extended support of digital U devices with f_logicexp and f_pindly,
- ngspice now fully simulates 74xx ICs.
- BSIM4 updated to 4.8.2
- Examples for Laplace model x_fer added
- String-valued parameters enabled
- Add --enable-shortcheck as configure option to reduce check time
- Add a function ddt (derivative versus time) to the B-source
- The 8th parameter on a voltage or current source now is 'number of pulses'
- Add a new compatibility mode xs (for XSPICE legacy behavior)
- Add new functions for operators x**y or x^y
- Add a user definable variable enable_noisy_r (for .spiceinit)
- Replace obscure warning "singular matrix: check nodes mymode1 and mynode1"
- by "singular matrix: check node mynode1", if both node names are equal.
- Preprocessor flag PREDICTOR is enabled
- Search path for *.osdi lib files extended: current, inputdir, relative
- to executable
- Bug fixes:
- many bugs fixed and code improvements (see bugs 608 and up)
- making error messages more verbose
- memory leaks removed
New in ngspice 36 (Jan 3, 2022)
- New features:
- Add function 'integ' to control language.
- New dot command .probe
- for current and differential voltage measurements.
- Allow math characters in node names.
- Enable x/y contour plots for 2d Cider using gnuplot.
- Update to bipolar model, incl. IBE and IBC parameters.
- Add garbage collector to cpl code to remove any mem leakage.
- Enable .save within subcircuits.
- New compile scripts for macOS, for Apple clang and Homebrew gcc.
- gcc allows compiling a fully featured ngspice (incl. OpenMP) on MAC.
- Add RKM notation (e.g. 4k7) if compat mode LT.
- Add 'ยต' as special character in netlists.
- Add parameter 'r' to command 'listing' for (runable).
- Fix several issues with CIDER.
- New command 'wrnodev' to print matrix RHS in form of .ic = V(node_xx).
- Transient operating pointadded to gmin and source stepping.
- More SOA parameters on more devices (V, I, T, P).
- Bug fixes:
- many bugs fixed and code improvements (see bugs 557 and up)
- making error messages more verbose
- memory leaks removed
New in ngspice 35 (Aug 8, 2021)
- New features:
- Libtool version info for shared ngspice
- Version info in sharedspice.h.
- Replace double braces {{...}} by {(...)} in netlist (PSLT mode).
- Add plotting of graphics in SVG format.
- Setting variable 'nounits' allows suppressing the unit in a graph.
- Update of macOS configure script.
- In sharedspice API, convert all boolean variables to type integer for C++ compatibility.
- Add geometry scaling to diode device model (level 3).
- In PS mode exp function is limited to exp(14).
- Speed enhancement for using SkyWater PDK under Linux.
- Add option Cshunt which adds a capacitor to each circuit voltage node.
- Diode device model now has a self heating option.
- Allow opening files with names containing ANSI special characters.
- Enable using parameters in .options lines.
- For C and R devices enable value tokens like 4k7 or 1u2 in addition to 4.7k and 1.2u.
- New XSPICE pswitch for internally replacing the vswitch.
- Within a single run, allow multiple PS or SVG plots with different names.
- Don't replace a device model name by a parameter, if both have the same names.
- Analog delay code model 'delay'.
- B source (ASRC) will acknowledge temp and dtemp instance parameters.
- In CIDER printing of either ASCII or binary is supported.
- PSP models now support NMOS and PMOS, update to parameters and examples.
- E and G source TABLE function replaces by a B source pwl.
- Re-enable making the old help system for Linux/Cygwin by --enable-help --enable-oldapps.
- Enable the m parameter in E, G, B, R behavioral source/devices.
- Bug fixes:
- Many bugs fixed and code improvements (see bugs 539 and up)
- Memory leaks removed
New in ngspice 34 (Mar 9, 2021)
- New features:
- Improved VBIC model
- Get the vector type automatically, if db, ph, cph are applied.
- Enable finding 'spinit' if its path contains spaces.
- Increase buffer size for command 'listing' to 4096 bytes.
- Add compatibility modes for EAGLE (ea) and Spectre (spe).
- Add parameter 'plain' to 'plot' command.
- Add variables 'plainplot', 'plainwrite', 'plainlet'
- Add RF bipolar model HICUM 2.4 to the ngspice C sources.
- Add charge formulation for non-linear capacitors.
- Remove outdated code from contrib and unsupported directories.
- When installing ngspice executable, do not install the headers.
- Add support for tc1, tc2, and m for behavioral resistors,
- Which use the B source internally.
- Add supporting E_constant Vconst 0 TABLE {Max(V(DP)-V(GN),0)}=((20,120)).
- Remove the XSPICE limitation of the current source flag "current".
- Remove the XSPICE dependency of the phase parameter for the
- Independent current source.
- Drastically reduce the memory requirements if there is a PDK with
- A lot of binning models (e.g. the SkyWater PDK).
- Update to admst: Enhance the Verilog A compatibility.
- Add most recent PSP102, Mextram504, BSIMBULK, and BSIMCMG models
- To the ngspice adms sources.
- Model checking for BSIM4.5 will only write to file if an excursion
- Is detected (still to be added to the other BSIM models)
- Many code updates not visible to the user, but enhancing stability
- And efficiency
- Bug fixes:
- Many bugs fixed and code improvements (see bugs 523 and up)
- Memory leaks removed
New in ngspice 32 (May 4, 2020)
- New features:
- Add resource info on memory used and available for macOS
- redesign of memory monitoring
- Replace B source pwl by XSPICE PWL Controlled Source that has smooth rounded and stepless differentiable corners.
- Get a variable directly from an input file with i/o redirection
- Make 64 bit compilation the standard
- On Windows VisualStudio compilation we support only VS2019
- Add function 'conj'
- Improved error messages for 'meas' command
- Improved PSPICE compatibility
- VDMOS model now allows electro-thermal simulation
- Optionally (instance flag 'thermal') 2 thermal nodes tj and tcase are added to the device instance
- Enable utf-8 and UNICODE for string handling (maybe switch off by --disable-utf8)
- Vastly redisigned plotting capability: vertical text for labeling y axis, independent color selection for background, grid/text and graphs, independent width selection for grid and graph, access to UNICODE fonts, characters may become ticmarks (variable 'ticchar'), RGB color tables included, variable 'nolegend' switches off the legend
- Add variables 'oscompiled'
- Command 'let' to allow default low and high indices
- Upon calculating the operating point, true gmin stepping added
- Free the internal control structure memory by sending ngSpice_Command(NULL)
- No interrupt handling (SIGINT) in shared ngspice
- Limit the exp function to exp(14)
- Event simulation output data may be selected by command 'setplot'
- Many code updates not directly visible to the user, enhancing stabilityand efficiency
- Bug fixes:
- many bugs fixed and code improvements (see bugs 427 and up)
- memory leaks removed
New in ngspice 31 (Sep 22, 2019)
- New features:
- if a subcircuit is defined more than once, only read the first one and discard the others
- vbic model implementation including self-heating effect
- Enable the file input as additional search path for .include files also for non-Windows OSs
- add scope to decks and subcircuits (not yet fully implemented)
- enable 'res' as valid resistor model identifier
- Add variable 'nostepsizelimit' to relieve step size limit defined by TSTEP of the .tran command
- Windows GUI: make GUI more responsive
- if the comaptibility mode is PS, LTPS or LTPSA, '$' is treated as a valid character, not as
- end-of-line comment delimiter
- allow very short version information with new options -v and -d to 'version' command
- the PSPICE area token for a device instance may be not only a number, but also a parametrized
- token like {tok}
- Windows GUI: New history buffering
- Windows GUI: Added scrolling to input window
- update to hicum version 2.40
- allow " around netnames for .plot and .print commands
- command 'setcs': like command 'set' but case sensitive
- linearized cutout of an original vector by defining the vectors lin-tstart, lin-tstop,
- and lin-tstep before sending the 'linearize' command
- new examples: inverters and ring oscillator using SOI
- option norefvalue' to suppress printing the reference value
- Bug fixes:
- many bugs fixed and code improvements (patches 33 - 64, bug tracker nos. 390,
- 394, 395, 403, 404, 408)
- memory leaks removed
New in ngspice 24 (May 28, 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
- if any error occurs during circuit parsing
- 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
- enable 64 bit compilation in MS Visual Studio
- adms3 flag to compile with (experimental) adms 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
- Filesource' code model
- Bug fixes:
- More on prototypes, type casts, reordering of functions, compiler warnings
- fix a numerical problem in the hisim2 an 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