• 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 check if CDF-update is necessary?

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 17336
  • 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 check if CDF-update is necessary?

skillprogramme
skillprogramme over 12 years ago

Hi!

I have been using the scripts provided in the solution linked below for updating CDF parameters in cells and libraries with great success. However, I am often interested in checking if a cell does require a CDF update before actually performing the update, since the update requires "append" mode and is rather time consuming (especially when running on a large library). Is there any good way to utilize this script/other functionality to check if an instance in a cell requires a CDF-update without doing the actual update? It can be quite dangerous to run the script on a whole library with edit and not knowing which parameters that changed in the end. 

My hack-around for this has so far been to dump all CDF parameters to a log file, run the script, dump the parameters again and do some parsing and comparison of these logs. I would however prefer something simpler.

Best regards,

Max 

 

Related solution:

http://support.cadence.com/wps/myportal/cos/COSHome/viewsolution/!ut/p/c5/dY1bDoIwFAXX4gruLUotn9gIQg1EIAr8kKrgC9rGt6xeXIBzPicnAyUMU_J5Osj7SSvZQg4lrYjlcyIm6MQ8YhgwGolkPccB2PwetMI_uAgFlNOftyzC0PG9bIYBF0HIpmMLBYW10tduKGWQ46RKz2jCLB2_Prt-STS7idREZFULL25UG5YX-9HYbV10Jtma5K2lfzxKP3wUNN7Llt-4G9tN7-AIooXuajAX1XvMHX0B7QyI-A!!/dl3/d3/L2dBISEvZ0FBIS9nQSEh/ 

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

    Hi Max,

    There's nothing that really does this. Potentially you could use the functions in the code to run the callbacks on the "effective lookalike" CDF and then compare the results before applying them. In other words, you'd do something like:

    cdf=cdfGetInstCDF(instId)
    effCDF=CCScreateEffectiveCDFLookalike(cdf t)
    CCSinvokeObjCdfCallbacks(effCDF) ; add other args as needed

    then you can loop over the parameters of both the cdf and effCDF and see if there were any differences - this way it doesn't really apply any changes - just calls the callback in memory only. This approach will only work if you can get away with using this effective lookalike CDF; if you have CDF callbacks that do strict type checking on their arguments, it won't work.

    Note the above is not from testing anything - it's from a quick look at the code (which was written by me, so I think it will work). I have used a similar trick in the past when building hierarchical pcells, where I needed to call the CDF callbacks within a pcell. For speed I wanted to call all the callbacks up front, and then apply all the derived parameters to the pcell instance, to avoid it re-evaluating the pcell for each combination that was found as it iterates through all the parameters.

    Regards,

    Andrew.

     

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

    Hi Max,

    There's nothing that really does this. Potentially you could use the functions in the code to run the callbacks on the "effective lookalike" CDF and then compare the results before applying them. In other words, you'd do something like:

    cdf=cdfGetInstCDF(instId)
    effCDF=CCScreateEffectiveCDFLookalike(cdf t)
    CCSinvokeObjCdfCallbacks(effCDF) ; add other args as needed

    then you can loop over the parameters of both the cdf and effCDF and see if there were any differences - this way it doesn't really apply any changes - just calls the callback in memory only. This approach will only work if you can get away with using this effective lookalike CDF; if you have CDF callbacks that do strict type checking on their arguments, it won't work.

    Note the above is not from testing anything - it's from a quick look at the code (which was written by me, so I think it will work). I have used a similar trick in the past when building hierarchical pcells, where I needed to call the CDF callbacks within a pcell. For speed I wanted to call all the callbacks up front, and then apply all the derived parameters to the pcell instance, to avoid it re-evaluating the pcell for each combination that was found as it iterates through all the parameters.

    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