• 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 Design
  3. Automatic via placement for power grid

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 126
  • Views 16538
  • 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

Automatic via placement for power grid

Wonyoung
Wonyoung over 13 years ago

Hello, 

In Cadence Virtuoso, is there a way to draw a metal for power/gnd and have vias automatically placed to connect the metal to the power grids of sub-blocks? For example, I have multiple sub-blocks that uses up to M4, and have M5 power grids passing above the sub-blocks. I was wondering if I can just label the power/gnd nodes in the sub-blocks and somehow automatically generate vias between M4-M5 to connect the sub-block power/gnd to M5 power grids. I am currently using Cadence 6.1.5. 

 Thank you very much.

 Wonyoung 

  • Cancel
  • Quek
    Quek over 13 years ago

    Hi Wonyoung

    "autoVia" function from IC615 does work across hierarchy. You can do it as follows:

    a. Press "o" to invoke create-via form
    b. Select "auto" mode at the top of the form
    c. Enable "Check shape connectivity" option
    d. Use middle-mouse button to drag an area for autovia to operate

    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Wonyoung
    Wonyoung over 13 years ago

    Hi Quek,

    Thanks for your reply! I tried what you suggested, but when I enable "Check shape connectivity" the vias are not placed. When I disable that option, the vias are placed in every intersection within the area that I drag with my middle mouse button. My questions are:

    1) Is it okay to leave the "check shape connectivity" option disabled? I was wondering what this option is for. 

    2) Is there a way to create vias in only certain metal intersections? I tried putting labels on all of my wires (i.e. VDD, GND) and listed VDD GND on the "Net Name" or "Only for specified net" options, but that created vias in every metal intersection within the area I dragged with my middle-mouse button. I want to create vias only when two VDD metals or two GND metals intersect, not when VDD and GND metals intersect, to avoid VDD/GND short when creating a VDD/GND grid. 

    Thank you very much!

    Wonyoung 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 13 years ago

    Hi Wonyoung

    The option is to prevent shorting of nets. Suppose we have a shape on net1 that overlaps another shape on net2.You would not want autoVia to add the via because this would short the net.

    To prevent autoVia from adding unnecessary vias, you can disable the visibility of the unwanted layers in layer palette. autoVia would then ignore the intersection of those layers.

    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 13 years ago

    Hi Wonyoung

    You will have to use middle-mouse button a couple of times to select areas which you want autoVia to operate.


    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Wonyoung
    Wonyoung over 13 years ago

    Hi Quek,

    How does Virtuoso know whether two shapes are for the same net or not? If I have metal1 and metal2 intersecting, can I simply label them the same to tell Virtuoso they should be connected?

    Thank you very much. 

    Wonyoung 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Wonyoung
    Wonyoung over 13 years ago

    Hi Quek,

    I think I might have found the solution. Just to check if this is the way to do it,

    1) I created two shapes, one each with metal1 and metal2

    2) opened Edit Path Properties -> Connectivity

    3) wrote VDD in "Net Name"

    After I did this, I could use the dragging the middle-mouse button to create vias. Do you think if this is the right way to do it? One problem I found with this approach is that it only works for flat designs. For example, if there are multiple cellviews instantiated in my layout and if I want to connect the VDD/GND of all these cellviews, I don't know how I can specify the "Net Name" of all the VDD/GND wires in different cellviews. 

    Thank you very much.

    Wonyoung 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 13 years ago

    Hi Wonyoung

    Yes, it is the right way. You are right in saying that connectivity check is only for top level. It does not work across hierarchies. Sorry. : )  Would you pleaes file a service request with your local Cadence support and request for this enhancement?

    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Wonyoung
    Wonyoung over 13 years ago

    Hi Quek,

    I just filed a service request. Thanks so much for your help!

    Wonyoung 

    • 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