• 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. using calcVal with parametric parametric sweep

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 126
  • Views 7369
  • 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

using calcVal with parametric parametric sweep

Svilen64
Svilen64 over 2 years ago

Hi,

In my simulation test bench I have three tests. I define an expression in test one which I want to pass to test 2 and 3 with calcVal. Also an expression from test2 is assigned through calcVal to a design variable for test3. All this works if I run a single corner simulation. However, I tried running a variable sweep and expected that the calcVal values will pass among the three test for the relevant sweep points. For example, for sweep point 1 I expected that the expression from test 1 will go to the calcVal definition in test 2 and 3 for the same sweep point. And similarly for the rest of the sweep points. From what I read I defined it like that calcVal("name" "test name" ?matchParams "all") but what happens is the expressions using the calcVal in tests 2 and 3 return nil.
Is it the right approach for what I am trying to do? Well, obviously I am not doing something quite right because it fails. Will appreciate any help.
I am using spectre version 20.1.0.073.isr1 and also tried  with 21.1.0.334.isr6,

Thanks

Svilen

  • Cancel
  • ShawnLogan
    ShawnLogan over 2 years ago

    Dear Svilen,

    Svilen64 said:
    All this works if I run a single corner simulation. However, I tried running a variable sweep and expected that the calcVal values will pass among the three test for the relevant sweep points. For example, for sweep point 1 I expected that the expression from test 1 will go to the calcVal definition in test 2 and 3 for the same sweep point. And similarly for the rest of the sweep points. From what I read I defined it like that calcVal("name" "test name" ?matchParams "all") but what happens is the expressions using the calcVal in tests 2 and 3 return nil.
    Is it the right approach for what I am trying to do?

    Unless i overlooked it in your question, I'm not sure if you are doing a global or local variable sweep. The manner in which calcVal() must be used is dependent on the presence of a local or global sweep. If you are doing one or more global variable sweep(s), the use of ?matchParams is not necessary and the values defined as calcVal() variables will pass for the same corner (or sweep) between tests exactly as I believe you want. If you are doing a local variable sweep, the use of additional parameters to calcVal() may b required in order to indicate which specific value to pass.

    This is discussed in some detail in the Cadence RAK entitled "Using calcVal and its Arguments with Virtuoso ADE Assembler".

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Svilen64
    Svilen64 over 2 years ago in reply to ShawnLogan

    Hi Shawn,

    Thanks a lot for replying.
    I am using a local variable sweep, not global. And when setting up the simulation I was referring the document you mentioned. That's how I came to know about setting the matchParams "all"

    Thanks

    Svilen

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

    Svilen,

    It's almost certainly best to handle this via customer support (please submit a case after logging in). We'll need to see the IC version you're using (that's more important than the Spectre version in this case) and also precisely how the sweeps and calcVals are set up.

    Andrew

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

    Hi Andrew,

    The version is ICADVM20.1-64b.500.31
    Do different versions have different functionality for calcVal?

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

    There have been improvements and fixes to calcVal over time - it's a complex thing to handle every scenario and there have been gaps in functionality. However, you're using a fairly recent ISR of ICADVM20.1 so that should be OK - that was what I was trying to check (maybe you had been using a very old version).

    Please contact customer support so you can show your precise simulation setup to help identify what is wrong, either with calcVal itself or with your usage of it. Maybe we can find a workaround that way - but seeing the simulation setup is key to this.

    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