• 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. Descending into a specific instance using Virtuoso Edit...

Stats

  • Locked Locked
  • Replies 11
  • Subscribers 143
  • Views 21204
  • 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

Descending into a specific instance using Virtuoso Edit-In-Place

DannyRitt
DannyRitt over 9 years ago

Hello,


At a TOP level layout block there are many instances that overlaps each other. Sometimes it can get tricky to select a specific cell and Edit In Place into it. I am looking for a SKILL script to click anywhere on the TOP level, it will pop a window with the instances names underneath. Upon selecting the instance, it will Edit-In-Place into it.

Any directions or tips are greatly appreciated.

Thanks,

Danny

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

    Unknown said:
    leEditInPlace( hiGetCurrentWindow() list(list(cv~>geGetWindowCellView() 0 0 0) list(selectiveEIPForm->viewInsts->value 0 1 2) ) )

    There are four problems with this:

    1. The first sublist you're trying to use cv~>geGetWindowCellView() which is going to fail - you can't start from a cellView id and then call a function like that.
    2. The list which is the second argument is expecting to have instance id information. The first sublist has the cellView you're starting from, not the instanceId.
    3. The second sublist you have the name of the instance, not the instanceId (which is a database object)
    4. You are asking it to descend into a particular element of a mosaic - the second row and third column (they're zero-indexed so that's why 1,2 means 2nd and 3rd). I assume that's just because you saw this in the documentation example...

    Anyway, I think you want this (untested, but I think this is roughly it):

    leEditInPlace(hiGetCurrentWindow() list(list(dbFindAnyInstByName(geGetEditCellView() car(selectiveEIPForm->viewInsts->value)) 0 0 0)))

    I think the car is needed because the listbox will have a list of the instance names (you can check this in the CIW after selecting the instances you want).

    Anyway, something like that...

    Regards,

    Andrew.

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

    Unknown said:
    leEditInPlace( hiGetCurrentWindow() list(list(cv~>geGetWindowCellView() 0 0 0) list(selectiveEIPForm->viewInsts->value 0 1 2) ) )

    There are four problems with this:

    1. The first sublist you're trying to use cv~>geGetWindowCellView() which is going to fail - you can't start from a cellView id and then call a function like that.
    2. The list which is the second argument is expecting to have instance id information. The first sublist has the cellView you're starting from, not the instanceId.
    3. The second sublist you have the name of the instance, not the instanceId (which is a database object)
    4. You are asking it to descend into a particular element of a mosaic - the second row and third column (they're zero-indexed so that's why 1,2 means 2nd and 3rd). I assume that's just because you saw this in the documentation example...

    Anyway, I think you want this (untested, but I think this is roughly it):

    leEditInPlace(hiGetCurrentWindow() list(list(dbFindAnyInstByName(geGetEditCellView() car(selectiveEIPForm->viewInsts->value)) 0 0 0)))

    I think the car is needed because the listbox will have a list of the instance names (you can check this in the CIW after selecting the instances you want).

    Anyway, something like that...

    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