• 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 Voltage Source

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 1908
  • 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 Voltage Source

JO202503011751
JO202503011751 6 months ago

I need a way to vary a dc voltage across Monte Carlo runs. I am open to doing this with a custom component or with a design variable controlling an analogLib vdc component. My attempts to do this with a design variable are detailed below:

I first found a helpful post from this forum  Monte Carlo Design Variables? 

I attempted to follow the steps to create an analogLib vdc component whose voltage would vary across MC runs. Using the schematic below I set the DC voltage to the design variable "MYVDD".

I launched ADE assembler and created a dc analysis. The only output of the analysis is the DC value of the node "vout". I then created a .scs file to detail the statistical properties of that variable. Based on this thread  How to add mismatch to Monte Carlo design variables? I made some modifications to the original code for two reasons:

  1. I want the voltage to vary across Monte Carlo, not corners
  2. I wanted to use a gaussian distribution

This is the contents of the .scs file:

statistics {
    mismatch {
        vary MYVDD dist=gauss std=5
    }
}

I have included this file by going to ADE Explorer, then to Setup > Model Libraries. Unfortunately, when I run a monte carlo simulation I do not see any change in this DC voltage. Am I missing a step when defining the statistical parameters of the design variable? Does anyone have experience making a DC voltage vary across Monte Carlo?

  • Cancel
  • Andrew Beckett
    Andrew Beckett 6 months ago

    This is because you have used mismatch in your models. For mismatch to work, you need to be varying a parameter within a subckt (see Recommended Spectre Monte Carlo modeling methodology). If you'd used process in the statistics block, it would have worked.

    If you genuinely need mismatch variation (which seems slightly odd for a single voltage source), you'd need to place the vdc within a sub-block. Create a simple schematic just containing the vdc (as you have it), create a symbol for it, and then place that in your test bench and proceed as you have right now. You'll then see the variation.

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • JO202503011751
    JO202503011751 6 months ago in reply to Andrew Beckett

    Hi Andrew,

    Thank you for your quick reply! I have tried this, but unfortunately I am still having no luck.

    I modified the test bench so it now looks like this: 

    Where the block with terminals A and B just contains this circuit:

    I also made some very minor changes to the ".scs" file, seen here:

    "simulator lang=spectre
    statistics {
        mismatch {
             vary MYVDD dist=gauss std=1
        }
    }"

    I included this file again by going to Setup > Model Libraries. I had to define MYVDD as a Design variable and set it to zero (as I understand it, this defines the mean of the distribution). Unfortunately, I still get a dc voltage of 0 across every monet carlo run. I think I am messing up the inclusion of the model file, because when I look at the netlist being simulated by going to Simulation > Netlist > Display I see this:

    " simulator lang=spectre
    global 0
    include "$SPECTRE_MODEL_PATH/design_wrapper.lib.scs" section=mainlib
    include "$SPECTRE_MODEL_PATH/design_wrapper.lib.scs" section=localMC
    parameters MYVDD
    include "netlist" "

    If I go to the file called netlist I see:

    " simulator lang=spectre

    // Library name: libName
    // Cell name: cellName
    // View name: schematic
    subckt jco1625_vdc A B
        VMC (A B) vsource dc=MYVDD type=dc
    ends jco1625_vdc
    // End of subcircuit definition.

    // Library name: libName
    // Cell name: testCellName
    // View name: schematic
    I4 (vout 0) jco1625_vdc
    R0 (vout 0) resistor r=1K" "

    But nowhere is there an include statement or reference to my custom model file. Thank you again for getting to this so quickly!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett 6 months ago in reply to JO202503011751

    Do you have corners set up in ADE? If so, then the model files won't be being included if you then use Setup->Model Libraries. If that's the case, you could either add this file to your corners setup, or perhaps just use Setup->Simulation Files and then enter the file as a "Definition File" (Definition Files are included from the test even if using corners in ADE).

    Note too that you should also set a value for MYVDD in the Variables in ADE as otherwise there's no centre value for the distribution.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • JO202503011751
    JO202503011751 6 months ago in reply to Andrew Beckett

    Hi Andrew,

    The corners setup was the missing piece. I added the model file to my Monte Carlo corner and now I see variation that is defined by the model file and the mean I set in ADE.

    Thank you so much!

    • 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