SPICE Simulation

Article by:
Date Published:
Last Modified:

See the Simulation section on the KiCad Tips And Tricks page for info specifically involving KiCad and ngspice.

1. Elementary SPICE Components

Note: The XXXXXXX syntax in the general form describing elementary SPICE components is to dominate a user chosen alpha-numeric identifier (e.g. RXXXXXXX could stand for R1, RC1 or RMYNAME).

2. Voltage And Current Sources

The current direction convention for voltage sources is that a positive current is when the current is flowing into the positive pin of the voltage source.

3. Voltage And Current Controlled Switches

Two types of switches in SPICE, voltage and current controlled. They are not ideal switches, and are modelled with a finite on and off resistance, as well as finite turn on and off times. However, you can usually set these to the extremes so that they act almost like an ideal switch, in relation to everything else in your circuit.

They are great for seeing what effect a short with have on your circuit (e.g. shorting out one LED in a string of LEDs controlled by a constant-current driver).

SPICE prefix for switches is S.

The general form for a switch is:

Creating a switch in SPICE

The most basic syntax to create a voltage-controlled switch is:

.model VSW SW()

4. Smoke Analysis

Smoke analysis is when the SPICE software performs a simulation and checks that all the components are not exceeding maximum voltages, currents or power dissipation levels (among other things). Only a small number of the available SPICE software packages support smoke analysis, including PSPICE (commercial) and Micro-Cap (now free).

For example, the Micro-Cap implementation checks the following parameters[bib-micro-cap-reference-man-v12]:

  • Maximum voltage

  • Maximum current

  • Power dissipation

  • Breakdowns

  • Junction temperatures

5. ngspice

ngspice main window windows screenshot
Figure 1. Screenshot of the main window of ngspice v34.0 when running on Windows.

Type display to print a list of all currently defined vectors.

Use source to load a netlist file. This is called the input file:

source my-netlist-file.net

Type run to run the simulation --- this will run any control lines specified in the input file. Control lines are commands such as .dc, .ac, .tran and .op:


Use let to create new variables.

AC analysis creates complex vectors.

Use .control to create a control block which can contain executable statements such as run and plot within a circuit netlist file.

6. Micro-Cap

As of 2019-04-07, Spectrum Software closed and released Micro-Cap for free (at version 12)[bib-micro-cap-download-page]. You can download it at http://www.spectrum-soft.com/download/download.shtm.

One of the only free SPICE simulation packages that supports smoke analysis.

7. The Best SPICE Resources Out There

  1. ECircuitCenter ([http://www.ecircuitcenter.com](http://www.ecircuitcenter.com/)) - Top-notch and free resource of SPICE thoery and circuits.

  2. National Instruments SPICE Simulation Fundamentals ([http://zone.ni.com/devzone/cda/tut/p/id/5413#toc3](http://zone.ni.com/devzone/cda/tut/p/id/5413#toc3)) - Helpful, professional resources covering most aspects of SPICE simulation

  3. [Intusoft: Solving SPICE Convergence Problems](http://www.intusoft.com/articles/converg.pdf): Explains the common reasons for no convergence and the many ways to try and fix this.



Geoffrey Hunter

Dude making stuff.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License .

Related Content:


comments powered by Disqus