• 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. The criteria for getting shapes from abeLayerFromCellView...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 143
  • Views 3037
  • 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

The criteria for getting shapes from abeLayerFromCellView with a bBox argument

sbkuizlzl
sbkuizlzl 11 months ago

Hi all.

I'm using Virtuoso IC23.1-64b.main.453 and I am trying to find the coordinates of shapes drawn with a specific layer within a bounding box.

To do this, I used abeLayerFromCellView function with the bBox argument, but the result includes the partial shape which is abutted outside the bBox.

Inside the bBox, instances are hierarchically placed and the target shapes are drawn across multiple hierarchies.

I have the following questions about it;

1. What is the criteria for the shape retrieved from abeLayerFromCellView when the bBox argument is given?

2. Is the reason why not all attached shapes are retrieved related to the hierarchy?

3. Is there a way to get only the cooridnates of shapes exactly inside the bBox with abe? 

  • Cancel
  • p94todorov
    p94todorov 11 months ago

    Probably Andrew will chime in on points 1) and 2), but since I've observed this behaviour too I usually deal with it with dbLayerAnd processing:

    abeInit(cv ?doInterrupts t )

    foundShapes = abeLayerToCellView(abeLayerFromCellView(car(lpp) ?bbox searchBBox  ?purpose cadr(lpp) || "drawing") "y1" ?purpose "drawing" ?shapeIds t)

    abeDone()

    dummyRect = dbCreateRect(cv  "y2" searchBBox)

    targetShapes = dbLayerAnd(cv lpp foundShapes list(dummyRect))

    mapc('dbDeleteObject cons(dummyRect foundShapes)


    I am also really curious to understand the reason for the abeLayerFromCellview behaviour and implementation.

    Regards,
    Petar

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett 11 months ago in reply to p94todorov

    Petar,

    I believe the reason is that it is just doing a region query (similar to dbShapeQuery) which is more performant than forcing an and with the bBox too. That means that any shape that interacts with the bounding box would be included.

    I'd use abeLayerAnd to and it with the bBox - unfortunately there's no abeLayerFromPoints or similar (there's enhancement CCR 2812829 for this), so you would need to create a real temporary rectangle and then create a layer from that to do the and - this would be faster than using dbLayerAnd, especially if you don't need shapes for the result.

    Andrew

    • Cancel
    • Vote Up +2 Vote Down
    • Cancel
  • sbkuizlzl
    sbkuizlzl 11 months ago in reply to p94todorov

    Thank you for your reply, p94todorov and Andrew Beckett !

    As Andrew mentioned, if the function behaves similarly to dbShapeQuery internally, the result may be somewhat understandable.

    And it's reassuring to know that there are people like Peter who have experienced the same thing as me! Thank you for your answer, and I will try the suggested method.

    • 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