• 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. Mixed-Signal Design
  3. calcVal outcome depends on enabled test (although no calcVal...

Stats

  • Locked Locked
  • Replies 16
  • Subscribers 67
  • Views 11867
  • 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

calcVal outcome depends on enabled test (although no calcVal is referring to such test)

NewScreenName
NewScreenName over 2 years ago

Dear all,

I

 have a testbench with one referenceTest and two following tests targetTest1 and targetTest2.

Both targetTest1 and targetTest2 have their own local variables respectively defined as calcVal("out1" "referenceTest" ?matchParams "all" ?ignoreParams("some params")) and calcVal("out2" "referenceTest" ?matchParams "all" ?ignoreParams("some params")).

When the referenceTest and either targetTest1 or targetTest2 are run, everything works just fine, however when all the three tests are run simultaneously targetTest1 would get a netlist error about not being able to map properly the points required by calcVal.

(Notice some local variables (e.g. v1) have a different value in targetTest2 with respect to referenceTest, but I have taken care to include such variable (and all the ones depending on it) in the ?ignoreParams statement of calcVal used in targetTest2.)

How can this be explained?

Virtuoso version:

Thank you

Best regards

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 2 years ago

    Dear NewScreenName,

    NewScreenName said:
    When the referenceTest and either targetTest1 or targetTest2 are run, everything works just fine, however when all the three tests are run simultaneously targetTest1 would get a netlist error about not being able to map properly the points required by calcVal.
    NewScreenName said:
    How can this be explained?

    I will risk the fact that I may totally misunderstanding your question and hence make a rather obvious comment if you bear with me NewScreenName. Since your variables in targetTest1 and targetTest2 are both dependent on the simulation result of referenceTest, if you simulate the three tests benches at the same time, I do not know how you guarantee that test bench referenceTest completes before netlisting happens in targetTest1 and targetTest2. Put another way, the referenceTest outputs "out" and "out2" must be available prior to simulating test benches targetTest1 or targetTest2 respectively.

    My apologies if I am I overlooking something obvious or just plain misunderstanding your question!

    Shawn

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

    Dear ShawnLogan,

    According to my understanding, in the moment one of the local variables of targetTest1 and one of the local variables of targetTest2 have a value calcVal("out1" "referenceTest" ...) and calcVal("out2" "referenceTest" ...) respectively, isn't this enough to have the simulator run referenceTest first, and only afterwards attempting to netlist for targetTest1 and targetTest2?

    I also observe that in facts referenceTest is the first one which gets run, and only after that completes, that other two tests are loading and their netlisting begins.

    What I rather get is a message : 

    *Error* ERROR (ASSEMBLER-2741): Failed to evaluate the calcVal("out1" "referenceTest") expression from test 'targetTest1' because no points matched the ?matchParams and ?ignoreParams specification.

    \e Only parameters that failed to match the database value will be reported in this message

    \e   Matching parameters specified in ?matchParams (list of parameters) because it has fewer than specified in the data point

    \e   Params in the point but not specified in ?matchParams: (another list of parameters)

    However this does not happen when only one of the two targetTests is enabled. Of course I am not changing any variable, just letting or not both tests run, that is what is quite confusing me.
    Is there anything which should be taken care when running multiple targetTests relying on a previous referenceTest's output, but being completely independent between each other among the targetTests?

    Thank you

    Best regards

     

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

    Dear NewScreenName,

    NewScreenName said:
    According to my understanding, in the moment one of the local variables of targetTest1 and one of the local variables of targetTest2 have a value calcVal("out1" "referenceTest" ...) and calcVal("out2" "referenceTest" ...) respectively, isn't this enough to have the simulator run referenceTest first, and only afterwards attempting to netlist for targetTest1 and targetTest2?

    If you defined a run plan, yes. However, you did not indicate that you created a run plan. From the Assembler manual at URL:

    https://support.cadence.com/apex/techpubDocViewerPage?path=assembler/assemblerICADVM20.1/asmRunPlan.html#calcValInRun

    an example of a run plan is provided where one simulation is dependent on a second simulation. I've included the relevant section as Figure 1.

    Did you define a run plan that includes your reference and two simulations dependent on the reference simulation?

    Shawn

    Figure 1

    from URL: https://support.cadence.com/apex/techpubDocViewerPage?path=assembler/assemblerICADVM20.1/asmRunPlan.html#calcValInRun

    Dear NewScreenName,

    NewScreenName said:
    According to my understanding, in the moment one of the local variables of targetTest1 and one of the local variables of targetTest2 have a value calcVal("out1" "referenceTest" ...) and calcVal("out2" "referenceTest" ...) respectively, isn't this enough to have the simulator run referenceTest first, and only afterwards attempting to netlist for targetTest1 and targetTest2?

    If you defined a run plan, yes. However, you did not indicate that you created a run plan. From the Assembler manual at URL:

    https://support.cadence.com/apex/techpubDocViewerPage?path=assembler/assemblerICADVM20.1/asmRunPlan.html#calcValInRun

    an example of a run plan is provided where one simulation is dependent on a second simulation. I've included the relevant section as Figure 1.

    Did you define a run plan that includes your reference and two simulations dependent on the reference simulation?

    Shawn

    Figure 1

    from URL: https://support.cadence.com/apex/techpubDocViewerPage?path=assembler/assemblerICADVM20.1/asmRunPlan.html#calcValInRun

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

    Dear NewScreenName,

    Unfortunately, my response was flagged as spam and, hopefully, will be released soon. In short, did you define a run plan?

    Shawn

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

    Shawn, a quick response as I’m on vacation and won’t have access for a while. It is not necessary to use run plans in order to set up a dependency - the same happens (and has always happened) with calcVal usage between tests. This is true if the variable of one test is being set using a calcVal referencing another, or if the outputs have calcVals. 

    NewScreenName - it seems that the problem is related to it not being able to find a match - and it’s not obvious why this is failing just when particular combinations of tests are enabled. Please contact customer support via a case at http://support.cadence.com and an application engineer can help you. 

    Regards,

    Andrew

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

    Dear Andrew,

    Andrew Beckett said:
    It is not necessary to use run plans in order to set up a dependency - the same happens (and has always happened) with calcVal usage between tests. This is true if the variable of one test is being set using a calcVal referencing another, or if the outputs have calcVals. 

    Thank you!

    Without access to the Cadence tools, I was not sure and could not verify it. Thank you for adding your comment!

    Shawn

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

    Dear Andrew,

    Andrew Beckett said:
    It is not necessary to use run plans in order to set up a dependency - the same happens (and has always happened) with calcVal usage between tests. This is true if the variable of one test is being set using a calcVal referencing another, or if the outputs have calcVals. 

    Thank you!

    Without access to the Cadence tools, I was not sure and could not verify it. Thank you for adding your comment!

    Shawn

    • 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