SPICE Convergence Problems

When simulations of larger networks were tried, It was next to impossible to get SPICE to converge. Several different versions of SPICE were tried, apart from ICAP; MicroSim's PSPICE and Berkeley SPICE under Unix, versions 2 and 3. All the various suggestions provided by the ICAP help files [6] were tried, including tweaking simulation parameters, presetting node voltages, and so on. The problem seemed unsolvable.

When simulating circuits with SPICE, there can be convergence problems if there are two or more valid solutions to the node voltages or currents. For example, a Schmitt trigger with an intermediate input voltage could be in it's positive state or in it's negative state. SPICE has no way of determining which, and the simulation doesn't converge.

A resistive fuse also acts somewhat like a Schmitt trigger. Consider the circuit shown in Figure 5.5. The current through the fuse as a function of input voltage is shown in Figure 5.6. If we start with the input voltage zero, and then gradually increase it, the fuse will continue to conduct until the voltage across it gets to the threshold voltage. Because of the resistor divider, this will be when the input voltage reaches 2V. If the resistive fuse is no longer conducting, so that the current through the system is zero, then the full input voltage will now fall across the resistive fuse. This means that the fuse will not start to conduct again until the input voltage falls to just 1V. There is a region of the transfer function where the operation depends on previous input signals. Therefore, this circuit is likely to lead to convergence problems in some cases.

Figure 5.5: Resistive Fuse Circuit with two stable solutions.
\begin{figure}\par
\centerline{\psfig{figure=fig/hys_schem.eps,width=5cm,angle=-90}}
\par\end{figure}

Figure 5.6: Transfer function of Resistive Fuse Circuit.
\begin{figure}\par
\centerline{\psfig{figure=fig/hys_trans.eps,width=6cm,angle=-90}}
\par\end{figure}

A resistive fuse network has circuits like this at every link. Furthermore, when one resistive fuse trips, it affects the voltages at many other pixels, and may cause other resistive fuses to trip, or to resume conduction. This vast network of feedback means that a large network of resistive fuses is a pathological case in SPICE simulation. The standard method of solving this problem is to set the nodes to some initial voltage that seems reasonable. However, I can only find a stable solution to my network by simulation. Furthermore, if I did have one stable solution, it would hide the other stable solutions, and I might not have an accurate impression of the performance of the circuit.

Matthew Exon 2004-05-23