2. Nuclei RISC-V Instruction Set Overview¶
2.1. RISC-V ISA Modules supported by Nuclei Core¶
Nuclei processor core follows the RISC-V instruction set standard (riscv-spec-v2.2.pdf), user can easily get the original copy (riscv-spec-v2.2.pdf) from Nuclei User Center website or from other public channels.
RISC-V is the configurable modular instruction set. Nuclei processor core support the following instruction set modules:
RV32E: 32bits architecture, with 16 general purpose registers
RV32I: 32bits architecture, with 32 general purpose registers
RV64I: 64bits architecture, with 32 general purpose registers
M: Integer Multiplication and Division instructions
C: Compressed Instructions as 16bits Encoding to reduce code size
A: Atomic Instructions
F: Single-Precision Floating-Point Instructions
D: Double-Precision Floating-Point Instructions
P: Packed-SIMD Instructions
According to the naming rule from RISC-V standard, the above mentioned instruction set module can be combined, e.g., RV32IMAC, RV32IMFC, RV32IMAFDC, RV32IMAFDCP, etc. RISC-V standard also use the abbreviation G for the IMAFD combination, hence, RV32IMAFDC or RV64IMAFDC can be also abbreviated as RV32GC or RV64GC.
2.2. Nuclei Processor Core Classes: N, NX and UX¶
To differentiate the IP products with different positions, Nuclei divide the core products into 3 classes:
Nuclei N class: support RV32I or RV32E, for the 32bits microcontroller applications.
Nuclei N100 series core only support RV32E.
N100 is an extremely tiny-area core, which is not following the architectural spec in this document.
N100 has its own dedicated architectural spec. Please visit N100 Product for more information.
Nuclei N200 series core can be configured to support RV32E or RV32I.
Nuclei N300, N600, N900 series core only support RV32I.
Nuclei NX class: support RV64I without MMU, for the 64bits microcontroller applications.
Nuclei UX class: support RV64I with MMU, for the 64bits Linux capable applications.
The MMU can also be turned off by software, in this mode, UX class core can also work as microcontroller, i.e., Nuclei UX class core is downward-compatible to Nuclei NX class core.