m2isar.backends.etiss.architecture_writer

Functions for generating auxillary ETISS ArchImpl files.

Attributes

logger

Functions

write_child_reg_def(reg, regs)

Recursively generate register declarations

write_arch_struct(core, start_time, output_path)

write_arch_header(core, start_time, output_path)

build_reg_hierarchy(reg, ptr_regs, actual_regs, ...)

Populate the passed lists with memory objects of their category.

write_arch_cpp(core, start_time, output_path[, ...])

Generate {CoreName}Arch.cpp file. Contains mainly register initialization code.

write_arch_lib(core, start_time, output_path)

write_arch_specific_header(core, start_time, output_path)

write_arch_specific_cpp(core, start_time, output_path)

write_arch_gdbcore(core, start_time, output_path)

write_arch_cmake(core, start_time, output_path, separate)

Module Contents

logger[source]
write_child_reg_def(reg: m2isar.metamodel.arch.Memory, regs: list[str])[source]

Recursively generate register declarations

write_arch_struct(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path)[source]
write_arch_header(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path)[source]
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])[source]

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

write_arch_cpp(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path, aliased_regnames: bool = True)[source]

Generate {CoreName}Arch.cpp file. Contains mainly register initialization code.

write_arch_lib(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path)[source]
write_arch_specific_header(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path)[source]
write_arch_specific_cpp(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path)[source]
write_arch_gdbcore(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path)[source]
write_arch_cmake(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path, separate: bool)[source]