| // This file define the kelvin isa for mpact-sim. For more info on mpact-sim isa |
| // format, check: go/mpact-sim-codelabs-riscv-instruction-decoder |
| |
| // First disasm field is 18 char wide and left justified. |
| disasm widths = {-18}; |
| |
| int global_latency = 0; |
| |
| isa Kelvin { |
| namespace kelvin::sim::isa32; |
| slots { kelvin; } |
| } |
| |
| #include "sim/kelvin_base.isa" |
| #include "sim/kelvin_arith.isa" |
| #include "sim/kelvin_shift.isa" |
| #include "sim/kelvin_memory.isa" |
| #include "sim/kelvin_mul.isa" |
| |
| // Combining all kelvin instruction sets. |
| slot kelvin : riscv32i, riscv32m, zicsr, zfencei, privileged, kelvin_arith, |
| kelvin_conv, kelvin_log, kelvin_memory, kelvin_mul, kelvin_shift, |
| kelvin_vector_memory { |
| includes { |
| #include "sim/kelvin_instructions.h" |
| } |
| default opcode = |
| disasm: "Illegal instruction at 0x%(@:08x)", |
| semfunc: "&KelvinIllegalInstruction"; |
| } |