• 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. How to set the same mismatch for subcirduits

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 125
  • Views 7521
  • 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

How to set the same mismatch for subcirduits

zuiying
zuiying over 2 years ago

Hello! When I run monte calro simulation, I want to set the same mismatch for I5, I6, I7 in the schemetic below. 

They are the same subcircuits.

I browse the forum and documentation  I found this statement.

It seems that the mismatch will be same when the cc equals 1.

But I didn't find where to enter this command.

I tryed to enter this command in "User-command line options" but simulation reported an error.

How should the same mismatch be set correctly?

Thanks a lot!

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago

    You need to set up a correlation constraint (you can't just add random text in the User Command Line Options, since this is not specified as a command-line option anyway). This is covered in the ADE XL user guide (I see you're using the old ADE XL), but it's covered more clearly in this article: How to specify correlated components for Monte Carlo analysis in Virtuoso ADE Assembler (the mechanism is the same for ADE XL).

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • zuiying
    zuiying over 2 years ago in reply to Andrew Beckett

    Thanks for your help!

    In fact, my virtuoso is 6.1.7-64b and exists in a server. I use some softwares to access the server and use virtuoso. " How to specify correlated components for Monte Carlo analysis in Virtuoso ADE Assembler" needs host id or key. However, I am forbidden to get this sensitive information from the server. So I can't access this article now.

    But I read the ADE XL user guide following your suggestion. I added constraints according to the guide and it worked! But if I want to add correlation constraints to different instances from the same subcircuit, I need to add constraints to the internal components one by one. For example, I1, I2, I3 and I4 are different instances from my_inv1 which contains nmos and pmos.

    I want to keep their mismatch the same in monte calro simulation so I need to add correlation constraints to them. If I just add constraints between I1 and I2, the simulation results show they still have different mismatch. The mismatch is the same only when I add constraints to the components in them, like "corrrelation between I3/MN2 and I4/MN2". It is too laborious to add constraints one by one. Is there any way to add correlation constraints to different instances directly? Really thanks!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to zuiying

    If you want to do it for the whole instance, then a different approach is needed. You can do this with the mismatch id mechanism - this however:

    1. Requires you to be using IC6.1.8/ICADVM20.1 ISR18 or later (i.e. with .500.18 at the end or later)
    2. Requires you to be using ADE Explorer/Assembler (not ADE XL)
    3. You then need to specify the  "Mismatch ID" on the Monte Carlo options form. You can either:
      1. Specify the sub circuit (which means that all of the inverters will be correlated)
      2. Specify all the instances you want to have the same mismatch id - so you can link several of them together
    4. If you use this mechanism, you must use "Random" sampling method rather than "Low Descrepancy Sequence" (I don't entirely know why that is, bit it's a limitation at the moment).

    Since you are currently using IC6.1.7, then you either need to move to a newer version or correlate all the individual devices.

    I'm not entirely sure what your objective is in marking the instances as fully correlated, since that won't (of course) happen on silicon. The only reasonable case for using this is if you have a test bench which effectively includes multiple tests on the same schematic - i.e. each of the correlated instances is only a single instance in practice, and your simulation is just trying them out together on the same schematic. If so, you could also achieve that with two different tests in ADE XL/Assembler, and then use the Specify Instances/Devices to indicate which instances correlate between the tests.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • zuiying
    zuiying over 2 years ago in reply to Andrew Beckett

    "The only reasonable case for using this is if you have a test bench which effectively includes multiple tests on the same schematic - i.e. each of the correlated instances is only a single instance in practice, and your simulation is just trying them out together on the same schematic." Yes! The different instances in my schemetic is the same circuit in practice. I need to test different characteristics so there are different test benches.

    Here are three OPA instances but they are the same one in practice. 

    I tryed "Specify Instances/Devices" function. 

    The results show that I5 in tb1 and I5 in tb2 have the same mismatch, I6 in tb1 and I6 in tb2 have the same mismatch, I7 in tb1 and I7 in tb2 have the same mismatch. However, I5 I6 I7 in tb1 or I5 I6 I7 in tb2 still have different mismatch. I feel that "Specify Instances/Devices" just sets which parts have mismatch but doesn't set correlation.

    Maybe I misunderstood your guide. It is really not easy to set the same mismatch with this IC version.

    Really thanks!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to zuiying

    You can't set instances within the same test bench to correlate with the Specify Instances UI - all it does is cause only the selected instance or instances to be the "device under test" for Spectre - this means that mismatch is only applied to (usually) the selected single instance. If the test benches were identical, they would correlate between the tests anyway, but if the test benches differ, you can use this to ensure that the mismatch random numbers are generated for the same device under test between the different test benches and avoid other instances in the test bench schematics from perturbing the sequence of random numbers.

    What I was suggesting was that rather than having multiple instances representing the same DUT in a single test bench that you could split it into multiple tests instead and then use this mechanism to correlate the different tests. If you have too many, it may be simpler to just move to a newer version since you're using a version which is at least 4.5 years old (possibly older - you didn't mention the precise subversion you're using).

    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