• 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. Mismatch simulation in Monte Carlo

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 16402
  • 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

Mismatch simulation in Monte Carlo

MonaG
MonaG over 4 years ago

Hi,

I am investigating Mismatch in the multipliers. I made a very simple testbench with two transistors having identical VGS voltage, one with 1 multiplier and the other with exact same sizing and 64 as multiplier. I then ran the Monte Carlo simulation of 300 samples to compare the std-dev of the current of these two transistor. Based on the Pelgrom equations for mismatch, we expect the std-dev of the N multiplier to be sart(N) times larger than the std-dev of the unit size. However, in my testbench instead of 8X( sqrt(64)), I get 47X larger std-dev in 64-multiplier than 1-multiplier. I also checked with N= 16 and 8 but still doesn't get the expected ratio.

Since the testbench is pretty simple, I was thinking the Monte Carlo simulation for mismatch in Cadence may use some specific approach for choosing samples that causes this discrepancy between results and what is expected. So is there any document or sources that explains how Cadence does the Monte Carlo simulation? The version of Cadence is  IC 6.1.8 . 

Thank you for your help in advance.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    You should take a look at these articles:

    • How is mismatch applied in array/parallel devices in Spectre Monte Carlo?
    • Monte Carlo should take m into account for mismatch
    • How does spectre apply correlation between m-factor devices during Monte Carlo simulation?

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MonaG
    MonaG over 4 years ago in reply to Andrew Beckett

    Thank you Andrew for the reply, So in Monte Carlo for mismatch, by default the devices' mismatch are 100% correlated and all devices have same mismatch parameter but I don't think that should be the case. Some devices should have mismatch and some devices should have different degrees of mismatch which in total must result in standard deviation of sgrt(N) larger than standard deviation of unit transistor.

    So based on this, I set the devices to have uncorrelated mismatch parameters by adding this line:

    envSetVal("adexl.monte" "additionalNetlistOptions" 'string "nullmfactorcorrelation=yes")

    to the .cdsinit

    But I still get the similar std-dev for the multiplier's current. ( Default setting std_dev = 2.156uA and with adding the above line std_dev = 2.157uA)!

    Am I making any mistakes? 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to MonaG

    It may not affect existing maestro views (I didn't check, sorry), but if you bring up the Monte Carlo options form, in the Advanced - Show All Options section (at the bottom), there is a Netlist Options field, and you can type it in there. Best to check whether the option actually made it into the netlist to determine whether it had an effect.

    Note that with certain foundries this doesn't work because their own models stop the correction from happening - in which case you need to take this up with the foundry.

    In general it's best to remember that "mismatch" in Monte Carlo models is really accounting for the remaining random local variation and not systematic variation caused by placement. That said, I think it would be reasonable for an m-factor to be completely uncorrelated, but that isn't the default behaviour (that's why this option was added).

    You might want to speak to customer support about this so that the right advice can be given (for reference, there's a CCR I filed, 2117506, which was questioning the behaviour with a particular foundry that I can't mention for NDA reasons, and the answer was that the foundry were going to take care of it - not sure if that happened or not in the end).

    Regards,

    Andrew.

    • 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