The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Jul 18th, 2024, 3:21am
Pages: 1 2 
Send Topic Print
Question about Mote Carlo mismatch model file (Read 3905 times)
BSIM4
New Member
*
Offline



Posts: 8

Question about Mote Carlo mismatch model file
Oct 20th, 2003, 8:29pm
 
Hi,

I am trying to modify a Spectre model file in order to run Monte Carlo simulation with mismatch. However, I have a problem.

According to the user's guide, I can specify a fixed standard deviation for the mismatch of a parameter. However, in reality mismatch changes with device size. How can I put the size-sensitive coefficient into the model file?

Thanks.
Back to top
 
 
View Profile   IP Logged
Paul
Community Fellow
*****
Offline



Posts: 351
Switzerland
Re: Question about Mote Carlo mismatch model file
Reply #1 - Oct 21st, 2003, 2:38am
 
The workarounds I found to this limitation are
1) using different model files for the different device sizes, or
2) using subcircuits instead of primitives for the devices. In the subcircuit you can compute the mismatch parameters according to the dimensions and then call the model with the right parameter values. This requires creating subcircuit definitions for your devices, so I hope you have some CAD people who can handle this.

Paul
Back to top
 
 
View Profile WWW   IP Logged
BSIM4
New Member
*
Offline



Posts: 8

Re: Question about Mote Carlo mismatch model file
Reply #2 - Oct 21st, 2003, 7:41pm
 
Thanks Paul. I will try it.
Back to top
 
 
View Profile   IP Logged
BSIM4
New Member
*
Offline



Posts: 8

Re: Question about Mote Carlo mismatch model file
Reply #3 - Oct 31st, 2003, 6:03pm
 
Paul,

Thanks for your advice. I tried the subcircuit method, it works fine with one problem:

The multiplicity factor m. m is not accessable in subcircuits. The result is that standard variation of m devices in parallel generates m times of variation rather than sqrt(m).

Any comments?
Back to top
 
 
View Profile   IP Logged
Paul
Community Fellow
*****
Offline



Posts: 351
Switzerland
Re: Question about Mote Carlo mismatch model file
Reply #4 - Nov 3rd, 2003, 8:23am
 
I must admit that I did not face that problem because we were using some customized design kit. Can you give more details on the way you did it exactly and the tools you are using? Are you using your primitive device inside the subcircuit? In that case you should be able to set a parameter on the subcircuit symbol which will be propagated to the primitive symbol. That parameter can be accessed in the subcircuit to compute the sigma value.

The way I see it:
subcircuit (parameters W, L, M)
 calculations for sigma and modified parameters
 primitive device with modified parameter values
end subcircuit

The parameters W,L and M shall be propagated from the subcircuit symbol to the primitive symbol.

Does this help?

Paul
Back to top
 
 
View Profile WWW   IP Logged
BSIM4
New Member
*
Offline



Posts: 8

Re: Question about Mote Carlo mismatch model file
Reply #5 - Nov 11th, 2003, 11:34am
 
Paul,

Thank you very much for your help. I am using Spectre and modifying a TSMC Sige BiCMOS design kit.

Now I can do Monte Carlo simulation on most devices. However, It seems that there is an ultimate barrier:

The Monte Carlo simulation will fail if model binning is used. In my case, MOS devices are modeled in many bins.

I have no clue on how to work around this problem.
Back to top
 
 
View Profile   IP Logged
Mighty Mouse
Community Member
***
Offline

Here I come to save
the day!

Posts: 75
Fantasyland
Re: Question about Monte Carlo mismatch model file
Reply #6 - Nov 11th, 2003, 9:13pm
 
I'm not aware of any such limitation. Can you tell us why you think that is true?

Spectre also provides a non-Monte Carlo based mismatch analysis. Have you tried it?

- MM -
Back to top
 
 
View Profile   IP Logged
BSIM4
New Member
*
Offline



Posts: 8

Re: Question about Mote Carlo mismatch model file
Reply #7 - Nov 12th, 2003, 4:20pm
 
The problem was:

When I used monte carlo simulation to simulate CMOS devices in sub-circuits which instanciate a MOS device with model binning, the first run is fine. But the second run fails with a message citing "segmentation fault".

It is fine if I do not use model binning.
Back to top
 
 
View Profile   IP Logged
Mighty Mouse
Community Member
***
Offline

Here I come to save
the day!

Posts: 75
Fantasyland
Re: Question about Monte Carlo mismatch model file
Reply #8 - Nov 12th, 2003, 10:20pm
 
Any segmentation fault implies a bug. You should report it to Cadence and have them fix it.

- MM -
Back to top
 
 
View Profile   IP Logged
Paul
Community Fellow
*****
Offline



Posts: 351
Switzerland
Re: Question about Monte Carlo mismatch model file
Reply #9 - Nov 13th, 2003, 12:10am
 
> Spectre also provides a non-Monte Carlo based mismatch analysis. Have you tried it?

Mighty Mouse,

I am not aware of this analysis. I am mostly using ELDO, but I would be interested in this Spectre feature. What Analog Environment menu can I find it in?

For the binning problem, I don't have any solution, I used this with non-binned models (older technology). I agree that you should try to get support from Cadence for this bug. BTW, there is a third possibility I didn't mention in my first answers. If you have an EKV model (instead of BSIM), this model contains the mismatch parameters in the model, so there's no need to go the subcircuit way... Unfortunately, EKV doesn't seem to become an foundry standard.

Paul
Back to top
 
 
View Profile WWW   IP Logged
BSIM4
New Member
*
Offline



Posts: 8

Re: Question about Mote Carlo mismatch model file
Reply #10 - Nov 14th, 2003, 2:30pm
 
Paul and Mighty Mouse,

Thank you very much for your help.
Back to top
 
 
View Profile   IP Logged
EVI
New Member
*
Offline



Posts: 5

Re: Question about Mote Carlo mismatch model file
Reply #11 - Dec 1st, 2003, 7:26am
 
You have to place the expressions into every model section of your binned models. Here is an example of how to do this with binned modls:

parameters vth0mis_n=0.0
parameters vth0mis_p=0.0
parameters u0mis_n=0.0
parameters u0mis_p=0.0

statistics{
 process{
   vary vth0mis_n dist=gauss std=0
   vary vth0mis_p dist=gauss std=0
   vary u0mis_n dist=gauss std=0
   vary u0mis_p dist=gauss std=0
 }
 mismatch{
   vary vth0mis_n dist=gauss std=4e-3
   vary vth0mis_p dist=gauss std=5e-3
   vary u0mis_n dist=gauss std=0.4e-2
   vary u0mis_p dist=gauss std=0.6e-2
 }
}

inline subckt nmos (d g s b)
        parameters w=1u l=1u wd=0.6e-6 ws=0.6e-6 ad=wd*w as=ws*w pd=(2*wd) + (2*w) ps=(2*ws) + (2*w)
        nmos (d g s b) nmos w=w l=l ad=ad as=as pd=pd ps=ps


model nmos bsim3v3  {
    1: type=n minr=.... lmin=.... lmax=.... wmin=..... wmax=.....  
+ ............    vth0=0.5 + dvthn + vth0mis_n/sqrt(w*l*1e12)    ..............    
+ ......         u0=0.04*(1+u0mis_n/sqrt(w*l*1e12))   ......................

   2:    // same way

}  

Eugene
Back to top
 
 
View Profile   IP Logged
EVI
New Member
*
Offline



Posts: 5

Re: Question about Mote Carlo mismatch model file
Reply #12 - Dec 1st, 2003, 11:51am
 
Just a comment about the efect of multiplier on Monte-Carlo sim results. You cannot pass the multplier down to the subcircuit in Spectre (I'm not sure about spice), Spectre doesn't allow you to do that. But this is not a problem for Monte-Carlo simulations because the laws of statistics will take care of this - you will have m devices connected in parallel, each device producing some drain current statistical variation dI, so the total variation (standard deviation) will be sqrt(m)*dI, not m*dI.

Eugene.
Back to top
 
 
View Profile   IP Logged
uncle_ezra
Community Member
***
Offline



Posts: 90

Re: Question about Mote Carlo mismatch model file
Reply #13 - May 11th, 2005, 7:56pm
 
[quote author=EVI  link=1066706959/0#11 date=1070292390]

inline subckt nmos (d g s b)
        parameters w=1u l=1u wd=0.6e-6 ws=0.6e-6 ad=wd*w as=ws*w pd=(2*wd) + (2*w) ps=(2*ws) + (2*w)
        nmos (d g s b) nmos w=w l=l ad=ad as=as pd=pd ps=ps

[/quote]

Can you explain the above line is doing? Do you include only once or you need for every MOS
Back to top
 
 
View Profile   IP Logged
Ken Kundert
Global Moderator
*****
Offline



Posts: 2386
Silicon Valley
Re: Question about Mote Carlo mismatch model file
Reply #14 - May 11th, 2005, 9:48pm
 
First of all, I believe that subcircuit definition is incorrect. I don't think you can have a subcircuit name and a model name both being the same name.

However, what this does is define a parameterized subcircuit nmos that contains a single nmos transistor. The subcircuit is used simply to customize the parameters taken by the nmos transistor. In particular, it is adding two new parameters, wd and ws.

The 'inline' designator tells Spectre not to add an additional level of hierarchy for the subcircuit.

-Ken
Back to top
 
 
View Profile WWW   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.