• 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 create a wide route with coaxial shielding in Innovus...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 92
  • Views 4892
  • 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 create a wide route with coaxial shielding in Innovus?

FormerMember
FormerMember over 2 years ago

Dear community

I have a design containing two IP blocks which are connected with "critical high-voltage" nets. According to the datasheet, these nets need to be routed with a trace that is at least as wide as the corresponding pin (1.46 microns in this case) and coaxial shielding, that is, an additional trace towards ground placed to the left and right as well as a shield on top and bottom. The shielding can be minimum width with minimum spacing.

I create a non-default rule for the wider trace as follows:

Innovus > add_ndr -width {MET1 1.46 MET2 1.46 MET3 1.46 MET4 1.46 MET5 1.46 METTP 1.46 } -name 1_46w1s

The only way to assign shielding I could find in the manual is with nano route. Thus I set

Innovus > setAttribute -net myNet -shield_net vssd
Innovus > setAttribute -net myNet -non_default_rule 1_46w1s

Next, I run global and detailed route:

Innovus > selectNet myNet
Innovus > setNanoRouteMode -quiet -routeSelectedNetOnly 1
Innovus > routeDesign -globalDetail

This does not yield the wanted output yet.

Problem 1

This only creates a shield to the left and right of the net, but not at the top or bottom. There are three valid solutions:

  1. Create the net on MET2/MET3 and place a shield on MET1/MET4
  2. Create the net on MET1/MET2 and place a shield on MET3 only
  3. Create the net on MET3/MET4 and place a shield on MET2 only (MET5 and MET6 are exclusively used for power routing only, i.e. there already is a "shield" on MET5)

How can I configure Innovus to create coaxial shielding according to the valid scenarios above?

Problem 2

Nano Route correctly uses the non-defailt rule to place a wider trace. However, sometimes the shield is not placed at all. I assume that Nano Route has some internal roules where it decides whether the shield can be placed or not. The problem here is that I actually need to run the Place and Early Global Route command before I am able to run Nano Route. As a result, there might be other nets routed nearby, thereby taking away the space that is needed to place a shield - at least that's what I believe is happening. Maybe a routing blockage would help here as a workaround. However, I would actually prefer to route those critical nets even before the placement step and then somehow lock them. Is there a way to manually place routes without relying on the Nano Route command?

Problem 3

Whenever Innovus performs a layer change on said critical net, only a single via is placed. How can I tell the tool to place as many vias as possible?

Thank you for any help.

  • Cancel
Parents
  • DimoM
    DimoM over 2 years ago

    Hi,

    you can create coaxial shielding on nets as described here : How to apply coaxial shielding on clock nets

    Note that the shielding is applied opportunistically. For best results I would suggest prerouting the net before any other nets are routed.
    You can route only selected nets with the following commands
    selectNet <netname>
    setNanoRouteMode -routeSelectedNetOnly true

    routeDesign

    In my understanding EGR routes should not have an effect on real routes, but you can also try to delete them first just in case:
    editDelete -status unknown

    Then you can also fix the net wire and via shapes so that it is not further modified by NanoRoute: How to change the status of a net in legacy or common UI ?

    - Dimo

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

    Dear Dimo

    Thank you very much for your answer. I have some follow-up questions.

    1. Can you elaborate a bit more on when a shield is created? I noticed that NanoRoute refuses to create any shield unless the core pins are already created. For example, if I only create a power grid on layer 5 and 6 then no shield is ever created. If I however first run

    sroute -connect {corePin}  -corePinTarget {stripe ring blockring}

    and then start NanoRoute, the coaxial shields are created. Why is that?

    2. How can I tell the tool to place as many vias as possible during layer change? For now, I use

    setNanoRouteMode -drouteUseMultiCutViaEffort high

    This generates 2 vias per layer change, but I would like to place more. How to do that?

    Here is the complete mini-script I use so far:

    add_ndr -width {MET1 1.46 MET2 1.46 MET3 1.46 MET4 1.46 MET5 1.46 METTP 1.46} -name 1_46w1s
    setAttribute -net myNet vssd
    setAttribute -net myNet -coaxial_shielded_layers {1:4}
    setAttribute -net myNet -top_preferred_routing_layer 3
    setAttribute -net myNet -bottom_preferred_routing_layer 2
    setAttribute -net myNet -non_default_rule 1_46w1s
    setNanoRouteMode -routeSelectedNetOnly true -drouteUseMultiCutViaEffort high
    selectNet myNet
    routeDesign
    editChangeStatus -to FIXED
    deselectAll

    Thank you.

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

    Hi,
    I have not used coaxial routing a lot, so I am not very familiar with it. As I am not with Cadence anymore, I only have access to the publicly available data.
    I assume this behavior has to do with the connection of the shielding to the vssd net. As stated, the coaxial shielding is done opportunistically, so I guess it does not try too hard to create connections, if it does not find an easy way to ground the shielding it just gives up.

    Regarding dropping multiple vias, I suggest you create a via definition with multiple cuts using add_via_definition and add it to the NDR for the router to use on this net.

    Btw you can use setAttribute with multiple attributes at once and merge your commands into one. E.g.
    setAttribute -net myNet -top_preferred_routing_layer 3 -bottom_preferred_routing_layer 2 -non_default_rule 1_46w1s

    - Dimo

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

    Dear Dimo

    I can confirm that using add_via_definition is the way to go. Here is one example where I am happy with the outcome:

    Unfortunately, there are still situations where Innovus decides to yield another output. For example, I have another such critical net that is 3 microns wide. I use the same commands as before except that the non-default rule now uses even wider traces. So I use

    add_via_definition -via_rule via1Array -row_col {4 4} -name via1_4x4
    add_via_definition -via_rule via2Array -row_col {4 4} -name via2_4x4
    add_via_definition -via_rule via3Array -row_col {4 4} -name via3_4x4
    add_via_definition -via_rule via4Array -row_col {4 4} -name via4_4x4
    add_ndr -name 3_00w1s -width {MET1 3.00 MET2 3.00 MET3 3.00 MET4 3.00 MET5 3.00 METTP 3.00} -via {via1_4x4 via2_4x4 via3_4x4 via4_4x4} -generate_via
    setAttribute -net myNet -shield_net vssd -coaxial_shielded_layers {1:4} -top_preferred_routing_layer 3 -bottom_preferred_routing_layer 2 -preferred_routing_layer_effort hard -non_default_rule 3_00w1s
    setNanoRouteMode -routeSelectedNetOnly true
    selectNet myNet
    routeDesign

    which yields the following result:

    Any idea why this happens? I tried playing around with the settings like using other widths in the NDR or using other via definitions - nothing seems to work. Innovus always places those slim traces with at most two vias.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • FormerMember
    FormerMember over 2 years ago in reply to DimoM

    Dear Dimo

    I can confirm that using add_via_definition is the way to go. Here is one example where I am happy with the outcome:

    Unfortunately, there are still situations where Innovus decides to yield another output. For example, I have another such critical net that is 3 microns wide. I use the same commands as before except that the non-default rule now uses even wider traces. So I use

    add_via_definition -via_rule via1Array -row_col {4 4} -name via1_4x4
    add_via_definition -via_rule via2Array -row_col {4 4} -name via2_4x4
    add_via_definition -via_rule via3Array -row_col {4 4} -name via3_4x4
    add_via_definition -via_rule via4Array -row_col {4 4} -name via4_4x4
    add_ndr -name 3_00w1s -width {MET1 3.00 MET2 3.00 MET3 3.00 MET4 3.00 MET5 3.00 METTP 3.00} -via {via1_4x4 via2_4x4 via3_4x4 via4_4x4} -generate_via
    setAttribute -net myNet -shield_net vssd -coaxial_shielded_layers {1:4} -top_preferred_routing_layer 3 -bottom_preferred_routing_layer 2 -preferred_routing_layer_effort hard -non_default_rule 3_00w1s
    setNanoRouteMode -routeSelectedNetOnly true
    selectNet myNet
    routeDesign

    which yields the following result:

    Any idea why this happens? I tried playing around with the settings like using other widths in the NDR or using other via definitions - nothing seems to work. Innovus always places those slim traces with at most two vias.

    • 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