• 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. Calculator special function Forms

Stats

  • Locked Locked
  • Replies 15
  • Subscribers 144
  • Views 17943
  • 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

Calculator special function Forms

Curtisma
Curtisma over 7 years ago

I am trying to make a calculator function with a form.  However I am finding the documentation to do this lacking and have some questions about setting up the form and about setting the buffer.

The example provided uses a function "ahiCreateStringField" which is otherwise undocumented.  It seems to act exactly the same as "hiCreateStringField" (no "a" at the start")  However when I define a field using a function without the a and one using the function with the a in the same calculator form it doesn't display the form when you click on the function in the calculator.  I also noticed that I seem to be able to add other types of fields by taking a normal form function and appending "a" on the front.  However none of theses other functions are mentioned at all in the documentation.  

Form Questions

1. What is the functional difference between "ahiCreateStringField" and "hiCreateStringField"?

2. Do all of the form functions have an "a" equivalent?  Is there a way to check what arguments they accept?

Buffer Questions

3. Currently I am using "calCreateSpecialFunctionsForm"  to set the calculator buffer.  However this automatically puts the current buffer value as the first argument to my function. It seems like I could write my own CB function using "calSetBuffer" to set the buffer,  Is there anything else I need to take care of when I do this? 

4.  Also I am using "calCreateSpecialFunctionsForm"  but it seems like it would be more flexible to perform it's function myself to make a more advanced form. I could use "calRegisterSpecialFunction" to register the function, and "hiCreateForm" to open the form.  Is there anything else I need to take care of when I do this?  Would I then need to use the form functions without "a" appended?

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Hi Curtis,

    Thanks for your patience. Some answers to your original questions:

    1. I believe the ahi functions add some wrappers around things (and have a slightly different return value than the standard forms) primarily to ensure that they are unique per ADE session. This prevents each ADE session from interfering with each other. You have to use all ahi or all hi - you can't mix them (AFAIK).
    2. From a quick look there does seem to be most of them present. They really ought to be documented, but we are gradually removing the need for them. It might be better for longer term sanity to contact customer support and ask for a mechanism to have dynamically added fields somehow in the template mechanism,
    3. I've never done it this way - instead for complicated things I've used calCalcInput. See abApplyToWave in this post
    4. I vaguely recall trying to use a form built with hi rather than ahi functions in the past, but I don't think it worked - probably because it expects to launch the form with ahiDisplayAppForm (and it's all or nothing). So you're on your own here - I simply have not pursued doing this, and I'm currently in the process of retrofitting the new built-in form to most of my existing calculator functions.

    As for your idea of using axlSDBPutExtension you might be better off using axlAddOutputsColumn to add a custom column in the outputs pane, and then using axlGetOutputUserDefinedData() to retrieve the value the user has entered (maybe the Set equivalent too if you're going to want to provide a means of populating the data).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Hi Curtis,

    Thanks for your patience. Some answers to your original questions:

    1. I believe the ahi functions add some wrappers around things (and have a slightly different return value than the standard forms) primarily to ensure that they are unique per ADE session. This prevents each ADE session from interfering with each other. You have to use all ahi or all hi - you can't mix them (AFAIK).
    2. From a quick look there does seem to be most of them present. They really ought to be documented, but we are gradually removing the need for them. It might be better for longer term sanity to contact customer support and ask for a mechanism to have dynamically added fields somehow in the template mechanism,
    3. I've never done it this way - instead for complicated things I've used calCalcInput. See abApplyToWave in this post
    4. I vaguely recall trying to use a form built with hi rather than ahi functions in the past, but I don't think it worked - probably because it expects to launch the form with ahiDisplayAppForm (and it's all or nothing). So you're on your own here - I simply have not pursued doing this, and I'm currently in the process of retrofitting the new built-in form to most of my existing calculator functions.

    As for your idea of using axlSDBPutExtension you might be better off using axlAddOutputsColumn to add a custom column in the outputs pane, and then using axlGetOutputUserDefinedData() to retrieve the value the user has entered (maybe the Set equivalent too if you're going to want to provide a means of populating the data).

    Regards,

    Andrew.

    • 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