Skip to main content

Ext Schema

v0.1
Auto-generated

This page is generated from ext_schema.json by the schema doc generator. To update this page, edit the schema file and run bin/chore gen schema-docs.

An ISA extension defines a named set of instructions, CSRs, and behaviors that can be implemented by a RISC-V processor. Each extension has one or more versioned releases, with various ratification states (development, frozen, public-review, ratification-ready, ratified, or nonstandard-released).

Key Fields​

  • name: Short identifier used throughout the database (e.g., I, M, Zicsr, Smstateen)
  • long_name: Human-readable one-line description
  • description: Full AsciiDoc documentation of the extension
  • type: Whether the extension is unprivileged or privileged
  • versions: Array of versioned releases, each with a state and optional ratification_date
  • requirements: Optional condition that must be true for the extension to be implementable (e.g., requires another extension)
  • company: Organization that developed the extension (defaults to RISC-V International for standard extensions)
  • doc_license: License for the extension documentation

Quick Start​

Minimal Extension (Zicsr):

"$schema": ext_schema.json#
kind: extension
name: Zicsr
long_name: Control and status register instructions
description: Control and status register instructions
type: unprivileged
versions:
- version: 2.0.0
state: ratified
ratification_date: 2019-04

Properties​

PropertyTypeRequiredDescription
$schemastring (const: ext_schema.json#)βœ“Schema reference - must be ext_schema.json#
kindstring (const: extension)βœ“Document type identifier - must be extension
nameExtension name (e.g., I, M, Zicsr, Smstateen)βœ“
long_namestringβœ“One-line human-readable name for the extension (e.g., Address generation, Bit Manipulation)
descriptionstring | Array<conditional_text>βœ“Full AsciiDoc documentation of the extension. May include multiple paragraphs, code examples, and cross-references.
typeunprivileged | privilegedβœ“Privilege level of the extension. unprivileged extensions add instructions or behaviors accessible in user mode; privileged extensions add supervisor- or machine-mode functionality.
versionsArray<object> ↓ schemaβœ“Ordered list of versioned releases of this extension, from oldest to newest.
rvi_jira_issuestringJIRA issue number tracking this extension in the RISC-V International issue tracker
companyA companyOrganization that developed this extension. Omit for RISC-V International standard extensions.
doc_licenseLicense that applies to the textual documentation for this extensionLicense for the extension documentation
requirementsA condition (YAML structure or IDL function). See the conditions reference for details.Condition that must be true for this extension to be implementable. If the condition is false, the extension cannot be implemented. Typically used to express that one extension requires another (e.g., D requires F).
cert_normative_rulesArchitecturally visible behaviors requiring validation by certification tests
versions item schema
PropertyTypeRequiredDescription
versionstringβœ“Version number in MAJOR.MINOR.PATCH format (e.g., 1.0.0, 2.1.0)
statedevelopment | frozen | public-review | ratification-ready | ratified | nonstandard-releasedβœ“Ratification state of this version. See spec_state in schema_defs for all possible values and their meanings.
repositoriesArray<object>Source repositories where this version of the extension is developed
ratification_dateOne of: string | string | nullMonth when this version was ratified, in YYYY-MM format. Use unknown if the date is not recorded. Required when state is ratified.
release_dateOne of: string | string | null
changesArray<string>List of changes introduced in this version relative to the previous version
urlstringURL to the ratified specification document (e.g., a PDF on the RISC-V website)
contributorsArray<object>People who contributed to this version of the extension
requirementsobject | object | object | object | object | objectAdditional condition that must be true for this specific version to be implementable, beyond any requirements on the extension overall. If the condition is false, this version cannot be implemented.
Tooling field

$source is an optional field set automatically by UDB tooling to record the file path this object was loaded from. You do not need to set it manually.

Examples​

Extension with Requirements (B)
"$schema": ext_schema.json#
kind: extension
name: B
long_name: Bit Manipulation
description: The B standard extension comprises instructions provided by the Zba,
Zbb, and Zbs extensions.
type: unprivileged
company:
name: RISC-V International
url: https://riscv.org
doc_license:
name: Creative Commons Attribution 4.0 International License
url: https://creativecommons.org/licenses/by/4.0/
versions:
- version: 1.0.0
state: ratified
ratification_date: 2024-04
url: https://drive.google.com/file/d/1SgLoasaBjs5WboQMaU3wpHkjUwV71UZn/view
requirements:
extension:
allOf:
- name: Zba
version: "= 1.0.0"
- name: Zbb
version: "= 1.0.0"
- name: Zbs
version: "= 1.0.0"

Schema Information​

PropertyValue
Versionv0.1
JSON Schema VersionDraft 07