• 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. Digital Implementation
  3. How to get rectilinear core coordinates

Stats

  • Locked Locked
  • Replies 10
  • Subscribers 94
  • Views 19474
  • 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

How to get rectilinear core coordinates

Nataraja G
Nataraja G over 14 years ago

 we got die coordinates using

dbGet top.fPlan.boxes 

 

but how to get core boxes  ? 

 

thx

  • Cancel
Parents
  • BobD
    BobD over 13 years ago

    Hi Tom,

    Thanks for giving us all a reason to come back and revisit this issue after some time has passed and the tool has improved.

    dbShape is the command that debuted in 10.1 that makes this easier. Here's how you could use it to define a rectilnear partition that is coincident with the rectilinear shape that makes up all of the rows in the design. Say I have an "L" shaped design and the core to left/right/top/bottom is 5 microns. The rows get snapped (depending on preferences) to something like the M2 pitch horizontally and the standard cell rows vertically. If we want to get the box of each row:

    encounter 1> dbGet top.fplan.rows.box
    {5.28 5.04 94.38 10.08} {5.28 10.08 94.38 15.12} {5.28 15.12 94.38 20.16} {5.28 20.16 94.38 25.2} {5.28 25.2 94.38 30.24} {5.28 30.24 94.38 35.28} {5.28 35.28 94.38 40.32} {5.28 40.32 44.88 45.36} {5.28 45.36 44.88 50.4} {5.28 50.4 44.88 55.44} {5.28 55.44 44.88 60.48} {5.28 60.48 44.88 65.52} {5.28 65.52 44.88 70.56} {5.28 70.56 44.88 75.6} {5.28 75.6 44.88 80.64} {5.28 80.64 44.88 85.68} {5.28 85.68 44.88 90.72}

    Then we can merge these shapes with dbShape:

    encounter 11> dbShape [dbGet top.fplan.rows.box]
    {44.88 5.04 94.38 40.32} {5.28 5.04 44.88 90.72}

    dbShape has a lot of other functionality but when called here it can find a simple list of boxes that represent a list of shapes. It can also output polygons instead, but there's a dbSetObjFPlanBoxList command that can accept a list of rectangles to create a rectilinear shape so I'll use that.

    Notice this problem that comes up however:

    encounter 15> setObjFPlanBoxList Module i_a [dbShape [dbGet top.fplan.rows.box]]           
    No help is available for 'rdaGetBoxList'.
          You might have typed the command name incorrectly
          (command names are case sensitive), or this is an
          unknown or unsupported command.

    **ERROR: (ENCSYC-194):  Incorrect usage for command 'rdaGetBoxList'.

    What's happening is that setObjFPlanBoxList expects a flat list of coordinates rather than lists. If we flatten the list with "join", setObjFPlanBoxList successfully 

    encounter 16> setObjFPlanBoxList Module i_a [join [dbShape [dbGet top.fplan.rows.box]]]

    Looks like we need to improve setObjFPlanBoxLists's tolerance to accept list of lists and in the mean time improve the error messaging. Longer term it might also make sense to allow dbSet to set the "boxes" value directly. I'll check with our developers and push for improvements.

    Let us know if you have any comments or questions on this.

    Thanks!
    -Bob

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • BobD
    BobD over 13 years ago

    Hi Tom,

    Thanks for giving us all a reason to come back and revisit this issue after some time has passed and the tool has improved.

    dbShape is the command that debuted in 10.1 that makes this easier. Here's how you could use it to define a rectilnear partition that is coincident with the rectilinear shape that makes up all of the rows in the design. Say I have an "L" shaped design and the core to left/right/top/bottom is 5 microns. The rows get snapped (depending on preferences) to something like the M2 pitch horizontally and the standard cell rows vertically. If we want to get the box of each row:

    encounter 1> dbGet top.fplan.rows.box
    {5.28 5.04 94.38 10.08} {5.28 10.08 94.38 15.12} {5.28 15.12 94.38 20.16} {5.28 20.16 94.38 25.2} {5.28 25.2 94.38 30.24} {5.28 30.24 94.38 35.28} {5.28 35.28 94.38 40.32} {5.28 40.32 44.88 45.36} {5.28 45.36 44.88 50.4} {5.28 50.4 44.88 55.44} {5.28 55.44 44.88 60.48} {5.28 60.48 44.88 65.52} {5.28 65.52 44.88 70.56} {5.28 70.56 44.88 75.6} {5.28 75.6 44.88 80.64} {5.28 80.64 44.88 85.68} {5.28 85.68 44.88 90.72}

    Then we can merge these shapes with dbShape:

    encounter 11> dbShape [dbGet top.fplan.rows.box]
    {44.88 5.04 94.38 40.32} {5.28 5.04 44.88 90.72}

    dbShape has a lot of other functionality but when called here it can find a simple list of boxes that represent a list of shapes. It can also output polygons instead, but there's a dbSetObjFPlanBoxList command that can accept a list of rectangles to create a rectilinear shape so I'll use that.

    Notice this problem that comes up however:

    encounter 15> setObjFPlanBoxList Module i_a [dbShape [dbGet top.fplan.rows.box]]           
    No help is available for 'rdaGetBoxList'.
          You might have typed the command name incorrectly
          (command names are case sensitive), or this is an
          unknown or unsupported command.

    **ERROR: (ENCSYC-194):  Incorrect usage for command 'rdaGetBoxList'.

    What's happening is that setObjFPlanBoxList expects a flat list of coordinates rather than lists. If we flatten the list with "join", setObjFPlanBoxList successfully 

    encounter 16> setObjFPlanBoxList Module i_a [join [dbShape [dbGet top.fplan.rows.box]]]

    Looks like we need to improve setObjFPlanBoxLists's tolerance to accept list of lists and in the mean time improve the error messaging. Longer term it might also make sense to allow dbSet to set the "boxes" value directly. I'll check with our developers and push for improvements.

    Let us know if you have any comments or questions on this.

    Thanks!
    -Bob

    • 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