• 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 SKILL
  3. ADE-XL retrieve values and calculate min

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 143
  • Views 18600
  • 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

ADE-XL retrieve values and calculate min

netbug
netbug over 5 years ago

Hi all,

I have an STB test on ADE-XL.

The setup is as below:

Global Variables

LoadCurrent -> 1u 1m 10m 100m

Corners

Normal Process corners (actives, passives, supply and temperature)

For each design point (value of current) I will have, for eg, 256 corners. I would like to retrieve the lower phase margin across all corners and per design point.

So something like this

current    PM

1u   ->     20

1m  ->.    40

10m ->.   30

100m ->  60

It crossed my mind of, somehow, export all values to a list and then take the minimum. However, ADE-XL already provides max and min values and getting those would be another option.

How can I accomplish this using SKILL or the calculator?

Thanks in advance,

Best regards,

Pedro

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago

    Hi Pedro,

    If you have an output called "PM", then add another output called maxPM with the expression ymax(PM) or ymax(calcVal("PM")) and then set the evalType column to "corner" so that it evaluates the maximum across corners. You could use ymin too for the minimum. You could then put a spec on these outputs too.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • netbug
    netbug over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thank you for your answer.

    I had tried that approach, but wasn't working since I was using "min" instead of "ymin". To me, as PM is a value, it makes no sense to use "ymin"/"xmin" (maybe the "min" function doesn't exist on ADE-XL at all for this purpose).

    Now, I have the following expression, that works:-)

    ymin(getData("phaseMargin" ?result "stb_margin") ?overall t) -> ?overall t is added automatically I don't know why.

    Now that it's working, when I plot, the graph is PM vs design point instead of PM vs the value of the variable being swept. Can you, please, help me with this?

    Best regards,

    Pedro

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to netbug

    It's ymin because if you just had the getData expression, you'd get the phaseMargin versus the corner - and that's a waveform, so it needs to know it's the minimum y value of that waveform. The ?overall t is added whenever you use the "measurement across corners" (setting eval type to "corners") because had the inside of the ymin be a waveform, this would find the minimum across all the individual curves and families of curves.

    How are you plotting it? Given that it's just a single number, why would you plot it? Or are you doing sweeps as well? If so, which plot menu or choice are you using? (A picture might help)

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • netbug
    netbug over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    I have a global variable set as below:

    ampLoad = 1n 1u 1m 10m 100m 200m (this is not really a sweep since I am assigning discrete values to the variable, I guess)

    Corners will be the normal PVT corners: actives, passives,temperature, etc.

    On ADE-XL I just right click the result of my expression and do "plot all". That will plot Phase Margin values per design point, which is correct. But I don't want to have on the xx axis 1 2 3 4 ... , I would like to have 1u 1m 10m ....

    Best regards,

    Pedro

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to netbug

    Pedro,

    This appears to be a bug. I filed CCR 2165705 to get this fixed in ADE Assembler (we may not fix it in ADE XL since ADE XL is in "sunset" mode). You might want to report this to customer support too and ask for a duplicate CCR to be filed. It seems that using Plot All, Plot across Corners  (not sure why that's even available for a MAC expression) and Plot across Design Points all plot exactly the same way - versus the Design_Point, and I think Plot All should plot against the swept variable (even if it's discrete points).

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 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