Registers
The RV32IM architecture defines a set of 32 general-purpose registers (x0 to x31), which are 32 bits wide. These registers are used to store data and perform computations within the CPU core.
Name |
Width |
Number |
Description |
---|---|---|---|
x0 |
32 |
0 |
Hard-wired zero |
x1 |
32 |
1 |
Return address |
x2 |
32 |
2 |
Stack pointer |
x3 |
32 |
3 |
Global pointer |
x4 |
32 |
4 |
Thread pointer |
x5 |
32 |
5 |
Temporaries (1) |
x6 |
32 |
6 |
Temporaries (2) |
x7 |
32 |
7 |
Temporaries (3) |
x8 |
32 |
8 |
Temporaries (4) |
x9 |
32 |
9 |
Temporaries (5) |
x10 |
32 |
10 |
Temporaries (6) |
x11 |
32 |
11 |
Temporaries (7) |
x12 |
32 |
12 |
Reserved for platform use |
x13 |
32 |
13 |
Reserved for platform use |
x14 |
32 |
14 |
Reserved for platform use |
x15 |
32 |
15 |
Reserved for platform use |
x16 |
32 |
16 |
Reserved for platform use |
x17 |
32 |
17 |
Reserved for platform use |
x18 |
32 |
18 |
Reserved for platform use |
x19 |
32 |
19 |
Reserved for platform use |
x20 |
32 |
20 |
Reserved for platform use |
x21 |
32 |
21 |
Reserved for platform use |
x22 |
32 |
22 |
Reserved for platform use |
x23 |
32 |
23 |
Reserved for platform use |
x24 |
32 |
24 |
Reserved for platform use |
x25 |
32 |
25 |
Reserved for platform use |
x26 |
32 |
26 |
Reserved for platform use |
x27 |
32 |
27 |
Reserved for platform use |
x28 |
32 |
28 |
Reserved for platform use |
x29 |
32 |
29 |
Reserved for platform use |
x30 |
32 |
30 |
Reserved for platform use |
x31 |
32 |
31 |
Reserved for platform use |
Additionally, there are special-purpose registers, including the program counter (PC), stack pointer (SP), and various control and status registers (CSRs) used for managing exceptions, interrupts, and other system-level operations.
The THEJAS32 SoC may also include additional registers for specific purposes, such as peripheral control and configuration.