• 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 simulation for device mismatch

Stats

  • Locked Locked
  • Replies 18
  • Subscribers 126
  • Views 28610
  • 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 simulation for device mismatch

sdineshkumar
sdineshkumar over 10 years ago

I am trying to simulate a SRAM PUF in cadence 5.1. I want to create threshold variations between two back to back connected inverters. I decided to vary threshold of any one of the PMOS . I want to apply monte carlo simulation with guassian distribution to any one of the PMOS. I dont know  how to apply montecarlo variation to a particular PMOS?

Is there any way to do it in virtuoso 5.1

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

    That won't work, because for mismatch to work you have to have parameterised models within the subckt - and in this case you are instantiating cmosn and trying to pass model parameters to the instance of cmosn. vth0 and dvt0 are model parameters, not instance parameters.

    You'd need to use something like:

    subckt NMOS_VTL (D G S B)
    parameters w=350e-9 l=180e-9

    M7 (D G S B) cmosn w=w l=l 

    model cmosn bsim3v3 type=n ...
    + vth0=vth0 dvt0=dvt0 
    + // other parameters
    ends NMOS_VTL

    in other words, put the model inside the subckt, and parameterize the model definition with the global parameters you've specified as having distributions.

    This is covered in the monte carlo modelling guide that I referred to earlier in this thread.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 10 years ago

    That won't work, because for mismatch to work you have to have parameterised models within the subckt - and in this case you are instantiating cmosn and trying to pass model parameters to the instance of cmosn. vth0 and dvt0 are model parameters, not instance parameters.

    You'd need to use something like:

    subckt NMOS_VTL (D G S B)
    parameters w=350e-9 l=180e-9

    M7 (D G S B) cmosn w=w l=l 

    model cmosn bsim3v3 type=n ...
    + vth0=vth0 dvt0=dvt0 
    + // other parameters
    ends NMOS_VTL

    in other words, put the model inside the subckt, and parameterize the model definition with the global parameters you've specified as having distributions.

    This is covered in the monte carlo modelling guide that I referred to earlier in this thread.

    Regards,

    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