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

        # set name and description
        self.name = str(masterinstance.instancename) +\
            "_" + str(masterinterface.name)
        self.instancename = masterinstance.instancename +\
            "_" + masterinterface.name +\
            "_intercon"
        self.description = "Connect slaves to " + masterinterface.name +\
            " from " + masterinstance.instancename

        # Save to make directories
        self.save()

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

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

            # bus (wishbone,...)
            bus = Interface(self,
                            name=instance.instancename +
                            "_" + interface.name)
            bus.interface_class = "intercon"
            # Adding bus interface on intercon
            self.add_interface(bus)

            # Creating port with invert direction value
            for port in interface.ports:
                newport = Port(bus,
                               name=instance.instancename +
                               "_" + port.name)
                newport.direction = self.inv_direction(port.direction)
                newport.size = port.size
                # adding port on bus interface
                bus.add_port(newport)
                # connect port new port on instance interface
                port.connect_all_pins(newport)

        bus.interface_class = "intercon"
        self.num = "0"