Net name change - problems with Netlisting

  • Thread starter Chandramohan Neelakantan
  • Start date
C

Chandramohan Neelakantan

Guest
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.
 
Instead of recreating the pin shape and deleting the old one, just do a
rename of the original pin property.


Chandramohan Neelakantan wrote:
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.
 
Its not possible to modify the net the by changing the (shape~>net
)property directly.





vtcad wrote:
Instead of recreating the pin shape and deleting the old one, just do a
rename of the original pin property.


Chandramohan Neelakantan wrote:
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.
 
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



Chandramohan Neelakantan wrote:
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.
 
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





Bernd Fischer wrote:
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



Chandramohan Neelakantan wrote:
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.
 

Welcome to EDABoard.com

Sponsor

Back
Top