• 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. Search single vias and replace with multi vias for selected...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 126
  • Views 14938
  • 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

Search single vias and replace with multi vias for selected nets

FrankVater
FrankVater over 6 years ago

Hello,

 I am looking for a way to optimize existing layouts. Many layouts have too less vias on nets with a higher current (e.g. power nets). Maybe there is an easy built-in function in Cadence Virtuoso Layout Suite to do the following:

  • Select the net (e.g. using "Connectivity => Mark Net")
  • Specify the stop layer (eg. Metal1)
  • The tool looks for every single via of the marked net (or using PVS with via coverage)
  • For every single via the via  will be extend by a double cut via (or more), in case that there is enough space

Clearly the last point is very tricky because tool has to evalute the layout in every direction whether it is possible to extend the metals without creating DRC errors or shorts.

Does somebody knows a way?

Frank

  • Cancel
Parents
  • Quek
    Quek over 6 years ago

    Hi Frank

    I think there is no built-in SKILL function to do via optimization directly by net but we can do it easily using the following SKILL procedure:

    procedure( CCSoptimizeVias(netName)
       let( (cv tf net cstGroup viaOpts win viaList viaPt)
          cv=geGetWindowCellView()
          tf=techGetTechFile(cv)
          net=dbFindNetByName(cv netName)
          cstGroup=cstFindConstraintGroupIn(tf "virtuosoDefaultSetup")
          viaOpts=viaGetViaOptions(cstGroup)
          win=hiGetCurrentWindow()
          unless( net error("Net %s cannot be found\n" netName))
          viaList=setof(x net~>figs x~>objType=="stdVia" && x~>cutRows==1 && x~>cutColumns==1)
          printf("Found %d single vias on net %s\n" length(viaList) netName)
          foreach( via viaList
             viaPt=via~>origin
             dbDeleteObject(via)
             viaGenerateViasAtPoint(win viaPt viaOpts)
          ) ;foreach
          printf("Job done\n")
       ) ;let
    ) ;procedure


    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • FrankVater
    FrankVater over 6 years ago in reply to Quek

    Hello Quek,

    I reviewed and I used the skill code and it works as I expected. It looks for single vias on the given net. In case that the overlap in the metal allows more than a single via this via will be replaced by an array. For me a function would be useful, which extents the metal and generates a via array afterwards. I think this skill code is a quite good starting point and I will investigate more time to extend the skill code!

    Thank you very much.

    Frank

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Quek
    Quek over 6 years ago in reply to FrankVater

    Hi Frank

    Thanks for the update. : )


    Best regards
    Quek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Quek
    Quek over 6 years ago in reply to FrankVater

    Hi Frank

    Thanks for the update. : )


    Best regards
    Quek

    • 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