• 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. Change the label of a net

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 143
  • Views 3972
  • 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

Change the label of a net

GurumurthyH
GurumurthyH over 1 year ago

As you can see in the image there are 3 instances. I want to change the label "A" to "G" of instance x2 without changing the other nets labelled "A"(ie. of instance x1 and x3).

Can anyone help me with a skill code to do so?

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 1 year ago

    This should do it:

    procedure(CCFchangeConnectedWireLabel(instName wireName newWireName
        @key (cvId geGetEditCellView()))
      letseq(
        (
          (inst dbFindAnyInstByName(cvId instName))
          (master inst~>master)
          pinBox wires
        )
        foreach(term master~>terminals
          foreach(pin term~>pins
            foreach(pinFig pin~>figs
              pinBox=dbTransformBBox(pinFig~>bBox inst~>transform)
              ; only finds wires directly overlapping the pins (so if there
              ; is a bend and then that is labelled, these won't be found)
              wires=dbShapeQuery(cvId list("wire" "drawing") pinBox 0 0)
              foreach(wire wires
                foreach(child wire~>children
                  when(child~>objType=="label" && child~>theLabel==wireName
                    child~>theLabel=newWireName
                  )
                )
              )
            )
          )
        )
        t
      )
    )
    
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 1 year ago

    This should do it:

    procedure(CCFchangeConnectedWireLabel(instName wireName newWireName
        @key (cvId geGetEditCellView()))
      letseq(
        (
          (inst dbFindAnyInstByName(cvId instName))
          (master inst~>master)
          pinBox wires
        )
        foreach(term master~>terminals
          foreach(pin term~>pins
            foreach(pinFig pin~>figs
              pinBox=dbTransformBBox(pinFig~>bBox inst~>transform)
              ; only finds wires directly overlapping the pins (so if there
              ; is a bend and then that is labelled, these won't be found)
              wires=dbShapeQuery(cvId list("wire" "drawing") pinBox 0 0)
              foreach(wire wires
                foreach(child wire~>children
                  when(child~>objType=="label" && child~>theLabel==wireName
                    child~>theLabel=newWireName
                  )
                )
              )
            )
          )
        )
        t
      )
    )
    
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • GurumurthyH
    GurumurthyH over 1 year ago in reply to Andrew Beckett

    Thank you, the code is working fine!

    • 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