Home > Community > Forums > Custom IC SKILL > reassign net on multipart path

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 reassign net on multipart path 

Last post Tue, Feb 23 2010 9:20 PM by DaveDesigner. 7 replies.
Started by DaveDesigner 23 Feb 2010 06:31 PM. Topic has 7 replies and 2371 views
Page 1 of 1 (8 items)
Sort Posts:
  • Tue, Feb 23 2010 6:31 PM

    reassign net on multipart path Reply

    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

    • Post Points: 20
  • Tue, Feb 23 2010 6:43 PM

    • dmay
    • Top 25 Contributor
    • Joined on Thu, Jul 17 2008
    • Allen, TX
    • Posts 393
    • Points 7,415
    Re: reassign net on multipart path Reply

    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

    • Post Points: 20
  • Tue, Feb 23 2010 7:12 PM

    Re: reassign net on multipart path Reply

    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??

    • Post Points: 20
  • Tue, Feb 23 2010 7:30 PM

    Re: reassign net on multipart path Reply

    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.

    • Post Points: 35
  • Tue, Feb 23 2010 7:59 PM

    Re: reassign net on multipart path Reply

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

    • Post Points: 5
  • Tue, Feb 23 2010 8:37 PM

    Re: reassign net on multipart path Reply

    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.

     

    • Post Points: 20
  • Tue, Feb 23 2010 9:04 PM

    • dmay
    • Top 25 Contributor
    • Joined on Thu, Jul 17 2008
    • Allen, TX
    • Posts 393
    • Points 7,415
    Re: reassign net on multipart path Reply

    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

    • Post Points: 20
  • Tue, Feb 23 2010 9:20 PM

    Re: reassign net on multipart path Reply

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

    • Post Points: 5
Page 1 of 1 (8 items)
Sort Posts:
Started by DaveDesigner at 23 Feb 2010 06:31 PM. Topic has 7 replies.