• 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. asiAddSimOption question

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 13301
  • 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

asiAddSimOption question

polo
polo over 15 years ago
Hey, Does any one have experience with using the asiAddSimOption method. More precisely, I would like to use the ?editable field. My understanding is that each time the user click in the simulator option, the expression is evaluated. It the evaluated expression is true, then the sim option is enable. If the evaluated expression is false, then the sim option is disable. The Cadence doc write: ?editable s_editable I have no idea how to write in SKILL the s_editable. Any help will be appreciated.
  • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago

    For a start, this is not really intended for end-user customisation - it's there for adding simulator integrations. It is possible to add a new entry, but you generally would need to modify the .cdsenv for the simulator you're using in <ICinstDir>/tools/dfII/etc/tools/<simName>/.cdsenv to add a new .cdsenv entry. For example:

     simulatorName.opts    MYOPT  string  ""       nil

    Then you'd do something like:

    asiAddSimOption(tool ?name 'VAOPTS ?type 'string ?sendMethod 'string ?value "" ?editable '(hiGetCurrentForm()->SPICE->value==t))

    In other words, it's either t or nil, or a quoted SKILL expression - in this case checking whether a boolean flag SPICE on the same form is true or not.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • polo
    polo over 15 years ago
    Hi Andrew, Thanks for your quick answer. I try your suggestion and unfortunately it does not solve my problem. Here is a summary of my experiment When I define: asiAddSimOption(tool ?name 'OPT ?type 'string ?editable t) => The field in the simulator option filed is editable -> this is good. asiAddSimOption(tool ?name 'OPT ?type 'string ?editable nil => The field in the simulator option filed is not editable -> this is good. asiAddSimOption(tool ?name 'OPT ?type 'string ?editable '(hiGetCurrentForm()->RADIOBUTTON->value==t) => The field in the simulator option filed is always editable -> this is not good. It should be non editable when the RADIOBUTTON is not checked. I also check that the expression attached to the the sim option is a valid expression. For doing that, from the CIW, I print contents of the Simulator options form by typing hiGetCurrentForm()~>?? Then by using eval command applied to the form->editable field, I have check that the expression is correctly formed. That means: when I check the RADIOBUTTON, the eval command returns t when I decheck the RADIOBUTTON, the eval command returns nil. So the expression code is correct. The problem is that checking or dechecking the RADIOBUTTON do not trigerred at all the call to the expression that I have assigned to the editable field. I also try to add printf debug code in the expression assigned to editable field, just for checking that the code is called (the debug message should be displayed in the CIW). I click on the RADIOBUTTON and nothing appears in CIW. Am I doing something wrong ? On your side, can you kindly check if you manage to have a small example working ? Thanks for your understanding
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago

    Apologies for the delay - overlooked this and got rather busy with other things.

    Anyway, I just tried this in IC5141 (I happened to be using the latest ISR, but I don't think that should matter). I did this:

    tool=asiGetTool('spectre)
    asiAddSimOption(tool ?name 'MYOPTS ?type 'string ?sendMethod 'string ?value "" ?editable '(hiGetCurrentForm()->dochecklimit->value==list(t nil)))

    and in the <instdir>/tools/dfII/etc/tools/spectre/.cdsenv file I added:

    spectre.opts    MYOPTS  string  ""      nil

    For spectre, dochecklimit is a toggle field, which can be set to "yes" or "no". If I set it to "yes", then the MYOPTS field becomes editable, and if I set it to anything else, it gets greyed out (and it's greyed out by default).

    So it appears to work.

    If it doesn't work for you, I'd suggest you'd first check in the latest hotfix, and if it still doesn't work, contact Cadence Customer Support with the details of how to reproduce the problem.

    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