• 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 cell - skill function

Stats

  • Locked Locked
  • Replies 18
  • Subscribers 143
  • Views 8767
  • 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 cell - skill function

swdesigner
swdesigner over 14 years ago

I currently bind my key to call schHiDescend, and work on the form.

 

Is there a way to bypass the form and call a function with the name of an instance in the current cellview to descend into it?

 

Thanks

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago
    Do the descend edit with nothing selected, and then hit F3. On the resulting form, pick "query view name list". From then onwards, all descends will pick the view in the config, or in the view list in the schematic editor options form - without raising a form.

    There's a cdsenv:

    envSetVal("schematic" "descendTarget" 'string "use viewNameList")

    To set this by default.

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • swdesigner
    swdesigner over 14 years ago
    Hi, My initial post was confusing. I want to avoid interacting with the form... so, is there a skill function I can use that takes the name of an instance and descends into that instance in the current cellview?

    Currently, the way I'm doing it is getting skill to interact with the form.

    My ultimate goal is to "save" my position when I Return To Top and hit another bindkey to return to the depth I was previously.

    Debugging top-level simulations, I traverse hierarchies a lot. Returning To Top is a bindkey - because that's easy - on the menu. Going the other way is hard - and I'd like to be able to do it..

    Right now, the only thing I can think of is more form interaction - each time I descend (which I always do using my bindkey, BTW), I will save the name of the instance, maybe using geGetSelSet or something, on a stack, and when I Return to Top, I have my "URL". When I want to "Return to Bottom", I'll have to process each instance.

    It can be done, I just want the path of least resistance:) If I can avoid form interaction, I'd like to do it.

    Thanks!
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 14 years ago

    Get your current location in the hierarchy with:

    geGetInstHierPath(hiGetCurrentWindow())

    Then try geSwitch or gePush to come back down.

    Derek

    geSwitch(
    w_windowId
    t_accessMode
    d_instId
    x_iteration
    x_row
    x_col
    [ g_cancel ]
    )
    => t / nil
    Switches into an instance.
     
    gePush(
    w_windowId
    t_accessMode
    d_instId
    x_iteration
    x_row
    x_col
    [ g_cancel ]
    )
    => t / nil
    Pushes into an instance.
     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 14 years ago

    Hi,

    I think that you might be able to use the dePush() function for performing a descend edit/read with no form or other user interaction required. For the schematic environment, each of the descend functions are schHiDescend.* (the "Hi" secondary prefix indicates that the function has a Human Interface, perhaps a form, and so would not meet your needs). There is a deReturn() function, and also geReturn() and geReturnToLevel() functions.

    Hopefully this will help you in your task.

    Best regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • swdesigner
    swdesigner over 14 years ago
    Perfect. Thank you both. I'm sure this will work. Thanks!
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • swdesigner
    swdesigner over 14 years ago
    One more thing I'm planning.. (in case you might already have the answer) I don't know how to make text (notes) on a symbol unselectable when instantiated. The resulting annoyance is that, when viewing a schematic with many instances, when intending to select an instance, one clicks on the text on the symbol and selects that instead. What I'd like to do is rig my descend-read bindkey to still descend into the instance correctly - because the user's intention is clear. There should be a way to derive the instance name from the selected text. Any clues will be greatly appreciated. Thanks!
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • swdesigner
    swdesigner over 14 years ago
    I tried dePush, I must be doing something wrong. I have a schematic open, there's an instance called "xtmux". Following the example for dePush, I did (in the CIW) myFileSpec = list( 'instanceName "xtmux" 'viewNameList "schematic symbol") returns (instanceName "xtmux" viewNameList "schematic symbol") Then I did dePush( myFileSpec window(11) "read" ) but this just pops up the Open File form.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 14 years ago
    This needs to be a disembodied property list:

    myFileSpec = list(nil 'instanceName "xtmux" 'viewNameList "schematic symbol")

    You missed out the leading nil.

    With that, it should work.

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 14 years ago

    There is a selection filter in schematics for making the labels on a symbol unselectable. This is under the Options->Select Filter menu item at the bottom of the form. These settings can be saved in your .cdsenv.

    To make all instance objects unselectable, try this:
    envSetVal("schematic" "schematicSelectFilter" 'string "allSchObj")

    If you want instance pins selectable, try this:
    envSetVal("schematic" "schematicSelectFilter" 'string "allSchObj instancePins")

    This can be put in your .cdsenv like this:
    schematic       schematicSelectFilter   string  "allSchObj"

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • swdesigner
    swdesigner over 14 years ago

    Thanks, that's the easier route.. I'll just use that.

     Thanks!

    • 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