def __init__(self, parent, **keys): """ Create interface object if node is a node or name. __init__(self,parent,name) __init__(self,parent,node) __init__(self,parent,nodestring) """ self._parent = parent if "name" in keys: WrapperXml.__init__(self, nodename="interface") self.name = keys["name"] elif "node" in keys: WrapperXml.__init__(self, node=keys["node"]) elif "wxml" in keys: WrapperXml.__init__(self, nodestring=keys["wxml"]) else: raise PodError("Keys unknown in Interface", 0) self._registerslist = [] self.portslist = [] self._slaveslist = [] self._bus = None if self.interface_class == "master": self.alloc_mem = AllocMem(self) if self.interface_class == "slave": self.interfacemaster = None if self.get_node("slaves") is not None: for element in self.get_subnodes("slaves", "slave"): self._slaveslist.append(Slave(self, node=element)) if self.get_node("registers") is not None: for element in self.get_subnodes("registers", "register"): self._registerslist.append(Register(self, node=element)) if self.get_node("ports") is not None: for node in self.get_subnodes("ports", "port"): self.portslist.append(Port(self, node=node)) # set bus if self.bus_name is not None: self.bus = self.bus_name