Easiest way to get started without dealing with all the dependencies is to use the docker .devcontainer
that was prepared.
This will create and prepare a virtual machine image and install all the required dependencies.
-
Install
-
Pull the docker image with
docker pull saw235/riscv-dev-container:latest
-
Create a Github fork of this repository. See Development Flow below
-
git clone git@github.com:<your_username>/riscv-core-dev.git
-
cd riscv-core-dev && code .
-
When VSCode prompt to "reopen in container" -> Yes (Or Shift + P -> "Reopen in Container")
-
Once the folder is reopened in the container, you can use
ctrl
+`
to open up a bash terminal for the container.
The docker image is persistent and cached so only the first run will take up download time.
Before running any simulation or rtl related commands, you should run the following to register your RTL and pull all other RTL dependencies in FuseSoC (our HDL package manager)
fusesoc library add riscv-core-dev .
fusesoc library add lowrisc_prim https://github.com/saw235/lowrisc_prim
fusesoc run --target=sim riscv-sv
fusesoc run --target=formal riscv-sv
Gatekeeper tests are required to be passed before any pull request merge can continue. These tests can be run via the Actions
tab on github or locally with pytest
:
# runs all
pytest
# runs tests in the (tests/smoke directory)
pytest tests/smoke
# runs a subset of test that matches the pattern
pytest -k <pattern>
- Send an email to sawxuezheng01@gmail.com titled "uarch contrb request" and I will share with you the link to the folder which host all the drawio files.
- The updated microarchitecture in SVG format should be located in the
doc/uarch
folder. - Pull/merge request related to the microarchitecture should be tagged with the keyword UARCH. For example "UARCH - Bitmanip Extension" or "UARCH - FPU"