• 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. Error of refresh CDF using abConvertComponentParams.il and...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 16035
  • 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

Error of refresh CDF using abConvertComponentParams.il and abInvokeCdfCallbacks.il

George Qin
George Qin over 5 years ago

Hi Andrew,

I am using your skill file "abConvertComponentParams.il" and "abInvokeCdfCallbacks.il" in order to refresh CDF of all instance in schematics of my library "mylibrary".

These are my command:

I run these command in Cadence virtuoso IC5141. My process is NSC90nm.

This is my config file:

But I finally get Error information:

How can I solve this problem?

  • Cancel
Parents
  • George Qin
    George Qin over 5 years ago

    I tried your skill file successfully in IC616, Refreshing CDF of umc55nm few month ago. But this time failed

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to George Qin

    This is because the callback functions are doing type checking, and so you will need to use actual CDF objects rather than the default behaviour which is to use what I call "effective CDF lookalike" objects. You can do that by specifying ?useInstCDF t in the arguments to abInvokeCdfCallbacks or in the config file use:

    runCallbacks (?useInstCDF t)

    rather than runCallbacks t.

    Normally it's OK to use instance CDF rather than cell CDF (I don't think I've ever seen a case where the CDF callbacks require cell CDF (usually because they check cdfgData->id->... within the code) and they do type checking of the arguments to ensure that the object passed in is genuinely a CDF object (rather than my fake object). That would be extraordinarily unlucky.

    It will have worked for the other technology you used because the callbacks there were not written to do type checking (and to be honest in this case they are checking the type with the type character "o" which means other, so I do wonder why somebody has bothered doing that as "other" is not strictly just for CDF objects; if they'd have used "g" it would have been OK).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to George Qin

    This is because the callback functions are doing type checking, and so you will need to use actual CDF objects rather than the default behaviour which is to use what I call "effective CDF lookalike" objects. You can do that by specifying ?useInstCDF t in the arguments to abInvokeCdfCallbacks or in the config file use:

    runCallbacks (?useInstCDF t)

    rather than runCallbacks t.

    Normally it's OK to use instance CDF rather than cell CDF (I don't think I've ever seen a case where the CDF callbacks require cell CDF (usually because they check cdfgData->id->... within the code) and they do type checking of the arguments to ensure that the object passed in is genuinely a CDF object (rather than my fake object). That would be extraordinarily unlucky.

    It will have worked for the other technology you used because the callbacks there were not written to do type checking (and to be honest in this case they are checking the type with the type character "o" which means other, so I do wonder why somebody has bothered doing that as "other" is not strictly just for CDF objects; if they'd have used "g" it would have been OK).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • George Qin
    George Qin over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks for your reply.

    I already change it in config file, but still get this Error:

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • George Qin
    George Qin over 5 years ago in reply to Andrew Beckett

    Sorry, I forgot to delete the space between "runCallbacks" and "(", now there is no Error.

    But now the schematic still can not display the real value of resistor (the value displayed on schematic is 701.296, not same as 76.2K in property). It seems the CDF refresh can not work.

    How can I solve it?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to George Qin

    Are you saying you changed the configuration entries to this? : 

    (nil
      fromLib "90mp"
      fromCell "nmos_hvt"
      toLib "90mp"
      toCell "nmos_hvt"
      runCallbacks(?useInstCDF t)
    )

    i.e. no space between the runCallbacks and the open parenthesis. If you do that, it won't actually take any notice of the setting at all, and won't run the callbacks. I wouldn't expect the errors you are seeing if you put the space there.

    I was about to ask which versions of abInvokeCdfCallbacks and abConvertComponentParams you are using? There's a comment at the top with an "SCCS" line which gives the version number.

    However, I realised that you are not actually running any component conversion at all - it would make more sense to run abInvokeCdfCallbacks(geGetEditCellView() ?useInstCDF t) on the current cellView. Let's see if that works, and then I can tell you how to run it on an entire library. Using the abConvertComponentParams code just to visit everything in the library isn't a particularly good way of doing this...

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • George Qin
    George Qin over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    1.I already changed the configuration entries to this. No space between the runCallbacks and the open parenthesis. And got the error snapshot above.

    2.The version number of two files:

    SCCS Info: @(#) abConvertComponentParams.il 05/23/05.12:00:00 1.

    SCCS Info: @(#) abInvokeCdfCallbacks.il 12/03/08.15:27:36 1.12

    3.I tried to run abInvokeCdfCallbacks(geGetEditCellView() ?useInstCDF t) in CIW, but it does not work. (The schematic behind CIW is in edit mode.)

    How can I solve that?

    • 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