• 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. loading pcell callbacks

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 142
  • Views 14832
  • 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

loading pcell callbacks

archive
archive over 18 years ago

Hi all,

Is there a way to load pcell callbacks for outer-Cadence environments (i.e Virtuoso Custom Router, Assura LVS, etc.), other than including a libInit.il file in the library where the pcells reside?

I was expecting that compiling the code into a context will do the work, but it doesn't seem to.

Thanks


Originally posted in cdnusers.org by mims
  • Cancel
  • archive
    archive over 18 years ago

    I assume by "pcell callbacks" you mean "functions used within pcells" (there's no such thing as a pcell callback).

    Any user-defined functions referenced by a pcell _should_ be loaded within the library's libInit.il ; that's the right way to do it. Of course, you may choose to compile the code into a context file and then load that from the library's libInit.il if you prefer.

    This approach has the advantage of working with all interfaces. Any other approach would require something different for each tool - and some don't really have a SKILL startup file. So the libInit.il is the universal way of doing this.

    Why don't you want to do this within the libInit.il? That's what it's for, after all!

    Regards,

    Andrew.


    Originally posted in cdnusers.org by adbeckett
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    I was just thinking what happens if the libInit.il gets lost somehow... Because the code is loaded in Cadence and the cdf callbacks (thanks about that) are defined in Cadence, but the only way to see that the file is missing if it is is that the other tools get broken.

    Thanks
    Maria.


    Originally posted in cdnusers.org by mims
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 18 years ago

    Well, don't load the code and cdf callbacks in the .cdsinit; load them in the libInit.il. There is no point loading them from the .cdsinit if they're loaded from the libInit.il - they'll just get loaded twice.

    That way if the libInit.il goes missing (not sure why that would happen), it will break everywhere... (DFII included).

    Regards,

    Andrew.


    Originally posted in cdnusers.org by adbeckett
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    Is libInit.il for loading procedures only or can we do anything else with it.
    I want to load some other display.drf using drLoadDrf command. but this doesnt seem to work.
    I simply placed drLoadDrf(file) in libInit.il


    Originally posted in cdnusers.org by prahladh
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • archive
    archive over 17 years ago

    You should be able to do this. You need to be careful not to use functions which are not "pcell safe" because otherwise you can have problems with stream out or Assura (for example) which don't have access to the full set of DFII functions.

    But doing:

    when(isCallable('drLoadDrf)
    drLoadDrf(file)
    )

    should work - you need to ensure that the file path is correct of course. Also, the libInit.il only gets loaded once per session remember, so if it has already been loaded, it won't get loaded again...

    Andrew.


    Originally posted in cdnusers.org by adbeckett
    • 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