• 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. reassign net on multipart path

Stats

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

reassign net on multipart path

DaveDesigner
DaveDesigner over 15 years ago

i am looking to write a short little script to re-assign the net name for multipart paths. we have several different MPPs defined and what happens is whatever the first net it touches get assigned to the MPP in XL. It is an annoying task to select the MPP and re-assign the subparts for the net you want on the MPP.

 I was trying something like:

cv=geGetSelectedSet()

foreach(path cv

path~>net~>name="newname" )

following error: *Error* setSGq: dbSetq: Can not set attribute - name

  • Cancel
  • dmay
    dmay over 15 years ago

    You can't set the name attribute on the net. You'll need to set the net attribute on the path.

    netId  = dbMakeNet(geGetEditCellView() "newname")

    The above command will create the net in the cellview if it does not exist. Otherwise it will return the net id for the net named "newname". Then you assign this net to the path:

    path~>net = netId

    You can get all the rod objects in a cell by using: rodGetNamedShapes rather than looping through all the shapes in the cell. Although this may be a nit-picking detail, cv is the typical convention for the "cellview id" (cv = geGetEditCellView()). You code could be confusing to someone debugging it by using cv for the selected set.

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DaveDesigner
    DaveDesigner over 15 years ago

    Thank you for the reply Derek. I still seem to be missing something. I did the following after selecting the MPP. which had "VDD" assigned to it.

    netId  = dbMakeNet(geGetEditCellView() "VSS")

    sset=geGetSelectedSet()

    foreach(path sset

    path~>net=netId )

     It still hangs on to the VDD name??

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 15 years ago

    If you're doing this whilst the layout XL extractor is operational, you may be competing with it for assigning net information.

    One solution is to set the lxStickyNet boolean property on the shapes (shape~>lxStickyNet=t). You should do this with caution though, because it means that the net information is not then driven by VIrtuoso XL and it is seen as being fixed - but you should then be able to set it to what you want.

    I've not tested this with an MPP, but it may well be your problem.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DaveDesigner
    DaveDesigner over 15 years ago

    Thank you both, this worked! I verified that Derek's method works while NOT in XL.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DaveDesigner
    DaveDesigner over 15 years ago

    This isn't doing exactly what I had hoped as it turns out. It changes the connectivity so that the flashes go away when in XL but if I copy this MPP to another location in the cell it reverts back to the original connectivity because it is still assigned to the subparts. The way I permanently fix the problem manually is to select the MPP and then click on the Subpart... button. THis brings up the Edit ROD Subpart form. I have to select the M1 drawing part and type in the name of the new net. I then select the Subrectangle button and select the "CO" drawing part and change the netname there also. Then the MPP is permanently changed. I was hoping to do this somehow with this skill but presently it seems it just changes the connectivity. Once it is copied the connectivity is changed to the netname assigned to these two subparts.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • dmay
    dmay over 15 years ago

    You can access all of the subShapes from the rodObject id:

    foreach(rodObj rodGetNamedShapes(geGetEditCellView()
        foreach(shp rodObj~>subShapes
            shp~>net = netId
        )
    )

    Or in your current code:

    foreach(path selectedSet()
        rodObj = rodGetObj(path)
        foreach(shp rodObj~>subShapes
            shp~>net = netId
        )
    )

    Derek

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • DaveDesigner
    DaveDesigner over 15 years ago

    Very much appreciated! I think I am good to go now.

    • 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