• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Monte Carlo Gauss Std units?

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 15323
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Monte Carlo Gauss Std units?

sporre
sporre over 16 years ago

In order to apply a Gaussian distribution to a device parameter for Monte Carlo simulations, I have to use a line of code such as the following in the model file:

vary vthnmis_rf dist=gauss std=1/1

 This came right out of a real model file from a TSMC process. Can anyone tell me what the units on std are?  vthnmis is a quantity that is added to vt, and it should be in volts.  Standard deviation can't be in volts, so I am not sure what it is.  I know that I want to set it to 50mV.

Thanks

Kyle

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 16 years ago

    Kyle,

    The standard deviation is in whatever units the parameter vthnmis_rf is in. You need to look in the model files to see where this parameter is defined (to find the mean), and also where it is used. My guess is that it is a normalized value, and is being scaled in an equation elsewhere in the model file.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sporre
    sporre over 16 years ago

    Thanks Andrew.  Your tip was helpful, but I didn't quite figure out how to use that factor to control st dev of vth.  The example I pasted in was actually from another part of the model file and wasn't the best example.  Below are all the lines from the model file that I think factor in to vth for the n device. 

    statistics {

    process {

    vary par1 dist=gauss std=1/3

    // vary par2 dist=gauss std=1/3

    // vary par3 dist=gauss std=1/3

    // vary par4 dist=gauss std=1/3

    // vary par5 dist=gauss std=1/3

    }

    mismatch {

    vary vthnmis dist=gauss std=1/1

    vary dlnmis dist=gauss std=1/1

    vary dwnmis dist=gauss std=1/1

    vary toxnmis dist=gauss std=1/1

    vary vthpmis dist=gauss std=1/1

    vary dlpmis dist=gauss std=1/1

    vary dwpmis dist=gauss std=1/1

    vary toxpmis dist=gauss std=1/1

    }

    }

    In the nch_mc section:

    parameters fac_n=1.00 * 2.4

    parameters a1n=par1

    dvthn=a1n * fac_n * 0.0095

     

    in the model section:

    vth0=0.4365561 + dvthn

    I am using regular nch devices, not the nch_mis devices.  When I run the Monte Carlo, the mean and standard deviation of the Vth of an NMOS device with ground and body connected to ground and the drain and gate disconnected are 490mV and 17mV. A std of 2/3 results in std of 34mV. I still don't see how std=1/3 leads to 17mV.

     Does this make any sense to you?

     Kyle

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 16 years ago

    Kyle,

    It doesn't make that much sense to me - but I suspect there's some aspect that's missing, and unless I wade through a real example (sorry, bit pushed for time at the moment), I probably can't help much more. Are you looking at the vth0 model parameter in the results database, or are you measuring vth some other way? And are you doing enough points?

    BTW, unless you use the  _mis devices you won't get any mismatch variation - this is the way that that foundry does things for some reason.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • sporre
    sporre over 16 years ago

    Andrew,

    Thanks for your tips - I figured it out.  I was making a couple of mistakes.  Your comment led me to look at the model parameter vth0 of a simple unconnected device instead of the operating point Vth. 

    Kyle

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information