# How interpret monte-carlo results

Status
Not open for further replies.

Hi dear all friends,
I designed an 8bit ADC and it works properly in normal conditions (without applying mismatch). Now I'm going to run monte carlo simulation to calculate INL and DNL.
The main part of my ADC is comparator. For testing comparator circuit, I applied a constant voltage as a reference voltage and a ramp as an input voltage to the comparator. Then I used ".measure" command for finding the value of the input voltage when the output of the comparator goes from low to high.
I ran monte calro 20 times and now I have a 20 data, for example Vin=21mV, 22.5mV, 23mV, .....
while the reference voltage was 20mV.
Unfortunately I don't know how I can use these data and interpret them. I have heard that I should calculate average and standard deviation. But really I don't know why and how I should do this.
I would appreciate it if anybody help me in this case!

#### dick_freebird

Statistics are for bean counters.

More interesting is to look at the iterations which are abnormal
and figure out what the circuit is sensitive to. If you run sims
with key device attributes captured you may be able to use
correlation plots. Turning on and off process & mismatch
separately can show you whether it's random or a deterministic
process sensitivity.

It depends on what you are after - understanding and
optimization, or a "pass" (perhaps negotiated w/ the spec).

you know, i just want to be sure that if I use this comparator in the whole ADC and run monte-carlo (MC) simulation for it (which takes about 30 days for 20 iterations), I will definitely have a DNL less than 0.5 LSB. Thus I want to know that how I can be sure about it from the results I have gained before from the comparator MC results. I was told that by calculating average and standard deviation we can get this information, but I don't know how to do this.
could please tell me what the correlation plot is?
you wrote that:
Turning on and off process & mismatch
separately can show you whether it's random or a deterministic
process sensitivity.
but, all we can check with MC is about random offset that can introduce mismatches in the size and threshold voltage of transistors. Also we have systematic offsets which appear as a result of deterministic variations in the fabrication process and can be minimized by some layout techniques like common centroid. so I can't get your point about "random or a deterministic process sensitivity" that you said before!

#### dick_freebird

MC won't tell you a thing about layout effects. The usual
techniques only keep you from adding worse mismatch
than the models predict.

MC tools have two "dimensions", process and mismatch. If
you have an outlier you want to know why it failed so you
can correct the cause. You have two potential causes.
You have to figure out which is the problem.

If you want to criticize your comparator, work back from
DNL (bits) to a rolled-up Vio and see how your data looks
against that.

Points: 2

#### aryajur

SPICE simulators allow monte carlo simulations to be run with 2 degree of parameter variations. The models are written so as to give you a die to die variation which means the variation of a parameter from one chip to the other and a mismatch variation which means the variation between 2 transistors on the same chip. Die to Die variation is applied globally to all devices on the chip. So suppose your threshold voltage is 0.7 and it is set that this variation can range from 0.6 to 0.8 then Monte Carlo will select a value randomly say 0.65 and this would be the value given for the threshold voltage to all transistors on the circuit. Mismatch variation is applied on top of the base values after the die to die variation has been implemented. So suppose the mismatch variation is 10mV between 2 transistors then continuing from above 2 transistor thresholds may end up being 0.64 and 0.65 after both die to die and mismatch variations have been applied.
Once you run Monte Carlo simulations you get measurements of all the parameters and since these measurements give you the expected variations of the parameter for different runs you can calculate the probability of the parameter value being outside its spec. The way that works is this: All parameter variations are assumed to be caused by random phenomenon which cause the distribution of the parameter values to follow the Gaussian probability density function. So if you know the standard deviation of a set of values you can plug the value of the standard deviation in the gaussian function and it will tell you the probability of the parameter value taking a particular value. You can target something like +/- 4 sigma (standard deviations) range which covers the probability > 99.9%. So suppose your sigma for the threshold voltage difference measurement is 3mV then the probability that you may get a difference of +/-12mV is less than 0.1%.
So that is how to use the data. Calculate the standard deviation using the standard formula (sum of squares of the deviations of the reading from the mean divided by the number of readings and then square root of the whole thing) and then find your maximum range by doing +/- 4 sigma to the mean. Note however if your Monte Carlo models do not have process variation parameters set then you must do the mismatch monte carlo and add the sigmas to the worst case corner simulation results.