• 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. Merging prBoundary

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 143
  • Views 15180
  • 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

Merging prBoundary

Hans Krueger
Hans Krueger over 6 years ago

Is there a way to merge prBoundary objects non-interactively? I understand that the prBoundary is rather an object then a shape and therefore the leMergeShapes command would not work.

Thanks

  Hans

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    Hi Hans,

    This is a slightly confusing question, because you can't create more than one prBoundary object (even interactively). If you try to create a second one (via Create->P&R Objects->P&R Boundary) it asks you if you want to replace the existing one.

    You could of course generate a new point list by using something like dbPointArrayOr to generate a merged point list from a number of candidate shapes and then using dbSetBoundaryEdge to update the point list of your existing prBoundary?

    It's unclear what exactly you're trying to do and where these "objects" are coming from that you wish to merge together...

    Regards,

    Andrew.

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

    Hi Andrew,

    thank you for your quick response.I should have explained the background of my question im more detail:

    I use a script to automatically generate a layout from a number of different layout instances which all have individual prBoundary objects. I was wondering if it would be possible to propagate the individual prBoundary objects of these instances to the higher level layout and merge them there..

    Kind regards

      Hans

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

    Hi Hans,

    You could create polygons on a dummy layer based on the points from the prBoundary object in the underlying cells (each transformed using dbTransformPointList) and then merge those. Or get the transformed point lists and merge using dbPointArrayOr. So getting the points with something like:

    points=dbTransformPointList(inst~>master~>prBoundary~>points inst~>transform)

    where inst is the instance id of the cell that's instantiated. However, I'm not sure that merging them is quite what you want - you presumably want some kind of convex hull around all the points to find the rectilinear boundary - or it may be simpler just to produce a rectangular box computed as the overall bounding box? You can't have multiple prBoundaries, so if the prBoundaries you're promoting don't overlap, nothing would merge - and then you'd not be able to create the prBoundary because you can only have a single shape.

    Regards,

    Andrew.

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

    Hi Andrew,

    I will try your proposed solution to use a dummy layer. The prBoundary objects of the underlying cells all overlap such the dbPointArrayOr should give me the shape that I want. A simple rectangular shape would not have worked in my case because of some requirements of the digital design flow my macro will be used in.

    Thank you for your help!

      Hans

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

    Hi Hans,

    Good! If you're going to use dbPointArrayOr then you don't need to create a dummy layer either - you can just collect the transformed point lists and generate the or-ed point list and use that to generate the top level boundary.

    Andrew

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

    Even better!.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