• 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. Using SKILL functions from within the Library Manager

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 143
  • Views 14048
  • 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

Using SKILL functions from within the Library Manager

Matthew CG
Matthew CG over 4 years ago

Hello,

I found a useful post from a few years ago regarding adding a menu to the Library manager.

https://community.cadence.com/cadence_technology_forums/f/custom-ic-skill/37705/callback-function-for-library-manager-menu-item

From this I'm trying to create a routine which will change a parameter (viewSubType) on a layout view and I am hoping to do that by selecting the view and then envoking my routine from the Library Manager menu.

I specified my procedure in the .cdsinit file and the menu is defined in the cdsLibMgr.il.

procedure(myLmgrMenuItemCallback(str1 str2 str3 str4 str5 str6)
printf("%s %s %s %s %s %s\n" str1 str2 str3 str4 str5 str6)

cv=ddGetObj(str1 str2 str3 nil nil "a")
cv~>viewSubType="maskLayoutL"

The first part of the routine works fine and I see the name of the layout in question displayed in the Virtuoso window (CIW). However the ddGetObj operation does not seem to work. I receive an error that cv is nil.

Are all SKILL functions available within the Library Manager as I think it's a little different than the standard windows under Virtuoso? I'm not sure that I'm correctly defining my procedure so that it is accessible from the Library Manager.

Any advice or pointers for documents that I should look at would be gratefully received.

Many thanks,

Matthew Cordrey-Gale

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

    Hi Matthew,

    The callback function is called in Virtuoso, so should be able to do this. Note that your code isn't going to be quite right because your approach would be setting the viewSubType in the cellView property bag, not in the cellView database itself (it would need to do a dbOpenCellViewByType to get the cellView). That said, I'm not sure why it would be getting nil for the cv from ddGetObj? 

    Happy for you to ping me an email and I can always have a quick webex with you to look (as I said, you'll need to change it to use dbOpenCellViewByType() instead of the ddGetObj anyway, and then you'll need to do a dbSave after setting the property).

    Andrew.

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

    Hi Matthew,

    The callback function is called in Virtuoso, so should be able to do this. Note that your code isn't going to be quite right because your approach would be setting the viewSubType in the cellView property bag, not in the cellView database itself (it would need to do a dbOpenCellViewByType to get the cellView). That said, I'm not sure why it would be getting nil for the cv from ddGetObj? 

    Happy for you to ping me an email and I can always have a quick webex with you to look (as I said, you'll need to change it to use dbOpenCellViewByType() instead of the ddGetObj anyway, and then you'll need to do a dbSave after setting the property).

    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