RISC-V extensions

What is a RISC-V extension?

A RISC-V extension refers to additional instruction set functionality that goes beyond the base integer RISC-V ISA. The RISC-V base integer ISA provides a minimal set of instructions that are common across all RISC-V implementations. However, the modular design of RISC-V allows for the inclusion of various extensions that provide additional capabilities and features.

There are two types of extension under the RISC-V standard. Firstly there are optional standard extensions that are ratified by RISC-V International. Examples include -A atomic, -C compressed, -F floating point and -V vector extensions. Secondly, RISC-V allows users to define non-standard custom instructions. Designers using the RISC-V ISA can tailor their designs to their software workload by combining optional extensions, custom instructions with the base integer ISA.


RISC-V extensions can be divided into standard extensions and custom extensions.

Standard extensions:

Standard extensions are predefined sets of instructions that are designed to meet specific requirements or target application domains. The RISC-V specification defines several standard extensions, each denoted by a single-letter abbreviation. For example, RV32I/RV64I is the base integer instruction set for 32-bit or 64-bit implementations.

Custom extensions:

The modularity of RISC-V allows for the creation of custom extensions that are tailored for specific applications but the encoding space is defined. Custom extensions are not part of the standard RISC-V specification. Custom extensions can enable domain-specific optimizations, accelerators, or specialized operations, providing enhanced performance or capabilities for specific workloads.

Why create RISC-V extensions?

RISC-V extensions provide a means to extend the base instruction set with additional functionality, enabling customization. The modularity and openness of RISC-V facilitate the development of both standard and custom extensions, fostering an ecosystem of innovation and collaboration.

Getting started with Codasip