• 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 Variation in Hierarchical Vs Flat Netlist

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 14696
  • 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 Variation in Hierarchical Vs Flat Netlist

jp2o
jp2o over 6 years ago

Hello,

I am a user of Virtuoso Assembler mainly Spectre Version 16.1.0.479.isr9 32bit -- 7 Sep 2017.

I am wondering what the effects of the netlist type (flat, hierarchical) on the application of variation are. For example, if I have created a unit cell X, and now plan to instantiate X 100 times within a schematic, is the variation applied to the sub-circuit, to the instance, or both? If there are differences in the application of the variation, is there a way to control it in the simulation, by switch or by forcing a flat netlist?

Also, a similar question, what assumptions are made by the monte carlo engine when using m factors on transistors, vs number of fingers?

Thanks,

Justin

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

    Hi Justin,

    In general, the structure of the design hierarchy doesn't impact the results - whether it is flat or hierarchical. There are some requirements for mismatch that subckt models are used (see Recommended Spectre Monte Carlo modeling methodology for some details), but that's not something you'd impact by your design. I don't see any benefit in forcing a flat netlist (actually, there's no capability in ADE to force a flat netlist anyway, so doing that would be hard and rather pointless).

    Now this is related to mismatch modelling - process modelling is independent of the instances, whereas mismatch modelling is applied to the instances of these subckt models.

    For handling of m-factor, that may depend on how the foundry has modelled the m-factor effect. Commonly 100% correlation is assumed which isn't that realistic (see article Monte Carlo should take m into account for mismatch which describes one way it could be modelled and also How does spectre apply correlation between m-factor devices during Monte Carlo simulation? which describes an option to get spectre to adjust the correlation to be zero - i.e. take it into account).

    Regards,

    Andrew. 

    • Cancel
    • Vote Up +2 Vote Down
    • Cancel
  • jp2o
    jp2o over 6 years ago in reply to Andrew Beckett

    Thank you Andrew, these articles were very helpful in understanding the correlation of device instances arrayed vs mfactor. https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000tjjEEAQ&pageName=ArticleContent informs as to how to set nullmfactorcorrelation for adexl but I tried setting the environment variable and then running mc in assembler and it did not pick it up.The setting I used is:

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

    Is there an equivalent for assembler or is there a gui option to set this?

    Thanks,

    Justin

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • jp2o
    jp2o over 6 years ago in reply to Andrew Beckett

    Thank you Andrew, these articles were very helpful in understanding the correlation of device instances arrayed vs mfactor. https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000tjjEEAQ&pageName=ArticleContent informs as to how to set nullmfactorcorrelation for adexl but I tried setting the environment variable and then running mc in assembler and it did not pick it up.The setting I used is:

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

    Is there an equivalent for assembler or is there a gui option to set this?

    Thanks,

    Justin

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to jp2o

    Hi Justin,

    You'll need to put this envSetVal in your .cdsinit because (usually) the netlist is created in a background process and so will not pick up any changes in the CIW.

    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