• 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. marking net/wire in layout by layer

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 143
  • Views 6404
  • 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

marking net/wire in layout by layer

RAGHU2634
RAGHU2634 over 6 years ago

Hi,

I want to have a  following functionality in layout  using skill & bindkeys .

1. select  a net/wire  for example  a net in  METAL5

2.On pressing  incremental bindkey  it should  mark/highlight the nets  connected   to METAL 6

3.On pressing  decremental bindkey  it should  mark/highlight the nets  connected  to METAL 4

Let me know the commands I can use to have the above functionality or suggest changes .

Thanks,

Raghu

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

    Hi Raghu,

    The Mark Net functionality doesn't (I think) have a stepping mode like this, whereas the Net Tracer in Virtuoso Layout Suite XL does (sort of). It has a toolbar for net tracer and in IC618 there's a "step" mode which is (sort of) like this. It allows you to step through the connections (I'm not sure it's quite per layer, but it may be good enough). It's covered partially in this video: https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1O0V000009ET1AUAW&pageName=ArticleContent but I would suggest that in IC618 you add the Window->Toolbars->Net Tracer and pick the Add/Remove step trace icon from the toolbar, and then you can click on a shape - see the initial highlights, then step through as it follows more connections.

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • RAGHU2634
    RAGHU2634 over 6 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks for the info. I tried few possibilities using leMarkNet() . It has optional keyword called  highlightIncrementally?  in the description but when Iam using this It says unrecognizable keyword. Help me through this if you have any idea.

    In extension to this just by  placing cursor(instead of selecting shape) on some layer can we read the layer description using skill ? I need this to use in IF clause to use in part of my script .

    Thanks again Andrew.

    Regards,

    Raghu

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to RAGHU2634

    Not sure what version you're using, but ?highlightIncrementally t works for me (in IC618 at least). However, I don't think it does what you want - all it does is mark the entire net in batches and show you in the CIW as it adds more shapes in batches:

    (LE-101007): Number of shapes processed by Mark Net: 10000...
    (LE-101007): Number of shapes processed by Mark Net: 30000...
    (LE-101007): Number of shapes processed by Mark Net: 60000...
    (LE-101007): Number of shapes processed by Mark Net: 80000...

    etc.

    If you just want to find the shape under the cursor, you could use dbShapeQuery or dbGetOverlaps with a bBox which consists of the point you're at twice (i.e. a zero-area rectangle). It's not that clear what your second question is really asking, I'm afraid.

    Regards,

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • RAGHU2634
    RAGHU2634 over 6 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks a lot.

    My second question is about getting the layer details(for eg: bbox of it ) hovering mouse over it without selecting.

    Thanks again,

    Raghu

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to RAGHU2634

    Are you aware of the Dynamic Selection Assistant (Window->Assistants->Dynamic Selection) which gives you a UI to find this information (not the bBox, but the layer)?

    Otherwise, this would be:

    procedure(CCFgetLayerInfoUnderCursor()
      let((pt overlaps)
        pt=hiGetCommandPoint()
        overlaps=dbGetOverlaps(geGetEditCellView() list(pt pt) t)
        foreach(shape overlaps
          when(shape~>lpp
            printf("Layer: %L bBox: %L\n" shape~>lpp shape~>bBox)
          )
        )
        t
      )
    )

    Put CCFgetLayerInfoUnderCursor() on a bind key and then hit the key over a shape or shapes in the layout window.

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to RAGHU2634

    Are you aware of the Dynamic Selection Assistant (Window->Assistants->Dynamic Selection) which gives you a UI to find this information (not the bBox, but the layer)?

    Otherwise, this would be:

    procedure(CCFgetLayerInfoUnderCursor()
      let((pt overlaps)
        pt=hiGetCommandPoint()
        overlaps=dbGetOverlaps(geGetEditCellView() list(pt pt) t)
        foreach(shape overlaps
          when(shape~>lpp
            printf("Layer: %L bBox: %L\n" shape~>lpp shape~>bBox)
          )
        )
        t
      )
    )

    Put CCFgetLayerInfoUnderCursor() on a bind key and then hit the key over a shape or shapes in the layout window.

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • RAGHU2634
    RAGHU2634 over 6 years ago in reply to Andrew Beckett

    thanks andrew,

    Raghu

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RAGHU2634
    RAGHU2634 over 6 years ago in reply to RAGHU2634

    Hi Andrew,

    This is working for shapes in current level . Can we get atleast layer info if the shapes are in other hierarchies as well ?

    Thanks,

    Raghu

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RAGHU2634
    RAGHU2634 over 6 years ago in reply to RAGHU2634

    ok Got it. We can specify stop level in the command options

    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