• 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. Gettting the corrdinates to the top level in SKILL

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 144
  • Views 15576
  • 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

Gettting the corrdinates to the top level in SKILL

Kapil
Kapil over 15 years ago

Please give me some idea as to how we can get the corrdinates of the bBox lying down the hierarchy with respect to the top level coordinate reference ?? using SKILL

Regards,

Kapil

  • Cancel
  • Quek
    Quek over 15 years ago

    Hi Kapil

    You can use dbTransformBBox. Suppose "x" is the id of a lower hierarchical instance. You can do it as follows:

    dbTransformBBox(x~>bBox x~>transform)


    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 15 years ago

    Actually, the bBox of an instance is already transformed. The bBox of the master of the instance is not. Thus, the following two values should be the same (Supposing inst is the database id of the instance):

    box1 = inst~>bBox
    box2 = dbTransformBBox(inst~>master~>bBox inst~>transform)
    box1 == box2

    Basically, to understand how to translate the coordinates up the hierarchy, you need to know a few things and a few commands.

    A transform is a list of information about an instance in the hierarchy. It consists of the xy coordinate, rotation and magnification of an instance in the cell that it is placed.

    Here is a sample transform:  list(list(89.0 275.5) "R90" 1.0)

    You can access the transform of an instance using:  inst~>transform

    Any shape or instance one level down in that instance can have its points transformed to top level coordinates using:

    dbTransformPoint(pt inst~>transform)
    or
    dbTransformBBox(bBox inst~>transform)

    When you have multiple levels of hierarchy, you will need to concatenate the transforms from each instance in the hierarchy path to get one transform. You can do this with:

    dbConcatTransform(transform1 transform2)

    Start with the lowest transform in the hierarchy and concat it with the next level transform. Take the new transform and concat it with the next higher level transform and repeat this until you get to the top level. You can then transform points from objects within the lowest level instance all the way to the top.

    Two other useful commands for interactive use when editing in place are geEditToWindowPoint and geWindowToEditPoint.

    geEditToWindowPoint(
    w_windowId
    l_editCellViewPoint
    )
    => l_windowCellViewPoint

    Translates coordinate values when you are using edit in place. geWindowToEditPoint applies the top-level cellview's coordinates to the cellview being edited; geEditToWindowPoint does the reverse.

    Derek

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 15 years ago

    Hi Kapil,

    Also you can use geTransformUserBBox() similar to dbTransformBBox(). Also, you may be interested in concatenating transforms if you are processing more than one level of hierarchy, so for this there is a dbConcatTransform().

     geTransformUserBBox(
      l_bbox
      l_transform
     )
    => l_bBox_new

     dbConcatTransform(
      l_list1
      l_list2
     )
    => l_list_new

     

    Nice answers Derek by the way.

    Regards,

    Lawrence.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Kapil
    Kapil over 15 years ago

    Thanks a lot Quek,Derek and Lawrence.ill try out the functions and be back .

    Regards,

    Kapil

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • lrl12skdev
    lrl12skdev over 15 years ago

     Hi,

     there is also the function geWindowToEditPoint if you wish to process your skillcode while in EIP mode.

     BR,

    rence

    • 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