Skip to main content

Reliability-Based Design Optimization in SPICE Circuit Analysis


Electrical fire on a power strip

Without reliability-based design optimization, a fire will be the least of your worries


The last thing anyone needs in a mission-critical system is for an important system to operate at different levels than designed. As part of a larger system, variations in the behavior of one subsystem may need to be suppressed and compensated in a downstream portion of a system. This is where reliability-based design optimization becomes important for systems design. Lives could be on the line when a portion of a system fails, and systems designer need to consider all the possible ways they can prevent tragedy.

What is Reliability-Based Design Optimization?

Reliability-based design optimization refers to a class of analysis techniques that are useful in a number of engineering fields. In this set of processes, the mean value of some aspect of the system is taken as the design variables, and the objective function is taken as some output from the system. These design variables can be component values with predefined tolerances, and the objective could be the voltage or current in a specific portion of a circuit. The objective function is then maximized or minimized subject to some predefined probabilistic constraints (such as failure probability or reliability index).

If this sounds abstract, think of reliability-based design optimization like this: your goal is to determine the component values that will produce the desired voltage/current in some portion of a complex circuit in the presence of natural variations in the component values and input signal. Once you have calculated the output voltage/current in the circuit and its variation, you can determine the probability that a component is overstressed. The output voltage/current will have some variation due to variations in component values and the inputs, and this will determine the probability that some portion of the circuit will operate above some rated voltage/current, ultimately leading to failure.

For linear time-invariant DC circuits, you can easily determine analytic expressions that define the output variations as a linear combination of the input variations. Even with circuits driven with periodic or arbitrary signals, you could determine expressions that define this relationship between input and output variances, although it may not be a simple linear combination. Instead, this is more likely to be a complicated function of time or frequency. With more complicated circuits that include feedback and/or nonlinear elements, a numerical technique can help you quickly determine this relationship between input and output variances.

As a first step, it is a good idea to create your circuit, optimize its behavior, and determine appropriate operating limits using smoke analysis. You can then determine the relationship between variances using Monte Carlo analysis.

Monte Carlo as Part of Reliability-Based Design Optimization

There are a number of methods that can be used to determine how the output from a circuit responds to random variations in the input signal or in the component values. Circuit simulators are purely deterministic, meaning they do not work with pre-defined probability distributions on component values and output a probability function describing variations in the output or the behavior of a specific net in a circuit.

Instead, random variations need to be sampled from a user-defined probability distribution. It is most common to define component variations as being normally distributed or uniformly distributed. As most circuit simulators are not symbolic simulators, meaning they do not use algorithms to manipulate mathematical expressions analytically, random variations in component tolerances values can be simulated using random sampling, i.e., as a Monte Carlo simulation.


Monte Carlo grand prix

Take yourself to Monte Carlo in reliability-based design optimization


A Monte Carlo technique in a circuit simulation involves drawing random numbers from the distribution you define for your components using a random number generation technique. Random number generators in computers are semi-deterministic and their samples are often treated as uniformly distributed, which requires converting the uniformly distributed random number to your desired distribution for your components (i.e., the Box-Muller transform for converting uniform random variables to normally random variables).

Defining the distribution for a component’s value requires simply defining the tolerance around some mean value. Different simulators may have different definitions of how tolerances are used to create a probability distribution for your components, so you should check your simulator’s documentation before starting your simulation. Note that, in circuit analyses, variations in component values are treated as independent (i.e., tolerances are uncorrelated), so you won’t need to use a technique like a Cholesky decomposition to generate a batch of correlated random variables.

Using the random draws for your component values, your circuit simulator simply calculates the voltage and current throughout the circuit and shows you a set of curves for voltage/current in the net you specify. This set of curves can then be plotted as a histogram, giving you the data you need to generate a probability distribution for the voltage/current in the net you’ve examined.

Although we’ve been talking about this in terms of variations in your component values, the same process can include variations in the voltage/current input to a circuit, or the power given to active components. If you want to examine how these results change for different input voltages, you can incorporate a DC sweep into your simulation and examine how the output curve changes for different inputs.

Monte Carlo in Linear vs. Nonlinear Circuits

This is an important point to consider as variations in one or more components or operating parameters may not be linearly related to the voltage/current you are examining in your circuit. This is particularly true in nonlinear circuits, as well as time-variant linear or nonlinear circuits. With linear time-invariant circuits, the distribution in the output will have the same shape as the distribution you define for your components, assuming you define component and input signal variations to have the same general distribution, albeit with different specific values for statistical moments.

This is not the case with nonlinear circuits; the distributions will not match. The same can be said for time-variant circuits, although the distribution in the output may be linearly related to the distribution governing variations in the input at some earlier time. Properly analyzing the relationship between component value/input signal variations and the output from the nonlinear circuit you are examining requires some knowledge of probability theory, which goes beyond the scope of this article.


Zener diodes on white background

These Zener diodes are common nonlinear circuit elements


Failure and Reliability

Once you determine the relationship between variations in the output voltage/current in some portion of the circuit, you can interpolate the results from your histogram to determine a probability distribution to determine the probability that your circuit will exceed some operating limits you’ve defined. This can be done at the component level (i.e., by looking at the current and voltage drop across a component) and compared with your results from smoke analysis. If your voltage/current exceeds your desired derating, then you need to change some aspect of the circuit so that the voltage and current do not exceed the operating limits you specify.


The design choices you make can include changing some component values, changing the input voltage (this is where combining Monte Carlo with a DC sweep is an excellent choice), or adding or removing some components from the circuit. The design decision you make is up to you and should be informed by your own experience. After you make your design changes, you’ll need to rerun the Monte Carlo analysis to see how you changes affect the probability of failure. As you make changes to your circuit, you can use parameter optimization to check that your desired voltage/current meet your design goals. Remember, your objective is to decrease your probability of stressing your components and failure.

Using the Results in Other Analyses

Note that this analysis can be brought into the time-domain as part of transient analysis, within a Bode plot or transfer function plot as part of a frequency sweep, or other analyses. You can also examine how the output from the circuit changes when working with an arbitrary source in the time domain. As an example, when working with transistors, you can examine how variations in component parameters will influence when a transistor switches. This allows you to examine how variations in a large number of components influence timing jitter. Finally, you can use a Monte Carlo temperature sweep to examine the temperature of a circuit.

Note that reliability-based design optimization should be distinguished from sensitivity analysis, although the two techniques are similar. In Sensitivity analysis, you understand the worst-case and best-case scenarios of your circuit. Also, you determine which component/s is having the maximum or minimum impact on your output. This helps you decide on the tolerances of each component. Thereby, reducing cost. The Monte Carlo portion of reliability-based design optimization examines many (often thousands) of possible variations in more than one component, and the results are a histogram of possible voltage/current in a specific net.


PCB layout on black background


Final Thoughts

From reading the above, you have probably noticed that reliability-based design optimization is really a combination of smoke analysis, sensitivity analysis, parameter optimization, and finally a calculation of failure probability. This series of analyses ultimately helps you optimize your circuit for reliability, rather than simply designing to meet a specific design goal.

As part of circuit design, reliability-based design optimization requires a circuit simulation package that helps you determine how the behavior of your circuit changes due to component tolerances and variations on the circuit’s input. 

PSpice Designer for OrCAD includes a number of analysis tools that help a designer balance between yield and cost and increase reliability at the same time. Of course, all this is in addition to the PSpice Optimizer which improves productivity when you perform reliability-based design optimization as standard functions and can incorporate thousands of component models. This package gives you a statistical view of the behavior of your circuit as your designs become more complex.

If you’re looking to learn more about how Cadence has the solution for you, talk to us and our team of experts.