def get_module_instance(module_dir: str) -> AsModule:
    module = AsModule()

    module.files = ["hardware/hdl/vhdl/pkg/as_generic_filter_pkg.vhd"]
    module.dependencies = []

    # As this is not a typical Automatics module (no VHDL entity)
    # we manually set the necessary attributes,
    # so Automatics can work with it normally
    module.module_dir = module_dir
    module.repository_name = "default"
    module.name = "as_generic_filter"
    module.entity_name = "as_generic_filter"
    module.generics = []
    module.standard_ports = []
    module.ports = []
    module.interfaces = []

    # Automatic module discovery would run into errors (no entity in 'as_generic_filter_pkg')
    # as_automatics now automatically parses the toplevel file and discovers
    # ports, generics, existing interfaces and register interfaces
    #module.discover_module("{mdir}/{toplevel}"
    #                       .format(mdir=module_dir, toplevel=toplevel_file))

    return module
Example #2
0
def get_module_instance(module_dir: str) -> AsModule:
    module = AsModule()

    module.files = ["hardware/hdl/vhdl/pkg/helpers.vhd"]
    module.dependencies = []

    # As this is not a typical Automatics module (no VHDL entity)
    # we manually set the necessary attributes,
    # so Automatics can work with it normally
    module.module_dir = module_dir
    module.repository_name = "default"
    module.name = ""
    module.entity_name = "helpers"
    module.generics = []
    module.standard_ports = []
    module.ports = []
    module.interfaces = []
    module.show_in_browser = False
    module.dev_status = AsModule.DevStatus.STABLE
    module.module_type = AsModule.ModuleTypes.LIBRARY
    module.module_category = "Internal Libraries"

    return module
Example #3
0
def get_module_instance(module_dir: str) -> AsModule:
    module = AsModule()

    module.files = []
    module.dependencies = []

    # As this is not a typical Automatics module (no HW files)
    # we manually set the necessary attributes,
    # so Automatics can work with it
    module.module_dir = module_dir
    module.repository_name = "default"
    module.name = "as_memio"
    module.entity_name = "as_memio"
    module.generics = []
    module.standard_ports = []
    module.ports = []
    module.interfaces = []
    module.show_in_browser = False
    module.dev_status = AsModule.DevStatus.BETA
    module.module_type = AsModule.ModuleTypes.SOFTWARE
    module.module_category = "Memory IO"

    return module
Example #4
0
def get_module_instance(module_dir: str) -> AsModule:
    module = AsModule()

    module.files = ["hardware/hdl/vhdl/pkg/helpers.vhd"]
    module.dependencies = []
    
    # As this is not a typical Automatics module (no VHDL entity)
    # we manually set the necessary attributes,
    # so Automatics can work with it normally
    module.module_dir = module_dir
    module.repository_name = "default"
    module.name = ""
    module.entity_name = "helpers"
    module.generics = []
    module.standard_ports = []
    module.ports = []
    module.interfaces = []

    # Automatic module discovery would run into errors (no entity in 'helpers')
    #module.discover_module("{mdir}/{toplevel}"
    #                       .format(mdir=module_dir, toplevel=toplevel_file))


    return module
Example #5
0
    def define_module_to_wrap(self, module: AsModule):
        self.modules = [module]
        module.modlevel += 1
        self.name = module.name
        self.entity_name = module.name + "_wrapper"
        self.generics = []
        self.standard_port_templates = module.standard_port_templates
        set_delay(self, get_delay(module))
        for inter in module.interfaces:
            self.add_interface(inter)
        for port in module.ports:
            self.add_port(port)
        for port in module.standard_ports:
            self.add_standard_port(port)
        if isinstance(module, AsWindowModule):
            self.vhdl_libraries.append("as_generic_filter")
            setattr(self, "window_interfaces", module.window_interfaces)
            module.window_interfaces = []

        module.interfaces = []
        module.ports = []
        module.standard_ports = []

        full_port_list = self.get_full_port_list(include_signals=False)

        for port in full_port_list:
            nport = port.duplicate()
            if nport.port_type == "interface":
                nport.set_port_type("single")
            module.add_port(nport)
            if port.direction == "in":
                nport.incoming = port
                port.outgoing.append(nport)
            else:
                nport.outgoing.append(port)
                port.incoming = nport