Net name change - problems with Netlisting

Discussion in 'Cadence' started by Chandramohan Neelakantan, Aug 18, 2006.

  1. Hello

    I am trying to replace a pin shape attached to net
    " gnd! "

    with a new shape attached to the net

    " gnd ".

    Im doing this on an extracted layout.

    I use the original pin shape to get
    a) the metal layer
    b) bBox

    What I do using SKILL is
    1) I create the new shape over the old one ( dbCreateRect) with info
    above
    2) then dbAddFigToNet to the new net.
    3) dbCreatePin on the shape
    4) and finally delete the old pin shape .

    The problem now is that during netlisting, the netlister complains as
    it finds the old net (in this case gnd! ). It probably finds two nets
    attached to the same shape/terminal ...Im not sure as Im new to this.


    When I try the same thing manually things work fine with the netlister.
    Im guessing the propagation of the new net is accomplished during the
    manual change whereas using SKILL it needs some "dbPropagateNet" kind
    of stuff to do it.

    Any help in this will be much appreciated.
     
    Chandramohan Neelakantan, Aug 18, 2006
    #1
  2. Chandramohan  Neelakantan

    vtcad Guest

    Instead of recreating the pin shape and deleting the old one, just do a
    rename of the original pin property.
     
    vtcad, Aug 19, 2006
    #2
  3. Its not possible to modify the net the by changing the (shape~>net
    )property directly.
     
    Chandramohan Neelakantan, Aug 21, 2006
    #3
  4. I assume you have to delete the old net information plus pin shape first
    and then add the new one. You should be able to store the information of the
    old stuff in variables for reusing them to create the new stuff.

    I have done something similar years ago, maybe you can use it as a starting
    point or as an idea how your script could look like.

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;File Name : BfChangePinByName.il
    ;Function(s) : BfChangePinByName
    ;Author : Bernd Fischer
    ;Date : Fri, 20 Apr 2001
    ;Revision : 1.0
    ;SW Release : 4.4.5
    ;SKILL Lint : PASSed
    ;Synopsis : BfChangePinByName( t_sourcePinName t_destPinName )
    ;Modification :
    ;Description : This SKILL function deletes the old pins including net name,
    ; given by the source pin name and replaces them with a new one,
    ; given by the destination pin name.
    ; Exception: works only for rectangular pins
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    procedure( BfChangePinByName( t_sourcePinName t_destPinName "tt" )

    let( ( d_cvId d_newNet d_newRect l_bBox l_layerPurposePair )

    ; get the cellview database object
    d_cvId = geGetEditCellView()

    ; for every terminal in the cellview
    foreach( d_terminal d_cvId~>terminals

    ; if the terminal name is equal to the t_sourcePinName
    if( d_terminal~>name == t_sourcePinName then

    ; create the new net for the pin
    d_newNet = dbCreateNet(
    d_cvId
    t_destPinName
    )

    ; for every pin of this terminal
    foreach( d_pin d_terminal~>pins

    ; get the pin figure bounding box
    l_bBox = d_pin~>fig~>bBox
    ; get the pin figure layer purpose pair
    l_layerPurposePair = d_pin~>fig~>lpp

    ; delete the current pin
    dbDeleteObject( d_pin~>fig )

    ; create the new pin shape
    d_newRect = dbCreateRect(
    d_cvId
    l_layerPurposePair
    l_bBox
    )

    ; create the new pin
    dbCreatePin(
    d_newNet
    d_newRect
    )

    ) ; foreach

    ) ; if

    ) ; foreach

    ; delete the old nets without existing pin
    dbDeleteObject(
    car(
    setof( d_net d_cvId~>nets !d_net~>pins )
    )
    )

    ) ; let

    ) ; procedure
     
    Bernd Fischer, Aug 21, 2006
    #4
  5. Vielen Dank Bernd!

    Looks like when a pin~>fig is manually deleted, the connectivity
    information is also deleted with it (terminals). However a
    dbDeleteObject of the same does not do the same.

    Thanks once again.
    CM
     
    Chandramohan Neelakantan, Aug 23, 2006
    #5
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.