• 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. Regarding monte carlo simulations

Stats

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

Regarding monte carlo simulations

ag2888
ag2888 over 9 years ago

Hi,

I am trying to run monte carlo simulations for my design and see the following trends in it.

The results vary if i add in a circuit which is not connected to the circuit for which the result is being considered.

The results vary even if i add in dummy devices, resistors etc.

If i manually choose the added devices to be ignored, only then the result remains the same.

Is this expected for the monte carlo sims?  

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    Monte Carlo is very simple. The model files describe a set of parameters (which are used within the models) which have a described statistical variation. For example, they specify the standard deviation for process variation, and also for mismatch variation. The process variation is applied globally to the circuit, whereas mismatch variation is per-instance (actually per-subckt-instance, but that's a minor point).

    When Monte Carlo with mismatch (or all) is run, the dice is rolled for each subckt instance in the design, generating a value for each mismatch parameter, conforming to the distribution specified for that parameter. This is done for each "sample" in the Monte Carlo run.

    Because of this, the precise results for any iteration (i.e. any sample) will be dependent upon the number of instances there are. Similarly it's dependent upon the seed that is used to start the random number generator (in ADE XL this is normally defaulted to 12345 but can be changed). A specific sample has no physical meaning - it's just one sample out of the entire distribution of all of the random parameters. So you should never get too hung up on any specific result. What matters is the overall distribution of a sufficiently large number of samples.

    I don't know how many monte carlo points (or samples) you did in your run, but I suspect it was too small if you're getting that amount of variation in your sigma. There are options in ADE XL to plot the Standard Deviation versus the number of iterations - if you click on the drop-down on the histogram icon when in the yield view, you can choose to Print/Plot versus iteration - and then plot one of the things you're measuring.

    In general using the Low Discrepancy Sequence sampling mode will have better convergence (of sigma) than Random so I'd suggest using that. You can also use one of the Auto Stop methods to run sufficient simulations to ensure that the yield is known to a confidence level (rather than just crossing your fingers).

    So I don't really understand what you are saying about having different results at every hierarchy - but I suspect this is just another case of you reading too much into a specific sample when what matters is the set of samples that makes up the distribution.

    Note that if you are trying to create statistical corners (to allow you to explore changes to the design under a particularly bad sample), then if you're going to change the topology of the circuit, it's advisable to use:

    envSetVal("adexl.monte" "createStatisticalCornerType" 'cyclic "prompt")

    or

    envSetVal("adexl.monte" "createStatisticalCornerType" 'cyclic "promptValues")

    (you can set it to "values" too rather than the default "sequence"). This means that you'll be prompted to create statistical corners using value-based corners rather than sequence-based corners. Sequence-based corners (the default) just sets the corner to run iteration number N in the corner, and this is sensitive to design topology changes. With value-based corners, they record the statistical parameters for each instance and restore that when the corner is re-run, making them less sensitive to design topology changes. There may currently be a performance penalty when using these value-based corners with large circuits (i.e. with large numbers of statistical variables), but that is being worked on.

    Regards,

    Andrew

    • Cancel
    • Vote Up +2 Vote Down
    • Cancel
  • Irenexox
    Irenexox over 5 years ago in reply to Andrew Beckett

    Hi,

    I think i have the similar problem with ag2888. When i check mismatch contribution after 200-point monte carlo simulation, i find the dummy resistors takes the first place in the list but they should not contribute to mismatch of the output.

    Could you give a hint of this, please?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Irenexox

    That doesn't sound like the same issue. The earlier questions were really about the fact that adding in the dummy devices changed the results (which is not surprising). You're talking about mismatch contribution, which is a different level of analysis, and I wouldn't expect a device that is not part of the circuit to be a significant (other than small numerical modelling error) contribution to the variation of an output.

    Rather than continuing this on a 4-year old thread which is unlikely to be similar, this would be best handled via customer support so that we can see your data and set up and try to figure out what's going on.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to Irenexox

    That doesn't sound like the same issue. The earlier questions were really about the fact that adding in the dummy devices changed the results (which is not surprising). You're talking about mismatch contribution, which is a different level of analysis, and I wouldn't expect a device that is not part of the circuit to be a significant (other than small numerical modelling error) contribution to the variation of an output.

    Rather than continuing this on a 4-year old thread which is unlikely to be similar, this would be best handled via customer support so that we can see your data and set up and try to figure out what's going on.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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