def METHOD_NAME(self):
    deps = dependencies(self._magma_top, include_self=True)
    with push_block(self._mlir_module):
        for dep in deps:
            if self.has_hardware_module(dep):
                continue
            hardware_module = self.new_hardware_module(dep)
            hardware_module.METHOD_NAME()
            if hardware_module.hw_module:
                self.set_hardware_module(dep, hardware_module)
    if self._opts.split_verilog:
        if self._opts.basename is None:
            raise ValueError(
                "Must specify basename if split_verilog is set"
            )
        _prepare_for_split_verilog(
            self._hardware_modules.values(),
            filter(
                lambda op: isinstance(op, sv.BindOp),
                self._mlir_module.block.operations
            ),
            self._symbol_map,
            self._opts.basename,
            ("sv" if self._opts.sv else "v"),
        )
    self._process_bound_modules()