• 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. Definitions of Viva calculator data access functions

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 144
  • Views 14939
  • 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

Definitions of Viva calculator data access functions

jayager
jayager over 9 years ago

Hello!

I am using Spectre to run a simulation on a design--it is a standard potential/flow model, but the variables are different. I have been asked to define a new set of data access functions for Viva Calculator, e.g. RT() for the node potential vs. time.

I have found asiDefineDataAccessFunction in the manual, but it seems to only allow the existing defined access functions to be redefined. I tried a little bit of handwaving, where I located the VT function with asiGetDataAccessFunction, and then asiDefined'ed RT to it--it threw no errors, but didn't work in the calculator either.

Also, I have the pipe dream of adding this RT() to the schematic access toolbar in the Viva calculator.

Here's some code, as run in CIW:

> o_tool = asiGetTool('analog)
stdobj@0x165f5d88

> daf = asiGetDataAccessFunction( o_tool 'VT )
asiDataVT

> asiDefineDataAccessFunction( o_tool 'RT 'asiDataVT )
asiDataVT

> daf = asiGetDataAccessFunction( o_tool 'RT )
asiDataVT

However, after I did this, I tried it out in ADE, but it couldn't find RT as an access function.

1) Is what I'm doing possible? asiDefine' seemed to not complain, even though the manual says it shouldn't necessarily work.
2) Is there a tutorial on this somewhere?
3) If it is possible, what am I doing wrong?
4) If it is possible, is it then possible to modify the schematic access toolbar in Calculator to include it, or is this merely all a pipe dream?

Thanks in advance!

--Jeremy

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 9 years ago

    Jeremy,

    This method of defining access functions is for simulator integrations. It's intended that a simulator integrated into ADE can effectively overload the VT, IT, VS, IS etc functions to provide specific access functions for the simulator in question.

    It is not intended to be used for an existing simulator integration, or to add new access functions.

    You can't add new access functions in the calculator toolbar either.

    You could just define a conventional function, but I'm not sure why you'd need to. I believe the v and i functions will retrieve any potential or flow, or worst case you can use the getData() function. I'm assuming these signals are coming from Verilog-A models or maybe using the spectre quantity statement? It's not clear what you're actually trying to do or why it would be needed.

    Perhaps contacting customer support would help, then you could share the specifics of what you're doing (if you can't do so here)?

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • jayager
    jayager over 9 years ago

    Andrew,

    I appreciate the reply. The rationale is that I am using a Verilog-A model to define a different quantity for potential, and voltage is a function of that quantity, hence the desire to use custom-defined access functions. This is mostly for ease of use.

    Best,
    Jeremy

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

    Jeremy,

    It would be possible to define a custom calculator function that would allow you to click on a net in the schematic and have that fed to your function. It's rather awkward doing this before IC617, but in IC617 it's easy to define a new function from the Calculator UI. Then when the form for that function appears in the calculator and you click in the field for the net name, you could then click on the net in the schematic. Underneath it would probably just do getData(), but if you wanted something that appears to the user as if they are using a specific function for that potential, you could make it that way.

    The behaviour would be similar to the "Spectre RF Functions" category. 

    So for example, you could create this function and put it in a file:

    procedure(CCFpotential(netName analysis)
      getData(netName ?result analysis)
    )

    Then in the calculator:

    Click on the "fx" button in the function panel at the bottom (i.e. next to the cyclic field where it says "Special Functions"). This brings up a new form:

    Give the path to the CCFpotential code that I gave above, and then click on the Create New button. This reads the arguments from the function in the file, and starts creating the inputs for each argument. I then changed the first to Net and the second to Cyclic and gave it the list of choices:

    OK the forms, and then in the Custom Functions category you'd have CCFpotential as a function that you can pick. If you pick the netName field, you can click on the net in the schematic. The analysis name can be chosen from the cyclic field choices.

    Regards,

    Andrew.

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

    This feature is quite useful... is there any way to include "Instance" as selection in the "Data Type" instead of "Net"?
    From the available pull down menu does not seem so :(

    I have tried creating the "ocnmRegGUIBuilder" function manually and added the following "enableListener instance", but does not seem to work either :(

    More wondering if there is another "sneak path" :D

    Thank U,
    Ionut
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    Hi Ionut,

    I don't think so - you should contact customer support as this requires an enhancement CCR (I'd take care of it myself, but I'm out for a few days).

    Regards,

    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