The following example measures the delay of a pair of inverters. The input is buffered by an inverter, and the output is loaded by another inverter. The model was prepared according to the scheme described in the previous sections. The first .TRAN analysis statement sweeps from the worst case 3- sigma slow to 3-sigma fast. The second .TRAN does 100 Monte Carlo sweeps.

The Star-Hspice input file can contain the following sections.

The simulation is accelerated by the use of the AUTOSTOP option, which automatically stops the simulation when the .MEASURE statements have achieved their target values.

$ inv.sp sweep mosfet -3 sigma to +3 sigma, then Monte Carlo

.option nopage nomod acct

+ autostop post=2

.tran 20p 1.0n sweep sigma -3 3 .5

.tran 20p 1.0n sweep monte=20

.option post co=132

.param vref=2.5

.meas m_delay trig v(2) val=vref fall=1

+ targ v(out) val=vref fall=1

.meas m_power rms power to=m_delay

.param sigma=0

.global 1

vcc 1 0 5.0

vin in 0 pwl 0,0 0.2n,5

x1 in 2 inv

x2 2 3 inv

x3 3 out inv

x4 out 5 inv

.macro inv in out

mn out in 0 0 nch W=10u L=1u

mp out in 1 1 pch W=10u L=1u

.eom

* overlay of gaussian and algebraic for best case worst case and + monte carlo

* +/- 3 sigma is the maximum value for parameter sweep

.param

+ mult1=1

+ polycd=agauss(0,0.06u,1) xl='polycd-sigma*0.06u'

+ nactcd=agauss(0,0.3u,1) xwn='nactcd+sigma*0.3u'

+ pactcd=agauss(0,0.3u,1) xwp='pactcd+sigma*0.3u'

+ toxcd=agauss(200,10,1) tox='toxcd-sigma*10'

+ vtoncd=agauss(0,0.05v,1) delvton='vtoncd-sigma*0.05'

+ vtopcd=agauss(0,0.05v,1) delvtop='vtopcd+sigma*0.05'

+ rshncd=agauss(50,8,1) rshn='rshncd-sigma*8'

+ rshpcd=agauss(150,20,1) rshp='rshpcd-sigma*20'

* LEVEL=28 example model for high accuracy model

.model nch nmos

+ LEVEL=28

+ lmlt=mult1 wmlt=mult1 wref=22u lref=4.4u

+ xl=xl xw=xwn tox=tox delvto=delvton rsh=rshn

+ ld=0.06u wd=0.2u

+ acm=2 ldif=0 hdif=2.5u

+ rs=0 rd=0 rdc=0 rsc=0

+ js=3e-04 jsw=9e-10

+ cj=3e-04 mj=.5 pb=.8 cjsw=3e-10 mjsw=.3 php=.8 fc=.5

+ capop=4 xqc=.4 meto=0.08u

+ tlev=1 cta=0 ctp=0 tlevc=0 nlev=0

+ trs=1.6e-03 bex=-1.5 tcv=1.4e-03

* dc model

+ x2e=0 x3e=0 x2u1=0 x2ms=0 x2u0=0 x2m=0

+ vfb0=-.5 phi0=0.65 k1=.9 k2=.1 eta0=0

+ muz=500 u00=.075

+ x3ms=15 u1=.02 x3u1=0

+ b1=.28 b2=.22 x33m=0.000000e+00

+ alpha=1.5 vcr=20

+ n0=1.6 wfac=15 wfacu=0.25

+ lvfb=0 lk1=.025 lk2=.05

+ lalpha=5

.model pch pmos

+ LEVEL=28

+ lmlt=mult1 wmlt=mult1 wref=22u lref=4.4u

+ xl=xl xw=xwp tox=tox delvto=delvtop rsh=rshp

+ ld=0.08u wd=0.2u

+ acm=2 ldif=0 hdif=2.5u

+ rs=0 rd=0 rdc=0 rsc=0 rsh=rshp

+ js=3e-04 jsw=9e-10

+ cj=3e-04 mj=.5 pb=.8 cjsw=3e-10 mjsw=.3 php=.8 fc=.5

+ capop=4 xqc=.4 meto=0.08u

+ tlev=1 cta=0 ctp=0 tlevc=0 nlev=0

+ trs=1.6e-03 bex=-1.5 tcv=-1.7e-03

* dc model

+ x2e=0 x3e=0 x2u1=0 x2ms=0 x2u0=0 x2m=5

+ vfb0=-.1 phi0=0.65 k1=.35 k2=0 eta0=0

+ muz=200 u00=.175

+ x3ms=8 u1=0 x3u1=0.0

+ b1=.25 b2=.25 x33m=0.0

+ alpha=0 vcr=20

+ n0=1.3 wfac=12.5 wfacu=.2

+ lvfb=0 lk1=-.05

.end

The plot in Sweep of Skew Parameters from -3 Sigma to +3 Sigma shows the family of transient analysis curves from the transient sweep of the sigma parameter from -3 to +3. Sigma is then algebraically coupled into the skew parameters and the resulting parameters modify the actual NMOS and PMOS models.

You can view the transient family of curves by plotting the .MEASURE output file. The plot in Sweep MOS Inverter, Pair Delay and Power: -3 Sigma to 3 Sigma shows the measured pair delay and the total dissipative power against the parameter SIGMA.

The output of the Monte Carlo analysis is evaluated in this section. The plot in Scatter Plot, XL and TOX is a quality control step that plots TOX against XL (polysilicon critical dimension). The cloud of points was obtained in Avant!'s graphing software by setting XL as the X-axis independent variable and plotting TOX with a symbol frequency of 1. This has the effect of showing the points without any connecting lines. The resulting graph demonstrates that the TOX model parameter is randomly independent of XL.

The next graph (see Scatter Plot of Inverter Pair Delay) is a standard scatter plot of the measured inverter pair delay against the Monte Carlo index number. If a particular result looks interesting, such as if the very smallest delay was obtained in simulation 68 ("monte carlo index = 68"), you can read the output listing file and obtain the actual Monte Carlo parameters associated with that simulation.

*** monte carlo index = 68 ***

MONTE CARLO PARAMETER DEFINITIONS

polycd: xl = -1.6245E-07

nactcd: xwn = 3.4997E-08

pactcd: xwp = 3.6255E-08

toxcd: tox = 191.0

vtoncd: delvton = -2.2821E-02

vtopcd: delvtop = 4.1776E-02

rshncd: rshn = 45.16

rshpcd: rshp = 166.2

m_delay = 1.7946E-10 targ= 3.4746E-10 trig= 1.6799E-10

m_power = 7.7781E-03 from= 0.0000E+00 to= 1.7946E-10

From the preceding listing, you can see that the m_delay value of 1.79e-10 seconds is the fastest pair delay. In addition, the Monte Carlo parameters can be examined.

Plotting against the Monte Carlo index number does not help in centering the design. The first step in centering a design is to determine the most sensitive process variables. We can do this by graphing the various process parameters against the pair delay. Select the pair delay as the X-axis independent variable, and also set the symbol frequency to 1 to obtain the scatter plot. The graph in Sensitivity of Delay with Poly CD (XL) demonstrates the expected sensitivity of output pair delay to channel length variation (polysilicon variation).

Now, the parameter TOX is plotted against pair delay (Sensitivity of Delay with TOX). Note that there is no clear tilt to the scatter plot. This indicates that TOX is a secondary process parameter compared to XL. To explore this in more detail, set the skew parameter XL to a constant and simulate.

The plot in Superimpose Sigma Sweep over Monte Carlo shows the overlay of a 3-sigma worst case corners response and the 100 point Monte Carlo. Notice that the actual (Monte Carlo) distribution for power/delay is very different than the +3 sigma to -3 sigma plot. The worst case was simulated in 0.5 sigma steps. The actual response is closer to `
± `
1.5 sigma instead of `
±`
3 sigma. This produces a predicted delay variation of 100 ps instead of 200 ps. Therefore, the advantage of using Monte Carlo over traditional 3-sigma worst case corners is a 100% improvement in accuracy of simulated-to-actual distribution. This is an example of how the worst-case procedure is overly pessimistic.

Now take the Monte Carlo plot and superimpose the assumed part grades from marketing studies (Speed/Power Yield Estimation). In this case we have used a 250 ps delay and 7.5 mW power dissipation to determine the 4 binning grades. A manual count gives: Bin1 - 13%, Bin2 - 37%, Bin3 - 27%, Bin4 - 23%. If this circuit were representative of the entire chip, we would predict a present yield of 13% for the premium Bin 1 parts, assuming the design and process variations.