• 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. leafValue data type processing in Cadence Virtuoso

Stats

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

leafValue data type processing in Cadence Virtuoso

Senan
Senan over 3 years ago

Hello,

I am using Cadence Virtuoso IC6.8-64b.500.6

I am running a simulation over multiple corners from ADE Assembler. I have used calculation over corner to calculate some functions. As seen from the image below, the calculated function (accuracy in this example) is successfully calculated and plotted, however, the data type "leafValue" will not enable me to do any further data processing on the obtained signal (e.g, taking the average). The error message from the CIW is down.

Kindly I need your help to be able to process this signal

Thank you in advance

Regards

  • Cancel
  • ShawnLogan
    ShawnLogan over 3 years ago

    Dear Senan,

    Senan said:

    As seen from the image below, the calculated function (accuracy in this example) is successfully calculated and plotted, however, the data type "leafValue" will not enable me to do any further data processing on the obtained signal (e.g, taking the average). The error message from the CIW is down.

    Kindly I need your help to be able to process this signal

    I do not know of a Calculator function "Accuracy_C". Hence, I cannot comment on the nature of its expected inputs nor its expected output. I did see in the Calculator screen shot that you used in your post  the function was used as an argument to the Calculator real() function. If the function Accuracy_C() returns a complex number, you may need to specify the real or imaginary or magnitude of its value in any future calculations you are performing.

    Perhaps it is me, but the information you are providing is quite limited, and hence really is not sufficient for me to provide any other comments. Sorry!

    Shawn

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 3 years ago in reply to ShawnLogan

    Shawn,

    I'm assuming Accuracy_C was the name of one of the ADE outputs rather than a function, but I completely agree with your assessment that Senan didn't provide enough details - knowing what this Accuracy_C output is (what expression generated it) would be key to answering this.

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Senan
    Senan over 3 years ago in reply to Andrew Beckett

    Dear Shawn and Andrew

    Thank you very much for your comments on my post.

    I have constructed this mathematical expression from the Calculator and saved it as an expression in the ADE Assembler as a function to compute the sensor accuracy error:

    ((((average(deriv(frequency(VT("/vout"))) ?overall t) * VAR("temp")) + value(frequency(VT("/vout")) 0)) - frequency(VT("/vout"))) / average(deriv(frequency(VT("/vout"))) ?overall t))

    and I named it Accuracy_C

    My sensor in this example is a temperature-to-frequency converter. Hence my accuracy error in °C are given in the y-axis. As I have mentioned before, this formula is giving me the correct expected graph so I have no doubt about it. Only not able to do further processing on it after the result came, as for example if I want to to apply the ymax or ymin or any other function. Please you can see the image below if that might be helpful

    Best Regards

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 3 years ago in reply to Senan

    Dear Senan,

    Senan said:

    s seen from the image below, the calculated function (accuracy in this example) is successfully calculated and plotted, however, the data type "leafValue" will not enable me to do any further data processing on the obtained signal (e.g, taking the average). The error message from the CIW is down.

    Kindly I need your help to be able to process this signal

    First, thank you for the added information! It is useful to better understand the nature of your issue and question!

    I have studied your results and the expression and have a couple of comments...maybe these will be useful to you to consider...

    1. It appears to me that the curve you have highlighted in the plot (which you sent to the Calculator) appears to be a single corner and hence not the entire waveform. Have you tried, from the Calculator, sending the expression you have in the stack tp a table in order to see what the Calculator expression represents. If it is a single scalar, you may want to use the ?overall option to function ymax() as detailed in the Virtuoso Visualization and Analysis XL User Guide ICADVM20.1 at URL:

    Virtuoso Visualization and Analysis XL User Guide -- Calculator Functions - ymax

    where it states:

    "When you use this function to evaluate data for measurement
    across corners, a new key argument, overall, is added to
    this function. If the input is a scalar and the overall
    argument is set to t, the ymax function returns the input
    scalar value."

    2. In lieu of using the Calculator, have you tried using the ymax() or ymin() functions as an Assembler output expression? If so, does it produce the desired result?

    Shawn

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Senan
    Senan over 3 years ago in reply to ShawnLogan

    Dear Shawn,

    Thank you very much for your help and kind response,

    The second solution worked for me perfectly and computed the results with no error as you can see from the image below, hence I will keep this option in my future work.

    Thank you once again and wish you nice time

    Regards

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 3 years ago in reply to Senan

    Dear Senan,

      The second solution worked for me perfectly and computed the results with no error as you can see from the image below,  

    Excellent! Thank you for letting us know too! Good luck with your sensor design.

    Shawn

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Senan
    Senan over 3 years ago in reply to ShawnLogan

    It is my pleasure Sir,

    • 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