The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Jul 22nd, 2024, 5:33am
Pages: 1
Send Topic Print
Vary schematic var. using Gaussian dist. in ADE? (Read 3341 times)
mohta
Junior Member
**
Offline



Posts: 13

Vary schematic var. using Gaussian dist. in ADE?
Mar 05th, 2007, 6:21pm
 
I am using Spectre 6.1.1 under Cadence IC5.1.41USR4. To do a Monte Carlo (MC) analysis, I would like to vary a schematic variable according to a Gaussian statistical distribution. How can this be done?

Background for the request:
In the current MC methodology, one has to modify the model file in order to set up statistics blocks for individual parameters mentioned in the model file - this is very cumbersome. Especially in the case of complex Spectre models, it is difficult to go from foundry mismatch information, on say, Vt mismatch or resistance mismatch, to figuring out which model parameter should be varied in order to have a realistic MC simulation. Frankly, I don't even know what all the BSIM3 model parameters mean.

For example, suppose my design is an R-2R DAC. Mismatch in the different resistors in the ladder gives rise to non-linearity errors (INL and DNL). To characterize the effect of resistor matching on yield, I want to define the value of my unit resistor as a design variable. This has mean of 1K and standard deviation of +/- 1% of nominal value. Then I want MC to vary the value of this resistor according to a Gaussian distribution with the above mean and standard deviation and repeat a DC sweep analysis at each MC iteration and just give me those plots. This will tell me the information I want. How can this be accomplished simply without too much hacking in Ocean or the model file? I find the current Spectre/ADE MC methodology really difficult and obtuse to use. Other simulators like GoldenGate have the ability to define variables with distributions within ADE. Spectre should have this ability as well in my view.

I wrote to Cadence support about this issue as well, but their response was that something like Skill/Ocean needs to be used for this purpose. Do any of the members of this forum have an alternative solution?

Thanks a lot!
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: Vary schematic var. using Gaussian dist. in AD
Reply #1 - Mar 5th, 2007, 10:35pm
 
You don't need to use SKILL or OCEAN for this (unless there's something I'm missing).

For process variation it's fairly straightforward.

Create a file defining the distributions for any variables you want:

Code:
statistics {
   process {
     vary resdesvar dist=gauss std=0.1 percent=yes
   }
} 



And then add this to your model files, and define the variable (mydesvar) in ADE and use it on your schematic.

For mismatch variation, you need to ensure your resistors are defined within a subckt, to ensure that each instance is unique. This can be done by creating an include file as above, but like this:

You don't need to use SKILL or OCEAN for this. For process variation it's fairly straightforward.

Create a file defining the distributions for any variables you want:

Code:
statistics {
   mismatch {
     vary resdesvar dist=gauss std=0.1 percent=yes
   }
}
inline subckt myres (plus minus)
parameters numunits=1
myres (plus minus) realres r=numunits*resdesvar
ends myres
 



Then instantiate a resistor (maybe one copied from analogLib, with the CDF modified to change the parameters to include numunits) with a model name of "myres".

Actually (because I'm doing this in a rush this morning), I'm not sure the above is quite right - because if you pass in the number of units, you'd need to adjust how the mismatch works - unless you always only have single unit resistors in the design, with multiple in series.

I'd recommend reading http://www.designers-guide.org/Modeling/montecarlo.pdf too.

Sorry this a bit rushed!

Regards,

Andrew.
Back to top
 
 
View Profile WWW   IP Logged
Pages: 1
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.