• 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. Order of pCell callback triggering

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 143
  • Views 13897
  • 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

Order of pCell callback triggering

abompos
abompos over 7 years ago

Hello Andrew,

First of all, needless to say, the set of abInvokeCDFCallbacks.il functions has been of great help!

I have a question though which relates to the callback triggering order performed by (abInvokeObjCdfCallbacks) and what's the recommended way to deal with interdependent CDF parameters.

The flow is as follows:

1. Create effective CDF by utilizing (abCreateEffectiveCDFLookalike)

2. Populate the values to be altered:

eff_cdf->X=20

eff_cdf->Y=30

3. Call the callbacks (abInvokeObjCdfCallbacks eff_cdf  ?order (list X Y))

During the first iteration, the 'X' callback is triggered, which by design, also alters 'Y' value and sets it to a value other than 30.  In the second iteration, the 'Y' callback will be triggered and operate on the value obtained previously. Hence, the value of 30 was actually never exercised.

In order to bring this "non-interactive" flow closer to what a user would normally do by hand (change X -> hit Apply -> change Y -> Hit Apply etc.), is the recommended way to call (abInvokeObjCdfCallbacks) recursively without utilizing the ?order argument, or am I missing something else here?

Thank you in advance,

Andreas

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 7 years ago

    Hi Andreas,

    You may need to do:

    eff_cdf->X=20
    (abInvokeObjCdfCallbacks eff_cdf ?order (list "X"))
    eff_cdf->Y=30
    (abInvokeObjCdfCallbacks eff_cdf ?order (list "Y"))

    Unfortunately interdependent CDF parameters are evil and a big headache when trying to call callbacks procedurally.

    Calling the callbacks with the ?order set to one parameter at a time as above is not any more expensive than calling it with an order list with two parameters - so that seems fairly reasonable to me.

    Hope that helps,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • abompos
    abompos over 7 years ago in reply to Andrew Beckett

    Hello Andrew,

    Thanks for the input! Much appreciated!

    Regards,

    Andreas

    • 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