• 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. reduce left and right side of poly separately

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 142
  • Views 13594
  • 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

reduce left and right side of poly separately

prandi
prandi over 12 years ago

 Hi,

My aim is reduce the size of poly on both left and right sides separately.

Say I want to reduce the left side of poly by 5nm and right side of poly by 3 nm,Is there any way of doing it using skill?

I tried using dbLayerSize..But it reduces the poly on both the sides equally..So,Is there any command in skill where-in you have a choice of reducing left/right side seperately.(Here, poly includes poly of both rect and polygon shapes)

 

 

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

    One quick thought as to how you could do this assymmetric sizing:

    1. Foreach polygon, find the bBox (it's an attribute on the shape itself)
    2. Looking along the point list, you can identify points which are on the top or bottom edge (because the y-coordinates will match the yCoord(upperRight(bBox)) or yCoord(lowerLeft(bBox))).
    3. From this, you should be able to determine which points form the left or right edges, because they will start from the smaller xCoord on the top to the smaller xCoord on the bottom (and similar for the right side).
    4. Any points on the left side you could update the xCoord to subtract the shift you want, and similarly for the right.
    5. The resulting point list could then be updated on the polygon.

    Needs a bit of manipulation of the point list, but it shouldn't be too difficult if the polygons are reasonably consistent.

    So you don't even need to use the dbLayer.* functions in this case.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    One quick thought as to how you could do this assymmetric sizing:

    1. Foreach polygon, find the bBox (it's an attribute on the shape itself)
    2. Looking along the point list, you can identify points which are on the top or bottom edge (because the y-coordinates will match the yCoord(upperRight(bBox)) or yCoord(lowerLeft(bBox))).
    3. From this, you should be able to determine which points form the left or right edges, because they will start from the smaller xCoord on the top to the smaller xCoord on the bottom (and similar for the right side).
    4. Any points on the left side you could update the xCoord to subtract the shift you want, and similarly for the right.
    5. The resulting point list could then be updated on the polygon.

    Needs a bit of manipulation of the point list, but it shouldn't be too difficult if the polygons are reasonably consistent.

    So you don't even need to use the dbLayer.* functions in this case.

    Andrew.

    • 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