• 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. How to avoid to re-evaluate ADE-XL result tab when a custom...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 144
  • Views 15869
  • 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 avoid to re-evaluate ADE-XL result tab when a custom function is used for simulating more than one design point (corners, sweep parameter or MC simulation)?

iguerra
iguerra over 8 years ago

Hi,

I have created a custom skill/Ocean function with the aim to be used in ADE-XL as a measure ouput. Everything works fine when I have only one simulation data point, however if I have corners or a sweep variable or MC simulation, the result for that custom skill/Ocean function is "eval err" just when the simulations finish, then I have to re-evaluate the "Result" tab in order it function works.

The custom function starts with:

openResults(asiGetPsfDir(asiGetCurrentSession()))

selectResult( 'tran )

... some calculations here

Do you know what are the requirements to avoid re-evaluating the "Results" tab in ADE-XL when a custom skill/Ocean function is used in more than one simulation data point?

Thanks.

  • Cancel
  • Frank Wiedmann
    Frank Wiedmann over 8 years ago

    You might want to take a look at Solution 20467133 (https://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:ViewSolution;DocumentType=tbshtng;solutionNumber=20467133). Also, the initial commands in your function might not really be necessary and might do more harm than good.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • iguerra
    iguerra over 8 years ago
    Hi,

    I have tested with both, drIsWaveform and famIsFamily, and it seems that always (while simulating or while re-evaluating) I have a single waveform, never a family waveform. At the end that is I am expecting: working with a single waveform belonging to the current simulation data point.

    I think that still the question is: why do I have to re-evaluate the results tab in ADE-XL in order my custom function works when I have more than one simulation data point? and how to make it work just after that the simulation finishes like any other built-in function?

    Thanks.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Frank Wiedmann
    Frank Wiedmann over 8 years ago

    Have you tried removing the initial openResults() and selectResult() commands? They are a bit unusual in such a function and might not work properly within ADE-XL.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • iguerra
    iguerra over 8 years ago

    Hi,

    Yes, I already removed the openResults() and selectResult(). Let's create a very basic test case (I know that average function already exists but this is a test):

    /**************** TEST FUNCTION ****************
    procedure( avg_func(clk)
       let( ()
          result=average(clk)
    ))
    ******************************************************/

    If I use the avg_func in ADE-XL in the Output Setup tab as "avgfunc(VT("/clk_signal"))" it will say "eval err" in the Results tab just after the simulation finishes (a simulation with more than one design point), however If I re-evaluate the Results then I can see the expected result for all the design points.

    Notice that avg_func works fine if you test it with a single design point, but if you select more than one corner, or you have a sweep for any variable or you perform a MC simulation you should re-evaluate in order to see the avg_func correctly evaluated over the different design points results.

    Do you know how to make the avg_func work just after the simulation finishes when I have more than one design point?

    Thanks in advance.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    You probably haven't defined the function such that it's loaded from the .cdsinit. When the simulations are run, background processes (known as "ICRP") are started which take care of netlisting, simulation and results processing; if the function is not available in that background process (e.g. it wasn't loaded via your .cdsinit) then it will fail to evaluate.

    When you re-evalate in ADE XL, then it re-evaluates in the foreground and hence would then see your function.

    So, make sure any custom functions are automatically loaded at virtuoso start. In IC617 this can also be done for custom functions by using the fx function in the calculator functions panel to add your own function into the calculator - that makes sure it is registered and loaded at virtuoso start too.

    By the way, if you have already got these ICRP processes running - e.g. they are "lingering" (the little terminal icons are showing in the run summary in ADE XL) and you then re-define the file containing the code, it won't get re-loaded. In that case, you'd have to go to the Options->Job Setup form and hit the "Stop All" button so that on the next simulation they get re-started.

    I think this is almost certainly the reason - it's certainly consistent with the symptoms you describe!

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • iguerra
    iguerra over 8 years ago
    Hi Andrew,

    I added the function to the .cdsinit and then my custom functions did work just after the simulation finishes with more than one design point. The key was to know that the background process requires to load the functions by .cdsinit in order to work properly.

    Thanks a lot!
    • 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