0.15
There's a lot of open issues
Various utilities to help with generating artifacts from UDB.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

>= 0
>= 0
 Project Readme
UDB banner
REUSE status
This project is under rapid development. Expect schemas and APIs to change.

The data in the `spec` directory is also a work in progress and may be incorrect.

That said, the following data has been validated against third-party sources:

* Instruction encodings are validated to match riscv-opcodes
* Instruction names and assembly formats are validated against LLVM.

Overview

The goal of the RISC-V Unified Database (UnifiedDB/UDB) is 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.

In addition to storing the data, UnifiedDB also provides many tools that use the data to generate artifacts such as specification documents, toolchain inputs, and simulators.

UnifiedDB is an open-source, worldwide project. Contributors do not need to be members of RISC-V International (RVI), though maintainers discuss strategic direction and coordinate with the RISC-V standard through the UnifiedDB Special Interest Group (UDB SIG) at RVI.

Repository structure

The following directories contain information relevant to most users of UnifiedDB

  • spec: Holds all data specification files, along with their schemas

  • spec/std: The RISC-V standard

  • spec/custom: Non-standard RISC-V extensions

  • spec/schemas: Data schemas for the specification content

  • cfgs: Configurations used by backends to customize generated outputs

Additionally, developers will be interested in the following:

  • backends: Tools to generate artifacts (documents, simulators, etc.) from UDB data

  • tools/ruby-gems: Ruby gem libraries for interacting with UDB / IDL

  • bin: Wrapper scripts to run commands within the container environment

Getting Started

Prerequisites

UnifiedDB tools are set up to run in a container. Docker (any version) and Podman (any version) are supported.

Devcontainer

You can also leverage 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 Docker installed.

With Docker installed, install the 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

./bin/regress -h             # get help on running regression tests

./bin/generate -h            # get help on generating content from UDB

./bin/chore -h               # get help on running repository development chores