Performing Monte Carlo Analysis

Monte Carlo analysis uses a random number generator to create the following types of functions:

Gaussian Parameter Distribution
Uniform Parameter Distribution
Random Limit Parameter Distribution

The number of times the operating point, DC sweep, AC sweep, or transient analysis is performed is determined by the value of the analysis keyword MONTE.

Monte Carlo Setup

To set up a Monte Carlo analysis, use the following Star-Hspice statements:

Analysis Syntax

Select the type of analysis desired, such as operating point, DC sweep, AC sweep, or TRAN sweep.

Operating point:

.DC MONTE=val

DC sweep:

.DC vin 1 5 .25 SWEEP MONTE=val

AC sweep:

.AC dec 10 100 10meg SWEEP MONTE=val

TRAN sweep:

.TRAN 1n 10n SWEEP MONTE=val

The value "val" represents the number of Monte Carlo iterations to be performed. A reasonable number is 30. The statistical significance of 30 iterations is quite high. If the circuit operates correctly for all 30 iterations, there is a 99% probability that over 80% of all possible component values operate correctly. The relative error of a quantity determined through Monte Carlo analysis is proportional to val-1/2.

Monte Carlo Output

Use .MEASURE statements as the most convenient way to summarize the results.

The .PRINT statement generates tabular results and prints all Monte Carlo parameter usage values. If one iteration is out of specification, obtain the component values from the tabular listing. A detailed resimulation of that iteration might help identify the problem.

.GRAPH generates a high-resolution plot for each iteration. In contrast, AvanWaves superimposes all iterations as a single plot and allows you to analyze each iteration individually.

.PARAM Distribution Function Syntax

A .PARAM parameter is assigned to the keywords of Star-Hspice elements and models. A distribution function is assigned to each .PARAM parameter. The distribution function is recalculated for each element or model keyword use of a parameter. This feature allows a parameterized schematic netlist to be used for Monte Carlo analysis with no additional modifications.

The syntax is:

.PARAM xx=UNIF(nominal_val, rel_variation <, multiplier>)

or

.PARAM xx=AUNIF(nominal_val, abs_variation <, multiplier>)

or

.PARAM xx=GAUSS(nominal_val, rel_variation, sigma <,
+ multiplier>)

or

.PARAM xx=AGAUSS(nominal_val, abs_variation, sigma <,
+ multiplier>)

or

.PARAM xx=LIMIT(nominal_val, abs_variation)

where:

 

xx

The parameter whose value is calculated by distribution function

UNIF

Uniform distribution function using relative variation

AUNIF

Uniform distribution function using absolute variation

GAUSS

Gaussian distribution function using relative variation

AGAUSS

Gaussian distribution function using absolute variation

LIMIT

Random limit distribution function using absolute variation,
+/- abs_variation is added to nominal_val based on whether the random outcome of a -1 to 1 distribution is greater or less than 0.

nominal_val

Nominal value for Monte Carlo analysis and default value for all other analyses

abs_variation

The AUNIF and AGAUSS vary the nominal_val by +/- abs_variation

rel_variation

The UNIF and GAUSS vary the nominal_val by
+/- (nominal_val · rel_variation)

sigma

The abs_variation or rel_variation is specified at the sigma level. For example, if sigma=3, then the standard deviation is abs_variation divided by 3.

multiplier

If not specified, the default is 1. The calculation is repeated this many times and the largest deviation is saved. The resulting parameter value might be greater or less than nominal_val. The resulting distribution is bimodal.

 

Figure 13-6: Monte Carlo Distribution

Monte Carlo Parameter Distribution Summary

A new random variable is calculated each time a parameter is used. If no Monte Carlo distribution is specified, then the nominal value is assumed. When a Monte Carlo distribution is specified for only one analysis, the nominal value is used for all other analyses.

You can assign a Monte Carlo distribution to all elements that share a common model. The actual element value will vary by the element distribution. A Monte Carlo distribution also can be assigned to a model keyword, and all elements that share that model use the same keyword value. This allows double element and model distributions to be created.

For example, the MOSFET channel length varies from transistor to transistor by a small amount corresponding to the die distribution. The die distribution is responsible for offset voltages in operational amplifiers and for the tendency of flip-flops to settle into random states. However, all transistors on a given die site will vary by the wafer or fabrication run distribution, which is much larger than the die distribution, but affects all transistors the same. The wafer distribution is assigned to the MOSFET model; it sets the speed and power dissipation characteristics.

Monte Carlo Examples

Gaussian, Uniform, and Limit Functions

Test of monte carlo gaussian, uniform, and limit functions
.options post
.dc monte=60
* setup plots
.model histo plot ymin=80 ymax=120 freq=1
 
.graph model=HISTO aunif_1=v(au1)
.graph model=HISTO aunif_10=v(au10)
.graph model=HISTO agauss_1=v(ag1)
.graph model=HISTO agauss_10=v(ag10)
.graph model=HISTO limit=v(L1)
 
* uniform distribution relative variation +/- .2
.param ru_1=unif(100,.2)
 
Iu1 u1 0 -1
ru1 u1 0 ru_1
 
* absolute uniform distribution absolute variation +/- 20
* single throw and 10 throw maximum
.param rau_1=aunif(100,20)
.param rau_10=aunif(100,20,10)
Iau1 au1 0 -1
rau1 au1 0 rau_1
 
Iau10 au10 0 -1
rau10 au10 0 rau_10
 
* gaussian distribution relative variation +/- .2 at 3 sigma
.param rg_1=gauss(100,.2,3)
 
Ig1 g1 0 -1
rg1 g1 0 rg_1
 
* absolute gaussian distribution absolute variation +/- .2 at 
3 sigma
* single throw and 10 throw maximum
.param rag_1=agauss(100,20,3)
.param rag_10=agauss(100,20,3,10)
 
Iag1 ag1 0 -1
rag1 ag1 0 rag_1
 
Iag10 ag10 0 -1
rag10 ag10 0 rag_10
 
* random limit distribution absolute variation +/- 20
.param RL=limit(100,20)
 
IL1 L1 0 -1
rL1 L1 0 RL
.end
 

 

Figure 13-7: Gaussian Functions

 

Figure 13-8: Uniform Functions

 

Figure 13-9: Limit Functions

Major and Minor Distribution

MOS IC processes have both a major and a minor statistical distribution of manufacturing tolerance parameters. The major distribution is the wafer-to-wafer and run-to-run variation. The minor distribution is the transistor-to-transistor process variation. The major distribution determines electrical yield. The minor distribution is responsible for critical second-order effects, such as amplifier offset voltage and flip-flop preference.

Figure 13-10: Major and Minor Distribution of Manufacturing Variations

The example below is a Monte Carlo analysis of a DC sweep of the supply voltage VDD from 4.5 volts to 5.5 volts. Transistors M1 through M4 form two inverters. The channel lengths for the MOSFETs are set by the nominal value of the parameter LENGTH, which is set to 1u. Since all of the transistors are on the same integrated circuit die, the distribution is given by the parameter LEFF, which is a ± 5% distribution in the variation of the channel lengths at the ± 3-sigma level. Each MOSFET gets an independent random Gaussian value.

The parameter PHOTO controls the difference between the physical gate length and drawn gate length. Because both n-channel and p-channel transistors use the same layer for the gates, the Monte Carlo distribution XPHOTO is set to the local parameter PHOTO.

PHOTO lithography for both NMOS and PMOS devices is controlled by XPHOTO, which is consistent with the physics of manufacturing.

	File: MONDC_A.SP
	.DC VDD 4.5  5.5  .1   SWEEP MONTE=30 
	.PARAM LENGTH=1U  LPHOTO=.1U 
	.PARAM LEFF=GAUSS (LENGTH, .05, 3)
	+ XPHOTO=GAUSS (LPHOTO, .3, 3)
	.PARAM  PHOTO=XPHOTO
	
	M1  1  2  GND GND  NCH  W=10U L=LEFF 
	M2  1  2  VDD VDD  PCH  W=20U L=LEFF
	
	M3  2  3  GND GND  NCH  W=10U L=LEFF 
	M4  2  3  VDD VDD  PCH  W=20U L=LEFF
 
	.MODEL NCH NMOS  LEVEL=2 UO=500 TOX=100 GAMMA=.7 VTO=.8
	+ XL=PHOTO
	.MODEL PCH PMOS  LEVEL=2 UO=250 TOX=100 GAMMA=.5 VTO=-.8
	+ XL=PHOTO
	.INC Model.dat
	.END

RC Time Constant

This simple example demonstrates the uniform distribution for resistance and capacitance and the resulting transient waveforms for 10 different random values.

*FILE: MON1.SP WITH UNIFORM DISTRIBUTION
.OPTION LIST POST=2 
.PARAM RX=UNIF(1,  .5) CX=UNIF(1,  .5)
.TRAN  .1  1  SWEEP MONTE=10
.IC 1  1
R1  1  0   RX
C1  1  0   CX
.END
Figure 13-11: Monte Carlo Analysis of RC Time Constant

Switched Capacitor Filter Design

The capacitors used in switched capacitor filter applications are composed of parallel connections of a basic cell. Use Monte Carlo techniques to estimate the variation in total capacitance. There are two distributions involved in the capacitance calculation:

The minor distribution is the element distribution, and the major distribution is the model distribution.

Figure 13-12: Monte Carlo Distribution

You can approach this problem from either physical or electrical levels. The physical level relies on physical distributions such as oxide thickness and polysilicon linewidth control. The electrical level relies on actual capacitor measurements.

Physical Approach

Assume that the variation in capacitance for adjacent cells is controlled by the local variation of polysilicon, since the oxide thickness control is excellent for small areas on a single wafer.

Next, define a local poly linewidth variation and a global or model level poly linewidth variation.

The local polysilicon linewidth control for a line 10 µ wide, manufactured with process A, is assumed to be ± 0.02 µ for a 1-sigma distribution. The global or model level polysilicon linewidth control is much wider; use 0.1 µ for this example. The global oxide thickness is assumed to be 200 angstroms with a ± 5 angstrom variation at 1 sigma.

The cap element is assumed to be square, with local poly variation in both directions. The cap model has two distributions, the poly linewidth distribution and the oxide thickness distribution. Since the effective length is

Leff = Ldrawn - 2 · DEL

the model poly distribution is half the physical per-side values.

	C1a 1 0 CMOD  W=ELPOLY  L=ELPOLY
	C1b 1 0 CMOD  W=ELPOLY  L=ELPOLY
	C1C 1 0 CMOD  W=ELPOLY  L=ELPOLY
	C1D 1 0 CMOD  W=ELPOLY  L=ELPOLY
	$ 10U POLYWIDTH,0.05U=1SIGMA
	$ CAP MODEL USES 2*MODPOLY  .05u= 1 sigma
	$ 5angstrom oxide thichness AT 1SIGMA
	.PARAM ELPOLY=AGAUSS(10U,0.02U,1)  
	+      MODPOLY=AGAUSS(0,.05U,1)  
	+      POLYCAP=AGAUSS(200e-10,5e-10,1)  
	.MODEL CMOD C THICK=POLYCAP  DEL=MODPOLY
Electrical Approach

The electrical approach assumes no physical interpretation, but requires a local or element distribution and a global or model distribution.

Assume that the capacitors can be matched to ± 1% for the 2-sigma population. The process can maintain a ± 10% variation from run to run for a 2-sigma distribution.

C1a 1 0 CMOD  SCALE=ELCAP
C1b 1 0 CMOD  SCALE=ELCAP
C1C 1 0 CMOD  SCALE=ELCAP
C1D 1 0 CMOD  SCALE=ELCAP
.PARAM  ELCAP=Gauss(1,.01,2) $ 1% at 2 sigma
+ MODCAP=Gauss(.25p,.1,2) $10% at 2 sigma
.MODEL CMOD C CAP=MODCAP
Star-Hspice Manual - Release 2001.2 - June 2001