• 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. how to get point of layer that i want in window cell vi...

Stats

  • Replies 5
  • Subscribers 148
  • Views 700
  • Members are here 0

how to get point of layer that i want in window cell view

Noobnoob
Noobnoob 1 month ago

Hello, i am sorry for my English skill.

i am noob for cadence skill language.

As the title says, in window cell view, i want to know point(coordinate) of layer i want

i made a cell named "DECAP" and i placed "DECAP" as mosaic ...

Poly layers is in different hierarchy.

in order to find out all point of Poly layers, i made a script by using skill language...

Script :

wcv = geGetWindowCellView()
overlaps = dbGetTrueOverlaps(wcv wcv~>bBox list("POLY" "drawing") 32 t)

transform = nil
temp = nil
label = nil

foreach(overlap overlaps
transform = append( transform list(dbGetInstTransform(overlap)) )
);foreach
foreach(i transform
temp = append( temp list(nthelem(1 i)) )
);foreach

Result :

((4.2 4.2) "R0" 1.0)
((4.2 4.2) "R0" 1.0)
((4.2 4.2) "R0" 1.0)
((12.2 4.2) "R0" 1.0)
((12.2 4.2) "R0" 1.0)
((12.2 4.2) "R0" 1.0)
(((db:0x1fa1cc9b 0 0) db:0x1fa1ada3)
((db:0x1fa1cc9b 0 0) db:0x1fa1add4)
((db:0x1fa1cc9b 0 0)
(db:0x1fa14b9a db:0x1fa14ca0)
)
((db:0x1fa1cc9b 0 1) db:0x1fa1ada3)
((db:0x1fa1cc9b 0 1) db:0x1fa1add4)
((db:0x1fa1cc9b 0 1)
(db:0x1fa14b9a db:0x1fa14ca0)
)
)

i don't know meaning of (4.2 4.2), (12.2 4.2) ... as result of dbGetInstTransform.

please help me, i want to find out point of poly layer in different hierarhy, in mosaic cell... 

  • Cancel
  • Sign in to reply
Parents
  • Noobnoob
    Noobnoob 1 month ago

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 1 month ago in reply to Noobnoob

    The return value of dbGetInstTransform is the transformation (i.e. offset, rotation, magnification tuple) needed to transform the shape to the top-level. The bit you're missing is to do the transformation. Rather than appending those lists (which is inefficient and doesn't really help you), you can process the overlaps this way:

    procedure(CCFgetHierPathShape(overlap)
      if(listp(overlap) then
        CCFgetHierPathShape(cadr(overlap))
      else
        overlap
      )
    )

    polyBBoxes=foreach(mapcar overlap overlaps
      dbTransformBBox(
        CCFgetHierPathShape(overlap)~>bBox
        dbGetInstTransform(overlap)
      )
    )

    Note, this is assuming that the shapes are rectangles (if polygons, you'll get the transformed bounding boxes of each shape regardless of the actual shape).

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett 1 month ago in reply to Noobnoob

    The return value of dbGetInstTransform is the transformation (i.e. offset, rotation, magnification tuple) needed to transform the shape to the top-level. The bit you're missing is to do the transformation. Rather than appending those lists (which is inefficient and doesn't really help you), you can process the overlaps this way:

    procedure(CCFgetHierPathShape(overlap)
      if(listp(overlap) then
        CCFgetHierPathShape(cadr(overlap))
      else
        overlap
      )
    )

    polyBBoxes=foreach(mapcar overlap overlaps
      dbTransformBBox(
        CCFgetHierPathShape(overlap)~>bBox
        dbGetInstTransform(overlap)
      )
    )

    Note, this is assuming that the shapes are rectangles (if polygons, you'll get the transformed bounding boxes of each shape regardless of the actual shape).

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • 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.

© 2026 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information