kuznia-rdzeni / coreblocks

RISC-V out-of-order core for education and research purposes
https://kuznia-rdzeni.github.io/coreblocks/
BSD 3-Clause "New" or "Revised" License
33 stars 13 forks source link
risc-v riscv

Coreblocks

Coreblocks is an experimental, modular out-of-order RISC-V core generator implemented in Amaranth. Its design goals are:

In the future, we would like to achieve the following goals:

State of the project

The core currently supports the full RV32I instruction set and several extensions, including M (multiplication and division) and C (compressed instructions). Exceptions and some of machine-mode CSRs are supported, the support for interrupts is currently rudimentary and incompatible with the RISC-V spec. Coreblocks can be used with LiteX (currently using a patched version).

The transaction system we use as the foundation for the core is well-tested and usable. We plan to make it available as a separate Python package.

Documentation

The documentation for our project is automatically generated using Sphinx.

Resource usage and maximum clock frequency is automatically measured and recorded.

Contributing

Set up the development environment following the project documetation.

External contributors are welcome to submit pull requests for simple contributions directly. For larger changes, please discuss your plans with us through the issues page or the discussions page first. This way, you can ensure that the contribution fits the project and will be merged sooner.

License

Copyright © 2022-2024, University of Wrocław.

This project is three-clause BSD licensed.