Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Questions using Monte Carlo with Ocean

235 views
Skip to first unread message

NigelD

unread,
Jun 19, 2008, 9:19:37 AM6/19/08
to
Hi,

I have a couple questions in trying to do Monte Carlo analysis:

To begin I'm using IC 5.10.41, and MMSIM 6.1

1. How does one get the entire voltage waveform from a transient
analysis for *a particular monte carlo iteration*? I've tried:

value(VT(<netname here>) <iteration number here>) - this doesn't work
and gives me the value at one time across all MC iterations.
value(value(VT(<netname here>) ) <iteration number here>) - also
doesn't work and results in an error

2. I'm a bit confused about how the "Mismatch" analysis works. My
experience is that with the "Mismatch Only" option, all devices get
uniquely assigned parameters values *once at the beginning* and these
remain the same across all Monte Carlo iterations. This seems rather
strange to me. This means that if I want to analyze mismatch for a
simple inverter, I'd have to have N inverters all on the same
schematic and only do 1 MC iteration. Is it not possible to do 1
inverter on the schematic and N iterations to satisfy this? If so, how
do I achieve this?

Thanks!
Nigel.

Andrew Beckett

unread,
Jun 19, 2008, 1:22:22 PM6/19/08
to
Nigel,

Answers interspersed:

NigelD wrote, on 06/19/08 14:19:


> Hi,
>
> I have a couple questions in trying to do Monte Carlo analysis:
>
> To begin I'm using IC 5.10.41, and MMSIM 6.1
>
> 1. How does one get the entire voltage waveform from a transient
> analysis for *a particular monte carlo iteration*? I've tried:
>
> value(VT(<netname here>) <iteration number here>) - this doesn't work
> and gives me the value at one time across all MC iterations.
> value(value(VT(<netname here>) ) <iteration number here>) - also
> doesn't work and results in an error

You need to use:

value(VT("/myOut") 'iteration <iterationNumberHere>)

>
> 2. I'm a bit confused about how the "Mismatch" analysis works. My
> experience is that with the "Mismatch Only" option, all devices get
> uniquely assigned parameters values *once at the beginning* and these
> remain the same across all Monte Carlo iterations. This seems rather
> strange to me. This means that if I want to analyze mismatch for a
> simple inverter, I'd have to have N inverters all on the same
> schematic and only do 1 MC iteration. Is it not possible to do 1
> inverter on the schematic and N iterations to satisfy this? If so, how
> do I achieve this?
>
> Thanks!
> Nigel.

No, that's not what happens. Not sure why you think it is? You might want to
take a look at:

http://www.designers-guide.org/Modeling/montecarlo.pdf

For example, if I use this netlist:

// monte example
parameters rval=948 mytemp=27

//opts options temp=mytemp

statistics {
process {
vary rval dist=gauss std=53
vary mytemp dist=unif N=50
}
mismatch {
vary rval dist=gauss std=53
}
}

inline subckt myres (a b)
myres (a b) resistor r=rval tc1=0.1
ends myres

subckt block (2 1)
r1 (2 1) myres
r2 (1 0) myres
//r1 (2 1) resistor r=rval
//r2 (1 0) resistor r=rval
ends block

b1 (2 1) block
//r2 (1 0) resistor r=948
v1 (2 0) vsource dc=2.4

mc montecarlo donominal=no variations=mismatch numruns=200 \
scalarfile="mcdata" paramfile="mcparam" sampling=lhs {
dcOp dc
element info what=inst where=rawfile
export midval=oceanEval("v(\"1\" ?result 'dcOp)")
export r1val=oceanEval("pv(\"b1.r1\" \"r\" ?result 'instance)")
export r2val=oceanEval("pv(\"b1.r2\" \"r\" ?result 'instance)")
}

I get in the mcdata file:

1.19905 966.209 964.679
1.23603 897.304 952.852
1.21993 990.531 1023.99
1.18879 1041.51 1022.23
1.20323 939.099 944.164
1.21473 904.81 927.304
1.22939 921.2 967.454
1.24467 885.973 954.484
1.17017 980.134 932.593
1.22026 905.35 936.439
1.1637 865.762 814.918
1.21057 944.167 960.943


etc. So you can see the resistor values are changing between iterations, and
between the two resistors. I'm only doing mismatch here.

Regards,

Andrew.

NigelD

unread,
Jun 19, 2008, 5:09:10 PM6/19/08
to
On Jun 19, 1:22 pm, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:

Thanks!

NigelD

unread,
Jul 9, 2008, 1:43:10 PM7/9/08
to
On Jun 19, 1:22 pm, Andrew Beckett <andr...@DcEaLdEeTnEcTe.HcIoSm>
wrote:
> Nigel,
>
> Answers interspersed:
>
> NigelDwrote, on 06/19/08 14:19:

Hi Andrew,

I still have the same issues with Mismatch analysis in Monte Carlo -
when I look at my mcdata file when doing "Mismatch Only", I see only
one column (for my output variable) and all the values in that column
are identical. So it's obvious that the way I'm doing it, mismatch is
not being applied. I've verified that there is indeed a mismatch
section within the statistics section of the models. All the
transistor models are inline subcircuits, just as the example in the
document you linked to. Unfortunately I cannot post anything from the
process file due to an NDA, but are there other ways of debugging
this?

Thanks,
Nigel.

0 new messages