• 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. Digital Implementation
  3. How to prevent sroute from placing vias where there already...

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 92
  • Views 6501
  • 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

How to prevent sroute from placing vias where there already are some?

Domi Hammerfall
Domi Hammerfall over 2 years ago

Dear Community

Please consider the following screenshot:

The image shows part of the power grid (MET5 horizontal and MET6 vertical) and a RAM block surrounded by a block ring. The RAM's power pins (horizontal stripes above the block) are connected to its ring.

When I execute

setSrouteMode -viaConnectToShape {ring stripe blockring}
sroute -connect {corePin} -corePinTarget {ring blockring stripe} -nets {vddd vssd} -allowLayerChange 1 -allowJogging 0

The following result occurs:

The second image shows a close-up of the righ-hand side of the block ring. Since the standard rows are not necessarely aligned with the power pins of the RAM, it can occure the core pins cannot made a direct connection to the power grid. sroute now places a second via stack, i.e. the via stack from the RAM's power pins and the one from the standard row are overlapping, causing a design rule violation.

Strangely, this only occurs at block rings. There are other situations in the design where the place for a direct via stack is already occupied by something else. For example, power pads that are connected to the core ring. In these cases, sroute simply stops in front of them and places no vias, i.e. it leaves the ends open. They can then be later routed using the -allowJogging 1 argument.

Is there a simple way to prevent these design rule violations? Or is there a command that tries to merge overlapping via stacks?

Thank you.

  • Cancel
  • DimoM
    DimoM over 2 years ago

    Hi,
    you can try to remove the blockring from the -viaConnectToShape list.
    This should then prevent the special router from dropping vias on the block ring.

    - Dimo

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Domi Hammerfall
    Domi Hammerfall over 2 years ago in reply to DimoM

    Dear Dimo,

    thank you for your suggestion.

    If I do this then sroute won't make any vias to the block rings at all, thereby creating an open violation. Also, using editTrim (useful clean-up command) later in the flow would remove those core pins.

    I would like the tool to make connections to the block rings if possible. For example, in above's example, if the via stack would only go up to layer 5 instead of layer 6, then the problem would already be solved.

    Problem: If I use

    sroute -connect {corePin} -corePinTarget {ring blockring stripe} -nets {vddd vssd} -allowLayerChange 1 -allowJogging 0 -targetViaLayerRange{MET1(1) MET5(5)}

    then the stack still goes up to layer 6, causing a DRC violation. If I use

    sroute -connect {corePin} -corePinTarget {ring blockring stripe} -nets {vddd vssd} -allowLayerChange 1 -allowJogging 0 -crossoverViaLayerRange{MET1(1) MET5(5)}

    then no via stack is placed at all, again creating an open violation.

    The thing is, there are areas in the design where sroute makes the connections correctly. Here is an example:

    The screenshot shows the top left corner of another RAM. In the marked are, the vias of the core pins do not align with the vias of the power grid, but the via stack is correctly only build up to layer 5. I havn't figured out yet what determines how the via stack is made.

    Any suggestions?

    • 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