In this topic:
There are a number of reasons for convergence failure in transient analysis but most have their root in one of the following:
Numerical noise is one of the major causes of non-convergence in transient analysis. Numerical noise is the noise induced as a result of uncertainly in a calculation due to the limited precision of the arithmetic (sometimes referred to as round-off error). Numerical noise is similar in concept to quantization noise that is prevalent in data converters. Numerical noise increases as the time step reduces due to the behaviour of reactive components and can reach levels that exceed the tolerance parameters that determine when convergence has been reached.
SIMetrix offers 8 iteration modes that provide control over the trade-off between numerical noise and simulation run time. The default mode 1 is the fastest while mode 8 more or less eliminates numerical noise albeit with a significant performance penalty.
The iteration mode is set by the CONV option setting:
.OPTIONS CONV=<mode>
Where <mode> is an integer from 0 to 8 as described in the table below.
Mode | Typical numerical | Typical simulation | Advanced | Precision |
0/1 | 1 x | 1x | No | Double/Extended |
2 | ÷ 100 | + 5% | Yes | Double/Extended |
3 | ÷ 1000 | + 10%-25% | No | Extended |
4 | ÷ 10000 | + 10%-30% | Yes | Extended |
5 | ÷ 1e16 | 2x to 8x | No | Extended/Quad |
6 | ÷ 1e18 | 2x to 8x | Yes | Extended/Quad |
7 | ÷ 1e16 | 4x to 10x | No | Quad |
8 | ÷ 1e18 | 4x to 10x | Yes | Quad |
The value in the Typical numerical noise factor column is the typical reduction in numerical noise compared to mode 0/1. For example, for mode 4 the numerical noise is typically reduced by a factor of 10000 - so the noise will typically be 10000 times lower. Be aware that these are typical values and can vary widely between different circuits and operating conditions.
The above simulation run time factors are typical when using 4 cores. The penalty for the quad precision modes is higher with single core operation.
CONV mode 4 is probably the most useful. It is very effective at solving convergence problems with difficult circuits and affects performance only a little - typically slowing down the simulation by about 25%.
Modes 2, 4, 6 and 8 enable advanced iteration employ the advanced iteration algorithm. This uses a variation in the iterative equation that lowers the error terms for most practical circuits. Advanced iteration is mathematically identical to normal iteration and imposes only a marginal performance penalty.
As well as generally having lower numerical noise, advanced iteration has more dependable error detection. In rare situations, normal iteration can converge on a solution that is inaccurate due to round-off error. Usually round-off error causes numerical noise as explained above but in linear circuits (or linear portions of non-linear circuits) round-off error can be static which means the convergence detection algorithm incorrectly detects an inaccurate result. This effect does not occur with advanced iteration. This can mean that on some occasions advanced iteration fails (correctly) when normal iteration succeeds (incorrectly - resulting in possibly undetected errors).
Modes 0, 2, 4, 6 and 8 may be selected through the convergence GUI. See Users Manual / Analysis Modes / Convergence / Convergence Options / Iteration Mode
CONV modes 5 to 8 use Quad precision. Quad precision uses 128-bit values and enjoys a decimal resolution of about 34 digits. No current windows-compatible microprocessor implements quad precision arithmetic in hardware and consequently quad precision calculations are software implemented.
All quad precision modes enjoy very low levels of numerical noise and more or less eliminate this as a source of transient analysis convergence failure. However the performance penalty can be severe. CONV mode 6 for example, will slow down the simulation typically by about 3x although it can be slower.
Quad precision is not often needed to make a circuit using normal tolerances run; there is usually another way to resolve a convergence problem which doesn't impose a performance penalty. However, if one of these setting does fix the problem, it is likely to be a reliable fix, and the increased run time may be satisfactory trade-off.
Quad precision is also useful for diagnosing convergence problems caused by other factors. With the lower precision modes, numerical noise can often mask the true cause of a convergence problem. With quad precision the real cause is more easily seen.
Of the four quad precision modes, mode 6 is likely to the best choice. Mode 6 also makes use of extended precision where possible to improve performance and is consequently faster than mode 8 which uses quad precision exclusively.
Note that the Simkit devices and BSIM4 versions 4.3 and earlier do not support quad precision. Although circuits containing these devices will run in quad precision mode, there will only be a small improvement in convergence.
It should be noted that the calculation precision does not usually affect the simulation accuracy. This is determined by the tolerance settings especially RELTOL. However, using tighter tolerance parameters increases the sensitivity of the simulator to the effects of numerical noise and so can, and often does, lead to convergence failure. So, using a higher precision mode will allow tighter values of the tolerance parameters to be used.
◄ DC Operating Point | DC Sweep ▶ |