Simulation Troubleshooting

SPICE convergence errors and how to fix them

Published August 13, 2026  ·  By Britt at CircuitSim  ·  8 min read

SPICE cannot solve a nonlinear circuit in one pass. It guesses a set of node voltages, checks how badly the guess violates Kirchhoff's laws, adjusts, and guesses again. When the adjustments stop getting smaller, the simulator gives up and reports that it failed to converge.

Six circuit conditions account for most convergence failures. Three of them are fixed by adding a single component; the others are a mistyped value, a missing initial condition, and a model with a discontinuity in it. This page covers what the solver is doing, how to read which stage failed, and the order worth trying fixes in. It applies to any SPICE-based tool, including LTspice, PSpice, Multisim, and CircuitSim.

What convergence describes

Resistors are linear. Diodes and transistors are not. A circuit containing both cannot be solved in one pass, so SPICE uses Newton-Raphson iteration: pick a starting point, replace every nonlinear device with a straight-line approximation valid near that point, solve the resulting linear system, and use the answer as the next starting point. Repeat. When two successive answers agree to within the solver's tolerance, the circuit has converged and that answer is the operating point.

Failure means the iteration never settled. Either the successive guesses oscillated between two states, or they ran off toward voltages no real circuit would reach, or the linear system at some intermediate step had no unique solution at all. Every SPICE engine also has fallback strategies when the direct attempt fails, most commonly gmin stepping, which temporarily adds a tiny conductance across every nonlinear junction to make the circuit better behaved, then removes it in stages. Most engines run these by default before reporting, so a convergence error usually means the fallbacks failed too.

Which stage failed

Where it fails What the simulator was doing Most likely cause
Before any output appears Solving the DC operating point, the quiescent state with all capacitors open and all inductors shorted A node with no DC path to ground, or a bistable circuit with no defined starting state
Partway through a transient run Solving one time step, then shrinking the step and retrying A fast edge or a discontinuous model. See time step too small
Immediately, with a matrix error Building the conductance matrix, before iteration starts A structural problem in the netlist. See singular matrix
At one point in a DC sweep Solving the operating point at one sweep value The circuit changes state at that value, often a comparator or a switch flipping

The six causes behind most failures

1. A node with no DC path to ground. The most common cause on this list. Every node needs some resistive route back to the ground reference, even a terrible one. A capacitor is an open circuit at DC, so the far side of a coupling capacitor is floating unless something else defines it. The same applies to the input of an op amp with no DC return path, the gate of a MOSFET, and the base of a transistor fed only through a capacitor. Fix: a 1 MΩ resistor from the floating node to ground. It draws a microamp per volt, which is negligible in most circuits, and it gives the solver a starting point.

2. No ground at all. SPICE measures every voltage against node 0. A schematic with no ground symbol has no reference, so nothing can be solved. Some editors add one implicitly and some do not. Check before assuming.

3. Ideal components in loops. A voltage source across a closed switch, or a loop of inductors with no resistance, describes a circuit the model cannot pin down. Loops of ideal sources usually fail earlier still, as a singular matrix. Real parts have series resistance. Adding a fraction of an ohm in series with a source or a few milliohms of winding resistance to an inductor makes the loop solvable and moves the model closer to the real part.

4. A circuit that is bistable on purpose. Latches, flip-flops, Schmitt triggers, and comparators with positive feedback have two valid resting states. The solver has no way to prefer one, so it can bounce between them forever. Fix: state which one you want with an initial condition on the storage node, or start the simulation from a defined reset pulse rather than from the operating point.

5. Component values many orders of magnitude apart. A 1 GΩ resistor next to a 1 mΩ resistor produces a matrix that is numerically awkward to solve even though the circuit is fine. Values entered in the wrong unit are the usual reason this happens by accident. A capacitor typed as 10 rather than 10 µF is 10 farads, and the simulation will behave accordingly.

6. A model with a hard corner in it. Behavioral sources with an if statement, idealized switches that go from open to closed at exactly one voltage, and piecewise table models all have derivatives that jump. Newton-Raphson needs a slope to follow, and a vertical one sends it somewhere unhelpful. Rounding the corner, by giving a switch a finite transition width or a source a short ramp instead of a step, fixes more of these than any solver setting.

The five-minute checklist

Run these in order before changing any solver setting

  1. Confirm the ground. One ground symbol, connected to the circuit, not floating next to it.
  2. Find the floating nodes. Trace from every node back to ground through resistors and inductors only, treating capacitors as breaks. Anything you cannot reach gets a 1 MΩ resistor to ground.
  3. Check the units on every value. Look for a capacitor in farads, a resistor in gigaohms, and a source amplitude off by a factor of 1,000.
  4. Add series resistance to ideal parts. Sources, switches, and inductors, in that order of likelihood.
  5. Cut the circuit in half. Delete the second stage and run the first alone. Whichever half fails is where the problem lives, and halving repeatedly narrows a large schematic in a handful of runs.

Before rebuilding anything, try deleting the part you added most recently and running again. Convergence failures usually appear the moment a specific component lands on the canvas, and the schematic you had five minutes ago is a useful control.

When to reach for solver settings

Relaxing tolerances, raising the iteration limit, and forcing gmin stepping are all legitimate tools, and they are the last ones to pick up rather than the first. A circuit that only converges at a loosened tolerance is a circuit whose answer you should not fully trust, because the acceptance threshold is now wider than the accuracy you were hoping for. When the checklist above has not helped and you do change a tolerance, change one, note what you changed, and check whether the resulting waveform still makes physical sense.

Skipping the operating point entirely is the exception worth knowing. Transient analysis normally starts from the DC solution, and telling the simulator to begin from zero volts on every node instead sidesteps a whole class of startup failures. Oscillators in particular often need this, because an oscillator has no stable operating point to find. The cost is that the first part of the waveform shows a startup transient that would not exist in a warmed-up circuit.

How this plays out in CircuitSim

CircuitSim runs a SPICE engine in the browser, so the same six causes apply and the same fixes work. Two things about the editor are worth knowing when you are debugging.

The SPICE panel shows the netlist your schematic produced. Open it beside the canvas and read the node numbers. A part you thought was connected shows up on its own node, and a wire that looks joined but is not becomes obvious in a way it never is on the schematic. Netlist generation runs one way, from schematic to netlist, so the panel is a view of what the solver is being handed.

Seven analysis types, and the failure mode differs by type. Interactive, interactive operating point, transient, AC sweep, and DC operating point are on every plan including the free Basic tier. DC sweep and parameter sweep are on Standard and above. If a transient run fails, try the DC operating point on its own first, because a clean operating point rules out half the list above in one run.

A missing model is a different problem than a failing solve. If the part you need is not in the 3,000+ component catalog, the custom component studio accepts SPICE model text pasted from a datasheet, or a KiCad symbol. A model that convergence-fails on arrival is usually one written for a different simulator's syntax, and the fastest check is to build the simplest possible test circuit around it: the model, a source, and a load resistor, nothing else.

Common questions

Does a convergence error mean my circuit is wrong?

Not necessarily, though it often means the schematic is not describing what you intended. A floating node, a missing ground, and a mistyped unit are drafting mistakes, and the circuit you meant to draw may be fine. A bistable circuit that fails to converge, on the other hand, is behaving exactly as designed and needs an initial condition rather than a repair.

Why does the same circuit converge in one simulator and not another?

Engines differ in their default tolerances, their fallback strategies, and the order they try them in. A circuit sitting close to the edge of solvable can land on either side depending on those defaults. The circuit conditions that cause the trouble are the same everywhere, so a schematic hardened against the six causes above tends to run in all of them.

What is gmin stepping?

A fallback the solver tries automatically. It adds a small conductance across every nonlinear junction, which makes the circuit easier to solve, finds a solution, then reduces the added conductance in stages and re-solves each time, using each answer as the next starting guess. When it works you never see it happen. When it fails you get the convergence error.

Is adding a 1 MΩ resistor to ground cheating?

It is standard practice. Every real node has some leakage path to ground through board resistance and device leakage, usually in the gigaohm range, and 1 MΩ is a conservative stand-in. Check that the added current is negligible against the currents you care about, which for most small-signal circuits it will be by several orders of magnitude.

My oscillator will not start. Is that a convergence problem?

Usually not. An ideal oscillator model sits at its unstable operating point forever because nothing perturbs it, and the simulator dutifully reports that state. Start the transient run from zero initial conditions instead of from the operating point, or give one node a small initial voltage to kick it.

Where do I start if the circuit is large?

Cut it in half and run each half, then repeat on whichever half fails. Halving is faster than reading the whole netlist.

Sam and I ran Multisim Live's cloud software at NI before we started Elsewhere Labs, and convergence questions were a standing item on that support queue. If you have worked through this page and a circuit still will not solve, send us the file.

Get started free at circuitsim.com →

More from CircuitSim:  Singular matrix errors · Time step too small · What is SPICE simulation · Custom components · LTspice online

LTspice is a trademark of Analog Devices. PSpice is a trademark of Cadence Design Systems. Multisim is a trademark of National Instruments (Emerson). CircuitSim is not affiliated with any of them.