• 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 SKILL
  3. Montecarlo simulation with Verilog-A and Python

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 144
  • Views 15670
  • 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

Montecarlo simulation with Verilog-A and Python

farhan89
farhan89 over 7 years ago

Hi All,

I have a Verilog-A model of a transistor and now I am extending it for variability modeling. Currently I have a test variability model in Python that uses some libraries to generate results for Montecarlo simulation (using transistor model in python language). Now, I would like to convert the complete model in to Verilog-A compatible format. I have read Verilog-A manual and what I have understood is that I have to write a statistical block to run Montecarlo simulation (by generating samples for each simulation run). For that, I have few questions:

1. Can I call python code from Verilog-A or Statistical block to generate a model parameters sample from my python code and then run simulation using spectre simulator with python generated samples?

2. Can I define Joint PDF (means and co-variances matrix) in statistical block?

I am using Cadence IC 6.1.6 and MMSIM 14.10.

Thanks

Regards,

Farhan

  • Cancel
Parents
  • drdanmc
    drdanmc over 7 years ago

    Taking the normal random variables as an example, in spectre you specify a standard deviation and it gives you a zero mean, independently distributed variable.  But you can decompose a set of random variables with different means and a co-variance matrix into sums of independent, zero mean random variables.  I.e.

    y = Ax + b

    where x are your zero mean, unit variance random variables, A is a matrix that transforms to give the desired variances and co-variances, and b is a vector of means. 

    -Dan

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • drdanmc
    drdanmc over 7 years ago

    Taking the normal random variables as an example, in spectre you specify a standard deviation and it gives you a zero mean, independently distributed variable.  But you can decompose a set of random variables with different means and a co-variance matrix into sums of independent, zero mean random variables.  I.e.

    y = Ax + b

    where x are your zero mean, unit variance random variables, A is a matrix that transforms to give the desired variances and co-variances, and b is a vector of means. 

    -Dan

    • 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