Chimera is a microcontroller SoC template for multi-cluster, heterogeneous systems. Its goal is to provide an energy-efficient, easy-to-extend template to integrate and interact with accelerators.
Chimera is developed as part of the PULP project, a joint effort between ETH Zurich and the University of Bologna.
You need to have a working riscv GCC compiler in your path. You also need to have a modern version of modelsim in your path. We recommend using GCC-9.2.0 and Questa-2022.3; on IIS systems you may use the pre-installed packaged SEPP versions for this.
Unless specified otherwise in the respective file headers, all code checked into this repository is made available under a permissive license. All hardware sources and tool scripts are licensed under the Solderpad Hardware License 0.51 (see LICENSE) or compatible licenses. Register file code (e.g. hw/regs/*.sv) is generated by a fork of lowRISC's regtool and licensed under Apache 2.0. All software sources are licensed under Apache 2.0.
If you are working on an IIS system, you can use the preinstalled SEPP packages to add the correct versions of the RISC-V toolchain and questasim into your path. If you use bash, you might run
riscv bash
questa-2022.3 bash
If you are not on an IIS system, please ensure a RISC-V toolchain and questa installation are available in your path by checking that the outputs of
which riscv32-unknown-elf-gcc
which vsim
are not empty.
To install the required python packages into your environment and setup dependencies, you can run
pip install -r requirements.txt
bender checkout
make chs-hw-init
make snitch-hw-init
make chs-sim-all
To build files for modelsim:
make chim-sim
To regenerate software tests:
make chim-sw
To regenerate SoC Regs:
make regenerate_soc_regs
To rebuild the snitch bootrom:
make snitch_bootrom
cd target/sim/vsim
vsim
source setup.chimera_soc.tcl
source compile.tcl
source start.chimera_soc.tcl