./cad/ng-spice, Next generation circuit simulation program

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 40, Package name: ng-spice-40, Maintainer: dmcmahill

NG-SPICE is the program being developed as the replacement for Berkeley
SPICE. Using the Berkeley code as a starting point, the NG-SPICE team
is working on improving the build system, adding to the models, and
improving the analysis capability.

SPICE is a general-purpose circuit simulation program for nonlinear dc,
nonlinear transient, and linear ac analyses. Circuits may contain resistors,
capacitors, inductors, mutual inductors, independent voltage and current
sources, four types of dependent sources, lossless and lossy transmission
lines (two separate implementations), switches, uniform distributed RC
lines, and the five most common semiconductor devices: diodes, BJTs, JFETs,

NG-SPICE is part of the gEDA project.

Required to run:
[math/fftw] [devel/readline]

Required to build:
[pkgtools/x11-links] [pkgtools/cwrappers]

Master sites:

Filesize: 9210.919 KB

Version history: (Expand)

CVS history: (Expand)

   2023-06-06 11:54:12 by Manuel Bouyer | Files touched by this commit (4) | Package updated
Log message:
Update ng-spice to 40 and move some settings from Makefile to Makefile.common,
in preparation for upcoming ng-spice-shared. OK dmcmahill@

Changes since ng-spice 31:
- lots of bug fixes

Ngspice-40, Mar 31st, 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)

Ngspice-39, Jan 31st, 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.
    + 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 \ 
      by "singular matrix: check node mynode1", if both node names are \ 
    + Preprocessor flag PREDICTOR is enabled
    + Search path for *.osdi lib files extended: current, inputdir, relative
      to executable

Ngspice-38, Oct 30th, 2022
- New features:
    + Add multiplier flag 'm' to behavioral capacitor and inductor.
    + Re-enable dc sweep after transient sim.
    + When plotting the phase, standard now is "Radiant".
    + Add Lundin's geometry correction to the inductance formula.
    + New variable keep#branch to write the current to raw file
      in the old fashion     	1	v1#branch	current
    + Translate PSPICE U instances into equivaalent XSPICE code models.
    + New configure flag --enable-shortcheck to enable a shortened make check
     (only BSIM3 and BSIM4).
    + B source will accept parameters in statistical functions like agauss.
    + WinGUI: Add a button 'Stop' to stop a simulation in intercative
      or control mode.
    + Update to the .probe p (power measurement) and .probe alli commands.
    + Update to XSPICE aswitch and pswitch.
    + Make FROM/TO work in TRIG/TARG and WHEN variants of .meas/meas command.
    + Limits to exp function, allow 0 for log (returning -1e99), used
      when starting iterations.
    + Insert XSPICE bridging devices automatically when an analogue node
      has the same name as an XSPICE event node.
    + New options savecurrents_bsim3, savecurrents_bsim4, savecurrents_mos1.
    + pwlts: a pwl v/i source with time input, smoothing and limiting
    + New functions to the Code Model Library: cm_get_node_name()
      and cm_probe_node().
    + XSPICE: Add bidirectional digital/analog bridge.
    + Search for .spiceinit firstly in a user defined directory named in env
      SPICE_USERINIT_DIR, then in the current directory, then in HOME, then
    + If compatmode is lt, change the pow(x,y) and x**y functions:
      If x < 0, output only if y is integer number, otherwise output 0.
    + Add a limit of 0.999 to bipolar parameters mje, mjc, and mjs.

Ngspice-37, May 22nd, 2022
- New features:
    + Reduce XSPICE memory consumption dramatically
      (> factor of 10).
    + Add source stepping to B source
    + Add 'esave' command to save only specific event nodes.
    + Accept '.temp=125' or .temp='param'.
    + Enable output redirection for meas command.
    + Use total current for diffcap calculation in diode model.
    + Speed output and reduces file size when plotting large
      result vectors (Windows).
    + Enable RKM notation also for inductors (e.g. 1u2 for 1.2u).
    + Add S parameter simulation (command '.sp').
    + Add new flag 'digitop' for the 'plot' command.
    + Add a flag 'alle' (all event nodes) to the plot command.
    + New code model d_pwm: hybrid oscillator (analg control in,
      digital out) with PWM.
    + Make "nogrid" plotting option work.
    + Add current measurement for all nodes of a device,
      e.g. .probe i(Q1) will measure Ic, Ib, Ie (and Is).
    + .probe P(dev): Add measurement of power dissipation in a device.
    + Add new flags -type and -flags to command devhelp.

Ngspice-36, January 1st, 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).

Ngspice-35, August 8th, 2021
- New features:
    + 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.
    + 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.

Ngspice-34, Jan 31st, 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.
    + 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

Ngspice-33, Oct 18th, 2020
- New features:
    + try first storing the temporary file in user directory,
      only then in current directory.
    + Do not print transient initial conditions, if uic is selected.
    + Enable node names with special characters like '/'.
    + Do not print "Units" on a graph, if unknown type or settype \ 
notype is given.
    + Unify batch mode and control mode raw file output.
    + Make PPerror message more verbose.
    + Make the pwl parameter r adjustable by .param.
    + Enable flags xdelta, ydelta for 'gnuplot' command.
    + Enable special characters for cpl model names and parameters.
    + New command 'cutout': Cut out part of each vector of the current tran plot
      and copy into a new plot
    + Compatibility switches KiCad 'ki', and Spectre 'spe'
    + Remove vceo= and icrating= from bjt model cards.
    + The tests of cmaths function will be done only on request.
    + Add alternative temperature model for certain jfet parameters.
    + Add BJT Kull Quasi-Saturation model.
    + Improve self heating tempaerature handling in VDMOS model.
    + Use W/nf for selecting binning model.
    + Add wnflag as an instance parameter.
    + Add PSPICE compatible ISWITCH.
    + Add a limit capability to the code model aswitch.
    + Add a new code model pswitch.
    + Many conde updates not visible to the user, but enhancing stability
      and efficiency

Ngspice-32, Apr 25th, 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
    + 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 \ 
    + 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 stability
      and efficiency
   2021-10-26 12:04:17 by Nia Alarie | Files touched by this commit (63)
Log message:
cad: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes
   2021-10-07 15:20:33 by Nia Alarie | Files touched by this commit (63)
Log message:
cad: Remove SHA1 hashes for distfiles
   2020-01-26 06:26:29 by Roland Illig | Files touched by this commit (189)
Log message:
all: migrate some SourceForge homepage URLs back from https to http


In the above commit, the homepage URLs were migrated from http to https,
assuming that SourceForge would use the same host names for both http and
https connections. This assumption was wrong. Their documentation at
https://sourceforge.net/p/forge/documentation/Custom%20VHOSTs/ states
that the https URLs use the domain sourceforge.io instead.

To make the homepages from the above commit reachable again, pkglint has
been extended to check for reachable homepages. This check is only
enabled when the --network command line option is given.

Each of the homepages that referred to https://$project.sourceforge.net
before was migrated to https://$project.sourceforge.io (27), and if that
was not reachable, to the fallback URL http://$project.sourceforge.net
   2020-01-19 00:36:14 by Roland Illig | Files touched by this commit (3046)
Log message:
all: migrate several HOMEPAGEs to https

pkglint --only "https instead of http" -r -F

With manual adjustments afterwards since pkglint 19.4.4 fixed a few
indentations in unrelated lines.

This mainly affects projects hosted at SourceForce, as well as
freedesktop.org, CTAN and GNU.
   2020-01-14 10:15:42 by Hauke Fath | Files touched by this commit (3)
Log message:
Upgrade cad/ng-spice to v31.

Changes are probably many. From upstream's changelog:

2017-08-25  h_vogt
This ChangeLog is no longer maintained.
Starting with ngspice-26, for code changes
please refer to the git repository at
Especially the 'history' button on the top of the page
will give all the change log information.
   2019-03-20 11:43:17 by Thomas Klausner | Files touched by this commit (1) | Package updated
Log message:
ng-spice: update to 27nb1.

Remove libXp dependency. Not used here.
   2018-03-08 15:11:24 by Makoto Fujiwara | Files touched by this commit (3) | Package updated
Log message:
Updated cad/ng-spice 23 to 27

Ngspice-27, Aug 28th, 2017

- New features:
    + check for correct inductor coefficients
    + add variable 'win_console'
    + --enable-relpath configure flag to set preprocessor flag HAS_RELPATH
    +    sets search path for spinit relativ to current directory
    + The search path for .spiceinit is: current dir, HOME dir, USERPROFILE dir
    + new function stddev to calculate the standard deviation of all elements of \ 
a vector
    + xspice digital n-input x m-output look-up table gate
    + xspice digital model d_lut (digital n-input look-up table gate)
    + add variable $sharedmode (if shared ngspice is running), to be used in scripts
    + enable msys2 for mingw compilation
    + OMP support for bsim3v3.24 model
    + bsim3v3.24: add model parameter lmlt (Channel length scaling)
    + OMP support for BSIM4.5 model
    + update and extension of command 'wrdata'
    + option xmu to set damping in trapezoid integration
    + command 'linearize' will take time data from transient analysis vector if \ 
no circuit
      is loaded
    + two new commands: edisplay and eprvcd
    +     'edisplay' will show a list of all event nodes
    +     'eprvcd' will print all event nodes in vcd format
    + XSPICE 2D and 3D table models
    + add variable 'batchmode' which is set when command line option `-b' is active
    + enable backquote substitution for Visual Studio console apps
    + update how-to-ngspice-vstudio.txt
    + update visualc directory and project files, add XSPICE code model \ 
generation by VS2015
    + allow access to 4 GB memory of 32 bit ngspice on 64 bit Windows, 8 TB for \ 
64 bit ngspice
    + new variable `interactive'
    + xspice, introduce cm_message_printf()
    + add variable `width' to command "print line ..."
    + support msys2
    + favor exponential temperatur equation if all parameters tc1, tc2 and tce \ 
are given for R
    + move libfftw3 sideways out of the ngspice tree
    + remove visual studio 2008 .vcproj files
    + visualc/sharedspice.vcxproj, updated and migrated with visual studio 2015
    + `E..table {expr} {pairs}', `G..', allow an optional `=' after `table'
    + `E..value=', `G..value=', allow `=' being optional
    + introduce TCE, exponential temperature coefficient for R
    + allow `temper' to be recognised when preceded by '='
    + allow cross-compilation, especially for MinGW-w64
    + allow "plot xlog ylog" (equiv to "plot loglog")
    + extend qa test to hisimhv version 2
    + update hisimhv model to version 2.2.0
    + update hisim model to version 2.8.0
    + .control variable "sqrnoise" to deliver noise data in squared \ 
    + noise analysis, deliver results in V/sqrt(Hz) and A/sqrt(Hz)
    + add delvt0 for bsim4 models
    + bug fixes for diode model
    + allow a xspice circuit with exclusively xspice event nodes
    + man pages for cmpp ngmakeidx and ngproc2mod
    + implement `nint()'
    + everywhere: ln to the base e, log to the base e, log10 to the base 10
    + allow an optional '=' in ".func foo() = {expr}"
    + bsim4, update to version 4.8
    + update hisimhv to version 1.2.4
    + cmc quality check for bsim3 model
    + nested indexing for vectors
    + option savecurrents to save current through all devices
    + option interp to plot interpolated raw file data
    + MS VS 2010 project file added for compatibility
    + XSPICE: new callback function cm_get_path

- Bug fixes:
    + many, many ... as always

Ngspice-26, Jan 4th, 2014

- New features:
    + fft command may (optionally) use fftw3 library
    + add nint() rounding function
    + usage of 'temper' in behavioral devices
    + check for soa (safe operating area) in several device models
    + library processing rewritten completely to enhance ngspice
      compatibility (.lib)
    + include file processing rewritten to allow nesting and various
      absolute and relative path names (.inc)
    + asinh, acosh, atanh functions
    + shared ngspice option added: ngspice optionally compiles as
      a shared object or dynamic link library
    + use a hash table to massively speed up parsing the netlist
    + implement a very basic .if/.else block
    + implement a signed power function `pwr' for controlled sources
    + implement multiplier `m' in F, G source
    + apply Area Calculation Method (ACM) to the bsim3v3.3 model
    + implement `tc1', `tc2' instance parameters

- Bug fixes:
    + many, many ... please see
      and check the 'history' button on the upper right.
    + removed memory leaks

Ngspice-25, Jan 4th, 2013

- New features:
    + add temperature coefficients for B source
    + commands "mdump", "mrdump" to dump matrix to file
    + allow `time', `temper', and `hertz' in expressions with behavioral R, L, C
    + Enable ctrl-c to interrupt a simulation also for Windows GUI
    + tests/bsim4: use the standard CMC model qa check
    + implement exit code for command "quit"
    + .nodeset all = value
    + memristor code model in extradev
    + new scalable diode model including tunnel component
    + variable xtrtol may override the XSPICE reduction of trtol
    + XSPICE example: delta-sigma converter
    + XSPICE: new d_source model
    + new option noopac
    + bsim3: make additonal parameters accessible with @mxx[par]
    + enable Mac OS X compilation
    + option reseries = val
    + commands "snsave", "snload"
    + update hisim to version 2.7.0, new qa tests
    + hisimhv update to version 1.2.3, new qa tests
    + allow Ctrl-d to quit
    + jfet model temperature extension, tcv and bex parameter
    + speed up vector handling by hash table for vector address storage and retrieval
    + update PSS code

- Bug fixes:
    + many, many ... please see
    + remove memory leaks
    + update tclspice for MS Windows
    + adms3 removed due to licensing issues

Ngspice-24, Jan 29th, 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 \ 
    + 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 and 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