/riscv-unified-db

Machine-readable database of the RISC-V specification, and tools to generate various views

Primary LanguageRubyOtherNOASSERTION

RISC-V Unified Database

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:

  • A (eventually complete) description of the RISC-V specification in a machine-readable format.

  • A tool to generate multiple views of that spec, including:

    • A configuration-specific, human-readable documentation webpage

    • [COMING SOON] A configuration-specific Instruction Set Simulator

    • More backends are planned

Prerequisites

The only requirement is the Singularity CE or Apptainer container system. Either one will work (they are forks).

If it is not installed, either as 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 Singularity Fakeroot Documentation for more information.

Setup

Do once:

./bin/setup

# or, if you also want development tools (:development group in Gemfile) installed
# DEVELOPMENT=1 ./bin/setup
Note
If you forget, don’t worry. Setup will be invoked by any program in bin/ if necessary.

VSCode

If using Visual Studio Code and want to use development tools, you will need to restart the editor after setup.

Helpful extensions are

The .vscode/settings.json file in the repo will ensure that Solargraph works without any additional configuration (assuming you’ve already run ./bin/setup).

Tasks

Quick start:

./do --tasks                 # list all documented tasks

# examples
./do gen:arch[generic_rv64]  # generate arch spec for the 'generic_rv64' config
./do validate                # validate against the schema

More info