( ESNUG 357 Item 10 ) -------------------------------------------- [8/10/00]
Subject: ( ESNUG 356 #6 ) Find The Driving Cell Of A Specific Net In DC
> It would be great if someone could help me on this. SOLVNET on the web
> hasn't been helpful... I am running Synopsys v1999.05. I would like to
> replace the driver of a a specific net in Synopsys' design, with a driver
> of my own choosing. It would seem I need to:
>
> 1. find the net ("find" command)
> 2. get the driving cell of the net
> 3. delete this cell ("delete_cell" command)
> 4. create a new cell and tie its ports to that of the old cell
> ("create_cell")
>
> It is easy to find the net, with the "find" command. However, I am having
> great difficulty getting the driving cell of the net, once I find the net.
> I can do an "all_connected" on this net, but that gives me a pin list, and
> it includes the loads of the net. I would like to get the driving cell of
> the net, so I can use it as an argument to "delete_cell".
>
> Can anyone tell me how to find the driving cell of a net, assuming I have
> found the net? FYI, we don't have the TCL license.
>
> - Matt Gavin
> Rockwell Collins
From: Scott Evans <scott@sonicsinc.com>
John,
How about:
remove_variable pinList > /dev/null
pinList = all_connected(find(net, "NETNAME"))
remove_variable driverCell > /dev/null
driverCell = filter(find(pin, pinList) "@pin_direction ==out")
This should return a string with | / which you will need to split
to get the instance.
- Scott Evans
Sonics, Inc. Mountain View, CA
|
|
|