m2isar.backends.etiss.architecture_writer
Functions for generating auxillary ETISS ArchImpl files.
Attributes
Functions
|
Recursively generate child declarations for Memories and Register(Banks) |
|
|
|
|
|
Populate the passed lists with memory objects of their category. |
|
Generate {CoreName}Arch.cpp file. Contains mainly register initialization code. |
|
|
|
|
|
|
|
|
|
Module Contents
- write_child_reg_def(reg: m2isar.metamodel.arch.Memory | m2isar.metamodel.arch.RegisterBank | m2isar.metamodel.arch.Register, regs: list[str])[source]
Recursively generate child declarations for Memories and Register(Banks)
- 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 | m2isar.metamodel.arch.Alias | m2isar.metamodel.arch.Register | m2isar.metamodel.arch.RegisterBank, ptr_regs: list[arch.Memory | arch.RegisterBank], actual_regs: list[arch.Register | arch.RegisterBank], alias_regs: dict[arch.Alias], initval_regs: list[arch.Memory | arch.Register | arch.RegisterBank])[source]
Populate the passed lists with memory objects of their category. # CSR is actually an extern memory range but treatet as a reg 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, virtualstruct_regs: dict, fill_mode: str)[source]
- write_arch_gdbcore(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path, gdb_mapping: dict)[source]
- write_arch_cmake(core: m2isar.metamodel.arch.CoreDef, start_time: str, output_path: pathlib.Path, separate: bool)[source]