Пример #1
0
    def generateXML(self,masterinterface):
        """ Generate intercon code
        """
        masterinstance = masterinterface.getParent()

        # set name and description
        self.setName(str(masterinstance.getInstanceName()) \
                     + "_" \
                     + str(masterinterface.getName()))
        self.setInstanceName(str(masterinstance.getInstanceName())\
                             + "_"\
                             +str(masterinterface.getName())\
                             + "_intercon")
        self.setDescription("Connect slaves to "\
                            + masterinterface.getName()\
                            + " from "\
                            + masterinstance.getInstanceName())

        # Save to make directories
        self.saveInstance()

        #####
        # Create interface for each component connected on intercon
        # for slaves and master:
        slaveslist = masterinterface.getSlavesList()
        interfaceslist = [slave.getInterface() for slave in slaveslist]
        interfaceslist.append(masterinterface)

        # For each slave and master interface, create interface in intercon
        for interface in interfaceslist:
            instance = interface.getParent()

            #######
            # bus (wishbone,...)
            bus = Interface(self,
                            name=instance.getInstanceName()\
                                    +"_"+interface.getName())
            bus.setClass("intercon")
            # Adding bus interface on intercon
            self.addInterface(bus)

            #Creating port with invert direction value
            for port in interface.getPortsList():
                newport = Port(bus,
                               name=instance.getInstanceName()\
                                       +"_"+port.getName())
                newport.setDir(self.invertDir(port.getDir()))
                newport.setSize(port.getSize())
                # adding port on bus interface
                bus.addPort(newport)
                #connect port new port on instance interface
                port.connectAllPin(newport)



        bus.setClass("intercon")
        self.setNum("0")