Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
    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)
Пример #4
0
    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)