The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Apr 29th, 2024, 6:10pm
Pages: 1 2 
Send Topic Print
including Monte Carlo models (Read 2841 times)
XY-oriented
Junior Member
**
Offline



Posts: 23

including Monte Carlo models
Feb 20th, 2009, 3:35am
 
Hi,
How difficult it is (in term of time and effort) to alter an existing bsim3v3 model to include some Monte-Carlo-like deviations ?  is there any paper-doc about this topic ?

thanks
Back to top
 
 
View Profile   IP Logged
didac
Senior Member
****
Offline

There's a million
ways to see the
things in life

Posts: 247
manresa,spain
Re: including Monte Carlo models
Reply #1 - Feb 20th, 2009, 8:41am
 
Hi,
My experience was(and I didn't have any previous experience with modifying foundry models) that its about one or two hours for each model that you want to modify, the most difficult part that I found was translating mismatch specs to BSIM parameters(I didn't have a deep understanding of BSIM models at that time) since if foundry provides mismatch data for IDS variation you should translate to a primary BSIM model that doesn't affect other parameters of the model. I more or less followed that reference:

Papathanasiou, K., A designer’s approach to device mismatch: Theory,
modeling,simulation techniques, scripting, applications and examples. Analog Integrated Circuits Signal Processing 2006

and the BSIM3 users manual. One change (my error respect foundry reports when I did simulations with current mirrors was below 1%) respect to that paper is that it uses dependent sources to model mismatch, to avoid increasing netlisting a lot I prefered to use a "average" mismatch model(that is data fitting with Matlab,averaging and obtain the standard equation K/sqrt(WL)+C using a minimum square error fitting) and embed directly into BSIM models parameters ( that is the standard foundry approach I think based on what I see in several design kits).

In the end I ended up with modifications like the following in BSIM models:
vth0=original_term+  dvthp*(K/sqrt(nf*W*L)+cte)
u0=original_term + du0*(Ku0/sqrt(nf*W*L)+cte)

Also you should modify the "PDK structure" to put an specific section like the TT,SS,FF that I called MC so you could put and statistics and mismatch section.

Hope it helps,

PS:sorry for the long post, if you need further information don't hesitate to ask.
Back to top
 
 
View Profile WWW   IP Logged
XY-oriented
Junior Member
**
Offline



Posts: 23

Re: including Monte Carlo models
Reply #2 - Feb 20th, 2009, 8:59am
 
Thanks didac,
your replay is very helpful.
that what I was looking for !
Back to top
 
 
View Profile   IP Logged
hanumantharao
New Member
*
Offline



Posts: 4

Re: including Monte Carlo models
Reply #3 - Mar 23rd, 2009, 12:33am
 
Hi if we open modelfile we can see a function like aguass(0,1,1)
[1]What this function will do
[2]What is the significance of each parameter in that function
[3]Montecarlo considers wafer to wafer variation or die to die variation
Back to top
 
 
View Profile   IP Logged
didac
Senior Member
****
Offline

There's a million
ways to see the
things in life

Posts: 247
manresa,spain
Re: including Monte Carlo models
Reply #4 - Mar 23rd, 2009, 1:57am
 
Hi,
[1] It looks like HSPICE modelcard, right?,take a look at the users manual, that link could help:
http://www.ece.uci.edu/docs/hspice/hspice_2001_2-84.html
[2] same as 1
[3]Montecarlo analysis should consider all the variability of the manufacturing process if its well done by the modelling team, that is not only one wafer it must cover all the cases.
Hope it helps,
Back to top
 
 
View Profile WWW   IP Logged
hanumantharao
New Member
*
Offline



Posts: 4

Re: including Monte Carlo models
Reply #5 - Mar 23rd, 2009, 2:14am
 
[1]In PVT all the transistors in the circuit will be at same corner(like TT or FF or SS or SF or FS)
[2]Suppose if all the transistors are not at the same corner .one transistor is at one corner and the second transistor is at other corner.Then what we called it as it is a mismatch model or monte carlo model
Back to top
 
 
View Profile   IP Logged
didac
Senior Member
****
Offline

There's a million
ways to see the
things in life

Posts: 247
manresa,spain
Re: including Monte Carlo models
Reply #6 - Mar 23rd, 2009, 7:51am
 
Hi,
I've found easier to discuss this things with other people if I could do a couple of definitions (with VLSI guys it works usually), if you know thoso definitions you could skip them:
-------------------
-Inter-die variations:fluctuations in parameters from lot to lot, wafer to wafer and die to die and affect all the devices of the same die simultaneously. These are the variations that are modelled with a corner analysis making the assumption that the device is in one or other extreme of its characteristics. Usually for analog designers it makes more sense to call them "Process variations".

-Intra-die variations: that type of variations causes a non-uniform distribution of the electrical characteristics of the devices and consists of both random and deterministic variations. In other words: when a certain type of device has been manufactured it doesn't behave equal that all the other devices of the same type in the same die. That's what is called in analog domain "mismatch".
-------------------------------------
When you are talking about "Montecarlo Simulations" you are talking about a computational method to generate an appearance of randomness. With a Montecarlo simulation you could simulate Process(inter-die), Mismatch(intra-die) or Process & Mismatch(both together).
So in your [2] you are talking about a mismatch simulation carried by a Montecarlo method.

Regarding [1] be aware that corner analysis could be dangerous in analog design since theres no warranty that it covers all the cases (think about corners like a straight line movement when in reality you have a multidimensional analysis), in fact even digital designers are starting to treat their circuits like statistical ones since with corners they find that they need a big overdesign or directly it doesn't capture the reality due to the increasing variability find in deep submicron technologies(examples that I have in mind are RAZOR ,TEATIME, Timerrtol...).
Hope it helps,
Back to top
 
 
View Profile WWW   IP Logged
hanumantharao
New Member
*
Offline



Posts: 4

Re: including Monte Carlo models
Reply #7 - Mar 30th, 2009, 8:04am
 

Hi what is meant by absolute variation and relative variation
Back to top
 
 
View Profile   IP Logged
hanumantharao
New Member
*
Offline



Posts: 4

Re: including Monte Carlo models
Reply #8 - Apr 9th, 2009, 12:49am
 
Thank you
Back to top
 
 
View Profile   IP Logged
vikas_memory
New Member
*
Offline



Posts: 2

Re: including Monte Carlo models
Reply #9 - Aug 3rd, 2009, 2:18pm
 
http://books.google.com/books?id=3cAuzDM-N6wC&printsec=frontcover
gives a good explanation of the inter and intra dies variations.

Does anybody here know how to run Monte Carlo sims - local variations in Hspice by specifying the global point? I have done the global variation on a 6t SRAM and would want to do a local variation now.
Back to top
 
 
View Profile WWW   IP Logged
raja.cedt
Senior Fellow
******
Offline



Posts: 1516
Germany
Re: including Monte Carlo models
Reply #10 - Aug 4th, 2009, 2:09am
 
hi,
    can any body please explain 1.what is local Monte and global Monte? 2.What's the difference between corner simulations  and  monte simulations? What i feel is monte Work for P    corner works for VT....

Thanks,
Rajasekhar.
                                               
Back to top
 
 
View Profile WWW raja.sekhar86   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: including Monte Carlo models
Reply #11 - Aug 12th, 2009, 1:33pm
 
The term "local" is probably being used to indicate device to device variation (i.e. mismatch), whereas "global" is die to die variation (i.e. process variation).

Monte Carlo allows you to generate a set of models based on statistical parameters, usually representing the process spread and/or mismatch spread of the particular process. For process ("global") variation, for each statistical variable you generate a new value per point in the run; for mismatch ("local") variation, you generate a new value per device in the design. Consequently you are generating a set of points across the process/mismatch distribution (assuming the modeling is done well).

Corners just pick extreme values of the same variables, and typically you get all the extremes at once - these are statistically very unlikely to occur. You can also end up with false corners - corners that will never in practice occur, because you are taking devices in opposite directions, when in fact some of the parameters are correlated. You also can end up missing large regions of the process space.

Typically corners leads to over-design, because you make your design bomb-proof in corners that are never likely to happen. Occasionally you can be unlucky and end up with designs that fail because you're missing out the central regions where devices normally will be. The advantage is that corner simulation is fast, because you don't have many points to simulate.

In some simulators (e.g. spectre) you have the option with Monte Carlo of performing "Latin Hypercube Sampling" (see Wikipedia for an explanation) which reduces the typical number of points needed to get good coverage of the distribution. Some foundries have used a Latin Hypercube sampling approach to generate "corners" which are spread over the process - for example, one I know has 25 "corners" (I put the word in quotation marks, since they're not in the corners of the process) to give a better representation of the process.

Normally you don't statistically vary voltage or temperature, because voltage and temperature are usually hard specification limits - your design has to work at low and high voltage extremes, and same for temperature. So you need to simulate at the extremes for certain.

So to be thorough, you'd use corners for the "VT" part, and monte carlo at each corner for the process/mismatch variation.

Best Regards,

Andrew.
Back to top
 
 
View Profile WWW   IP Logged
cmos.analogvala
Community Member
***
Offline



Posts: 65
India
Re: including Monte Carlo models
Reply #12 - Sep 2nd, 2009, 11:10pm
 
Hey All
A small query on the same line.

I have "protected" MC file from foundry for SPECTRE. In statastical analysis option of ADE, how do I specify global and local variations ?

Thanks a Lot
-CA
Back to top
 
 
View Profile   IP Logged
Andrew Beckett
Senior Fellow
******
Offline

Life, don't talk to
me about Life...

Posts: 1742
Bracknell, UK
Re: including Monte Carlo models
Reply #13 - Sep 3rd, 2009, 4:05am
 
In IC5141, you can use Tools->Monte Carlo (from ADE) and there you can set the variation to be "Process", "Mismatch" or  "Process + Mismatch" (I forget exactly what it says). As I said before "Process" is the same as "Global", and "Mismatch" is the same as "Local".

In IC613 in ADE XL, you would choose Monte Carlo Sampling run mode, and then in the Run options you can choose "Process", "Mismatch" or "All".

Regards,

Andrew.
Back to top
 
 
View Profile WWW   IP Logged
cmos.analogvala
Community Member
***
Offline



Posts: 65
India
Re: including Monte Carlo models
Reply #14 - Sep 4th, 2009, 7:31am
 
Thanks that helped a lot. I go for mismatch as I m interested in local. Now, how to specify local variations in the transistors of the blocks placed far apart ? I mean how to differentiate between the transistors placed close by and far apart ?

-CA
Back to top
 
 
View Profile   IP Logged
Pages: 1 2 
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.