Skip to content

pulp-platform/chimera

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

14ef011 · Nov 1, 2024

History

56 Commits
Aug 12, 2024
Sep 2, 2024
Oct 31, 2024
Jul 29, 2024
Oct 30, 2024
Oct 30, 2024
Aug 21, 2024
Jul 29, 2024
Oct 22, 2024
Aug 12, 2024
Nov 1, 2024
Nov 1, 2024
Jul 12, 2024
Aug 21, 2024
Sep 30, 2024
Oct 30, 2024
Oct 30, 2024
Aug 21, 2024

Repository files navigation

Chimera

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.

License

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.

Getting started

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

To regenerate software tests and libraries:

make chim-sw

This step must be executed before building the hardware to ensure the correct generation of the bootrom.

To build the host device bootrom:

make chim-bootrom-init

To build Chehsire simulation files for ModelSim:

make chs-sim-all

To build Chimera simulation files for ModelSim:

make chim-sim

Making Register modifications

To regenerate SoC Regs:

make regenerate_soc_regs

Making Bootrom modifications

To rebuild the snitch bootrom:

make snitch_bootrom

Simulation

cd target/sim/vsim
vsim
source setup.chimera_soc.tcl
source compile.tcl
source start.chimera_soc.tcl

CXX Formatting

To format all files within the sw directory, run

python scripts/run_clang_format.py -ir sw/

Our CI uses llvm-12 for clang-format, so on IIS machines you may run

python scripts/run_clang_format.py -ir sw/ --clang-format-executable=/usr/pack/riscv-1.0-kgf/pulp-llvm-0.12.0/bin/clang-format

python scripts/run_clang_format.py -ir hw/ --clang-format-executable=/usr/pack/riscv-1.0-kgf/pulp-llvm-0.12.0/bin/clang-format

otherwise you should specify a valid clang-format-12 binary instead.

Verilog Formatting

To format all hardware source files, run

verible-verilog-format --flagfile .verilog_format --inplace --verbose hw/*.sv target/sim/src/*.sv

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published