m2isar.backends.etiss.architecture_writer ========================================= .. py:module:: m2isar.backends.etiss.architecture_writer .. autoapi-nested-parse:: Functions for generating auxillary ETISS ArchImpl files. Attributes ---------- .. autoapisummary:: m2isar.backends.etiss.architecture_writer.logger Functions --------- .. autoapisummary:: m2isar.backends.etiss.architecture_writer.write_child_reg_def m2isar.backends.etiss.architecture_writer.write_arch_struct m2isar.backends.etiss.architecture_writer.write_arch_header m2isar.backends.etiss.architecture_writer.build_reg_hierarchy m2isar.backends.etiss.architecture_writer.write_arch_cpp m2isar.backends.etiss.architecture_writer.write_arch_lib m2isar.backends.etiss.architecture_writer.write_arch_specific_header m2isar.backends.etiss.architecture_writer.write_arch_specific_cpp m2isar.backends.etiss.architecture_writer.write_arch_gdbcore m2isar.backends.etiss.architecture_writer.write_arch_cmake Module Contents --------------- .. py:data:: logger .. py:function:: write_child_reg_def(reg: m2isar.metamodel.arch.Memory, regs: list[str]) Recursively generate register declarations .. py:function:: write_arch_struct(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path) .. py:function:: write_arch_header(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path) .. py:function:: build_reg_hierarchy(reg: m2isar.metamodel.arch.Memory, ptr_regs: list[arch.Memory], actual_regs: list[arch.Memory], alias_regs: dict[arch.Memory, arch.Memory], initval_regs: list[arch.Memory]) Populate the passed lists with memory objects of their category. ptr_regs: Registers that need to be a pointer within ETISS actual_regs: Registers that are not a pointer alias_regs: Registers which are an alias to some other register initval_regs: Registers which have initial value(s) defined in the model .. py:function:: write_arch_cpp(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path, aliased_regnames: bool = True) Generate {CoreName}Arch.cpp file. Contains mainly register initialization code. .. py:function:: write_arch_lib(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path) .. py:function:: write_arch_specific_header(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path) .. py:function:: write_arch_specific_cpp(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path) .. py:function:: write_arch_gdbcore(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path) .. py:function:: write_arch_cmake(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path, separate: bool)