= RISC-V Unified Database
== Generated artifacts
The following artifacts have been generated from the top of the main
branch:
== Overview
The RISC-V Unified Database is intended to hold all the information needed to describe RISC-V, including a list of extensions, instruction specifications, CSR specifications, and documentation prose. The vision is that anything one would need for RISC-V can be generated from the information in this repository.
This repository contains:
== What can it do?
=== Working examples:
./do gen:html[generic_rv64]
).
Only implemented extensions/instructions/CSRs are included
Unreachable/unimplemented parts of the formal specification are pruned away
A dedicated documentation page for every implemented instruction, including its encoding, pruned execution behavior, and what types of exceptions it may cause.
A dedicated documentation page for every implemented CSR, including its (possibly runtime-changing) encoding, fields, and pruned behavior on reads and writes
** Clickable links to all mentions of instructions, extensions, CSRs, CSR fields, and glossary terms../do gen:ext_pdf[B]
)
Automatically include a complete list of added instructions and CSRs
Per-instruction documentation
Per-CSR documentation
Formal specification./do gen:cfg_arch[generic_rv64]
).=== Possibilities:
== Prerequisites
There are two supported ways to run the RISC-V Unified Database, both of which are container-based.
=== Singularity/Apptainer
You can run within Singularity CE
(>= 3.3) or Apptainer
(>= 1.0) container system. Either one will work (they are forks).
If it is not installed, either ask your IT admin or:
[NOTE]
You do not need root privileges to download or use the container. However, to modify/build the container,
you will need either root privileges or the ability to run in fakeroot
mode. See https://docs.sylabs.io/guides/4.1/user-guide/fakeroot.html[Singularity Fakeroot Documentation] for more information.
When you run with Singularity/Apptainer, the files under bin/
will run within the container, e.g.:
./bin/ruby --version
# => ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [x86_64-linux-gnu]
=== Devcontainer
You can also leverage https://containers.dev/[devcontainers] to run the RISC-V Unified Database.
This is especially useful when using Visual Studio Code or GitHub codespaces, as it will setup up your IDE environment for you.
==== VS Code
To run the devcontainer locally, you will need to have https://docs.docker.com/engine/install[Docker installed].
With Docker installed, install the https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers[Dev Containers] extension in VS Code.
You can then run Dev Containers: Open Folder in Container...
from the Command Palette (Ctrl+Shift+P) and select the folder with this repository.
==== GitHub Codespaces
You can start a GitHub Codespace for this repository by clicking the "Code" button and selecting "Open with Codespaces".
== Tasks
Quick start:
./do --tasks # list all documented tasks
./do validate
./do gen:html_manual MANUAL_NAME=isa VERSIONS=all
== More info