MPACT-Cheriot is an implementation of an instruction set simulator for the CherIoT instruction set architecture created using the MPACT-Sim simulator tools framework and reusing code from MPACT-RiscV. Additional information and codegen tools can be found at https://cheriot.org
There are three main targets in cheriot/BUILD:
mpact_cheriot
This is the standalone simulator target. It implements a simple command line assembly level debug interface that is accessed by passing the command line option ‘-i’ or ‘-interactive’.
renode_mpact_cheriot
This produces a shared object, a ‘.so’ file, that can be used together with ReNode, and that is loaded from MpactCheriotCPU.cs plugin file that can be found in mpact_sim:/util/renode/renode_cs. A debug interface can be made available on a socket that you can connect to with telnet or putty. This allows you to step, set breakpoints/watchpoints, etc. while running an application on ReNode.
cheriot_test_rig
This produces an executable suitable for running with TestRIG and comparing against the sail cheriot implementation. For more on that, see the TestRIG documentation.
MPACT-Cheriot uses the bazel build system. This is best installed using bazilisk. Place a file named .bazeliskrc in your home directory specifying a bazel version 6.1.1 or later:
USE_BAZEL_VERSION=6.1.1
Once that has been set up, you can build all targets from the top level directory using the command bazel build ...:all
. To run all the tests, use the command bazel test ...:all
.