• 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. skill code to find floating vias in layout

Stats

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

skill code to find floating vias in layout

pham777
pham777 over 12 years ago

when I do lvs verification, the one I hate most is the short causing by floating vias in sub block(sub block is lvs/drc cleaned), especially

the sub-block has irregular shape (like a squid, spreading out all over to other blocks, for example, clock buffers..). I wonder if someone

can write a skill code to find floating vias in layout (floating vias means vias not connected to any nets or any instances).

I'm using cadence ic615.06.15.151

Thanks,

ha

  • Cancel
Parents
  • theopaone
    theopaone over 12 years ago

    Both of these checks would be better done by a DRC but here is how you would do it in SKILL:

    1. Floating vias

    In your cellView you would find all the via placements.
    For each placement use dbGetTrueOverlaps on each routing in the via using the via bounding box. You would search 32 levels.
    If the only shape returned by dbGetTrueOverlaps is in the via, you have a via that is floating on that layer. If running dbGetTrueOverlaps on both layers results only in the shapes in the via, you have a floating via.

     2. Layer Intersection

    On the whole cellView use dbGetTrueOverlaps to find all the shapes on each of your layers.
    The dbLayer functions only work with shapes in the current cellView. The dbGetTrueOverlaps return value include hierarchical shapes which you have to copy into the current cellView while transforming the points based on the origin/rotation of the hierarchical instances. I would use a scratch cell so I am not messing with the data in my design. You have to copy all the shapes, not just the hierarchical ones. dbCopyFig supports copying to a different cellView while applyinig a transform (origin/orientation).
    Use dbLayerAnd on the shapes, ANDing between the two layers.
    Generate markers based on the results of the AND in your design cellView to show the error.

    dbGetTrueOverlaps is very powerful and you should get familiar with that function.

    Ted

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • theopaone
    theopaone over 12 years ago

    Both of these checks would be better done by a DRC but here is how you would do it in SKILL:

    1. Floating vias

    In your cellView you would find all the via placements.
    For each placement use dbGetTrueOverlaps on each routing in the via using the via bounding box. You would search 32 levels.
    If the only shape returned by dbGetTrueOverlaps is in the via, you have a via that is floating on that layer. If running dbGetTrueOverlaps on both layers results only in the shapes in the via, you have a floating via.

     2. Layer Intersection

    On the whole cellView use dbGetTrueOverlaps to find all the shapes on each of your layers.
    The dbLayer functions only work with shapes in the current cellView. The dbGetTrueOverlaps return value include hierarchical shapes which you have to copy into the current cellView while transforming the points based on the origin/rotation of the hierarchical instances. I would use a scratch cell so I am not messing with the data in my design. You have to copy all the shapes, not just the hierarchical ones. dbCopyFig supports copying to a different cellView while applyinig a transform (origin/orientation).
    Use dbLayerAnd on the shapes, ANDing between the two layers.
    Generate markers based on the results of the AND in your design cellView to show the error.

    dbGetTrueOverlaps is very powerful and you should get familiar with that function.

    Ted

    • 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