def FindObject(self, name): ns = openaccess22.oaNativeNS() name = openaccess22.oaName(ns, name) typname = self.mDesign.getType().oaTypeEnum() if (typname == openaccess22.oacBlockType): return oaNet.static_find(self.mDesign, name) if (typname == openaccess22.oacModuleType): return oaModNet.static_find(self.mDesign, name) if (typname == openaccess22.oacOccurrenceType): return oaOccNet.static_find(self.mDesign.getTopOccurrence(), name) return None
def FindObject(self,name): ns=openaccess22.oaNativeNS() name=openaccess22.oaName(ns,name) typname=self.mDesign.getType().oaTypeEnum() if (typname==openaccess22.oacBlockType): return oaNet.static_find(self.mDesign,name) if (typname==openaccess22.oacModuleType): return oaModNet.static_find(self.mDesign,name) if (typname==openaccess22.oacOccurrenceType): return oaOccNet.static_find(self.mDesign.getTopOccurrence(),name) return None
def trace_net_list(self, cmd, names): list = self.validate(cmd, names) for netname in list: name = openaccess22.oaName(self.mNS, netname) net = None typname = self.mDesign.getType().oaTypeEnum() if typname == openaccess22.oacBlockType: net = openaccess22.oaNet.static_find(self.mDesign, name) if typname == openaccess22.oacModuleType: net = openaccess22.oaModNet.static_find(self.mDesign, name) if typname == openaccess22.oacOccurrenceType: net = openaccess22.oaOccNet.static_find(self.mDesign.getTopOccurrence(), name) if net == None: if name.getType().oaNameTypeEnum() == openaccess22.oacVectorBitNameType: sname = openaccess22.oaScalarName() vname = name.getVectorBit() vname.getBaseName(sname) if typname == openaccess22.oacBlockType: net = openaccess22.oaBusNetBit.static_find(self.mDesign, sname, vname.getIndex()) if typname == openaccess22.oacModuleType: net = openaccess22.oaModBusNetBit.static_find(self.mDesign, sname, vname.getIndex()) if typname == openaccess22.oacOccurrenceType: net = openaccess22.oaOccBusNetBit.static_find( self.mDesign.getTopOccurrence(), sname, vname.getIndex() ) if net == None: print "Can't Find Net: ", netname continue for snet in net.getSingleBitMembersIter(): net = snet.getPreferredEquivalent() fo = self.trace_net_fo(net) repname = openaccess22.oaString() if net.isOccObject(): net.getPathName(self.mNS, repname) else: net.getName(self.mNS, repname) rep = "Net: " + str(repname) + " { fanout=" + str(fo) + " }" self.mReport.append(rep) if self.mFirstObj == None: self.mFirstObj = net self.trace_net(net, self.mDir, 1) self.log_report(cmd, names)
def trace_term_list(self, cmd, names): list = self.validate(cmd, names) for termname in list: name = openaccess22.oaName(self.mNS, termname) term = None typname = self.mDesign.getType().oaTypeEnum() if typname == openaccess22.oacBlockType: term = openaccess22.oaTerm.static_find(self.mDesign, name) if typname == openaccess22.oacModuleType: term = openaccess22.oaModTerm.static_find(self.mDesign, name) if typname == openaccess22.oacOccurrenceType: term = openaccess22.oaOccTerm.static_find(self.mDesign, name) if term == None: if name.getType().oaNameTypeEnum() == openaccess22.oacVectorBitNameType: sname = openaccess22.oaScalarName() vname = name.getVectorBit() vname.getBaseName(sname) if typname == openaccess22.oacBlockType: term = openaccess22.oaBusTermBit.static_find(self.mDesign, sname, vname.getIndex()) if typname == openaccess22.oacModuleType: term = openaccess22.oaModBusTermBit.static_find(self.mDesign, sname, vname.getIndex()) if typname == openaccess22.oacOccurrenceType: term = openaccess22.oaOccBusTermBit.static_find(self.mDesign, sname, vname.getIndex()) if term == None: print "Can't Find Term: ", termname continue termname = openaccess22.oaString() term.getName(self.mNS, termname) termname = str(termname) rep = "Term: " + termname + " (" termtype = term.getTermType().oaTermTypeEnum() if termtype == "oacInputTermType": rep = rep + "I" elif termtype == "oacOutputTermType": rep = rep + "O" elif termtype == "oacInputOutputTermType": rep = rep + "B" else: rep = rep + "X" rep = rep + ")" if self.mFirstObj == None: self.mFirstObj = term self.mReport.append(rep) net = term.getNet() netname = openaccess22.oaString() if net.isOccObject(): net.getPathName(self.mNS, netname) else: net.getName(self.mNS, netname) netname = str(netname) rep = "Net: " + netname self.mReport.append(rep) # self.trace_net(net,self.mDir,1) for snet in net.getSingleBitMembersIter(): net = snet.getPreferredEquivalent() fo = self.trace_net_fo(net) repname = openaccess22.oaString() if net.isOccObject(): net.getPathName(self.mNS, repname) else: net.getName(self.mNS, repname) rep = "Net: " + str(repname) + " { fanout=" + str(fo) + " }" self.mReport.append(rep) if self.mFirstObj == None: self.mFirstObj = net self.trace_net(net, self.mDir, 1) self.log_report(cmd, names)