controlling mismatch in MC simulations

Discussion in 'Cadence' started by sceptico, Jul 9, 2008.

  1. sceptico

    sceptico Guest

    I've got a simulation testbench with multiple instances of a 6T SRAM
    cell and each instance is used to measure one specification. When I
    run MC simulations with the mismatch only option, Cadence assigns each
    transistor a unique Vt (Vt is the only mismatch variable in this
    case). However, I want to simulate mismatch between the 6 transistors
    inside the cell, but not between each instance of the 6T cell. I need
    6T instances to be identical. I thought of a couple tricks to do this
    but neither seemed practical. For example, I can create unique models
    for each transistor in the 6T cell and use global process parameters
    to model mismatch (This will complicate things while simulating other
    circuits). Cadence also lets me define correlations between
    transistors but doesn't allow 1.0 correlation. Any suggestions?

    Thank you,
    Umut Arslan
     
    sceptico, Jul 9, 2008
    #1
  2. sceptico

    Riad KACED Guest

    Riad KACED, Jul 18, 2008
    #2
  3. sceptico

    sceptico Guest

    Hi Riad,

    Thanks for the link but I am actually asking a different question than
    the one posted in the link. I know that mismatch only MC assigns a
    different parameter value at each iteration. I am asking whether there
    is a way to control the mismatch between two transistors in the
    testbench. In my setup, I want to have mismatch between 6 transistors
    in the SRAM cell, but I want each instance of the cell to be
    identical.

    Umut
     
    sceptico, Jul 20, 2008
    #3
  4. sceptico

    Riad KACED Guest

    Hi Umut !

    Spectre supports a mismatch correlation but I have never used in the
    case you're describing. I rather used it to correlate matched devices,
    i.e, force Spectre to not exceed a certain mismatch percentage between
    2 subcircuits by defining a correlation parameter.


    I may need to give it a go with your case but I'm offline right now.

    You may give a look at the Spectre Ref manual in the meanwhile.
    There is a snippet from this doc.
    ---
    Mismatch Correlation (Matched Devices):
    The syntax of the instance or mismatch correlation statement is:
    correlate dev=[list of subcircuit instances] {param=[list of
    parameters]} cc=<value>
    where the device or subcircuit instances to be matched are listed in
    the list of subcircuit
    instances, and the list of parameters specifies exactly which
    parameters with mismatch
    variations are to be correlated.
    The instance mismatch correlation statement is used to specify
    correlations for particular
    subcircuit instances. If a subcircuit contains a device, you can
    effectively use the instance
    correlation statements to specify that certain devices are correlated
    (i.e. matched) and give
    the correlation coefficient. You can optionally specify exactly which
    parameters are to be
    correlated by giving a list of parameters (each of which must have had
    distributions specified
    for it in a mismatch block), or specify no parameter list, in which
    case all parameters with
    mismatch statistics specified are correlated with the given
    correlation coefficient. The
    correlation coefficients are specified in the <value> field and must
    be between +/- 1.0.
    ---

    There is a good explanation of Matched Devices and Correlate
    Statements in the following document as well:
    http://www.designers-guide.org/Modeling/montecarlo.pdf

    Once again, I'm not sure is Spectre handles your specific case. Andrew
    is the best person in here to comment about it !

    Riad.
     
    Riad KACED, Jul 20, 2008
    #4
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.