(set! bBox (car (cdr (car (cdr lst))))).
define findAllPortsInCellInst (lambda (cellId instanceName)
(let*
(
(cellInst (dbGetCellInstByName cellId instanceName))
)
(db-foreach cellId cellInst "portInst" portInstId
(let*
(
(portName (dbFetchObjectField cellId portInstId "portName"))
(netId (dbFetchObjectField cellId portInstId "netId"))
(netName (dbFetchObjectField cellId netId "netName"))
)
(display portName)(display " is connected to net ")
(display netName)(newline)
#t
)
)
#t
)
)
With dynamic scripting language translation, we can write it in
sub findAllPortsInCellInst{
my ($cellId,$instanceName)=@_;
my ($cellInst,$portInstId,$netId,$netName);
$cellInst=dbGetCellInstByName($cellId,$instanceName);
for $portInstId (@{&db_foreach($cellId,$cellInst,"portInst")}){
$portName=dbFetchObjectField($cellId,$portInstId,"portName");
$netId=dbFetchObjectField($cellId,$portInstId,"netId");
$netName=dbFetchObjectField($cellId,$netId,"netName");
print "$portName is connected to net $netName\n";
}
}
def findAllPortsInCellInst(cellId,instanceName):
cellInst=dbGetCellInstByName(cellId,instanceName)
for portInstId in db_foreach(cellId,cellInst,"portInst"):
portName=dbFetchObjectField(cellId,portInstId,"portName")
netId=dbFetchObjectField(cellId,portInstId,"netId")
netName=dbFetchObjectField(cellId,netId,"netName")
print portName,"is connected to net",netName
proc findAllPortsInCellInst {cellId instanceName} {
set cellInst [dbGetCellInstByName $cellId $instanceName]
foreach portInstId [db_foreach $cellId $cellInst portInst] {
set portName [dbFetchObjectField $cellId $portInstId "portName"]
set netId [dbFetchObjectField $cellId $portInstId "netId"]
set netName [dbFetchObjectField $cellId $netId "netName"]
puts "$portName is connected to net $netName"
}
}