当前位置: 首页 > 工具软件 > PicoRV32 > 使用案例 >

PicoRV32 笔记 03

司徒英卓
2023-12-01

PicoRV32支持的指令。

RV32I指令共有47条,如下表

RV32I指令

bit31 -bit25bit24 - bit20bit19 - bit15bit14 - bit12bit11 - bit7bit6 - bit0指令类型指令名称PicoRV32
立即数[31:12]rd7'b011_0111Ului支持
rd7'b001_0111Uauipc
立即数[20|10:1 |11 | 19:12]rd7'b110_1111Jjal
立即数[11:0]rs1000rd7'b110_0111Ijalr
立即数[12|10:5]rs2000立即数[4:1 | 11]7'b110_0011Bbeq
001Bbne
100Bblt
101Bbge
110Bbltu
111Bbgeu
立即数[11:0]000rd7'b000_0011Ilb
001Ilh
010Ilw
100Ilbu
101Ilhu
立即数[11:5]rs2000立即数[4:0]7'b010_0011Ssb
001Ssh
010Ssw
立即数[11:0]000rd7'b001_0011
 
Iaddi
010Islti
011Isltiu
100Ixori
110Iori
111Iandi
7'h0shamt001Islli
101Isrli
7'b010_0000101Israi
7'h0rs20007'b011_0011Radd
7'b010_0000000Rsub
7'h0001Rsll
010Rslt
011Rsltu
100Rxor
101Rsrl
7'b010_0000101Rsra
7'h0110Ror
111Rand
5'b000000005'b000007'b000_1111Ifence不支持
000000000000001Ifence.i
12'h000007'b111_0011Iecall支持
000Iebreak
CSRrs1001rdIcsrrw不支持
010Icsrrs
011Icsrrc
立即数101Icsrrwi
110Icssrrsi
111Icsrrci

PicoRV32添加的指令

添加10条指令,不包括乘法和除法指令

rdcycle, rdcycleh

rdinstr, rdinstrh

getq, setq, retirq, maskirq, waitirq

timer

bit31 - bit25bit24 - bitbit20bit19 - bit15bit14 - bit12bit11 - bit7bit6-0指令类型指令名称
20'b1100_0000_0000_0000_0010单元格无法合并rd7'b1110011Irdcycle
20'b1100_0000_0001_0000_0010
20'b1100_1000_0000_0000_0010Irdcycleh
20'b1100_1000_0001_0000_0010
20'b1100_0000_0010_0000_0010Irdinstr
20'b1100_1000_0010_0000_0010Irdinstrh
7'b0000000rs2000xx---rd7'b000_1011Rgetirq
7'b0000001rs2rs---000xxRsetirq
7'b0000010rs2rs---rdRretirq
7'b0000011rs2rs---rdRmaskirq
7'b0000100rs2rs---rdRwaitirq
7'b0000101rs2rs---rdRtimer

还有可选的乘法指令和除法指令

PicoRV32中添加的指令

rdcycle, rdcycleh

rdinstr, rdinstrh

其实是CSR指令的的几个特殊实现,RISC-V定义了CSR空间,但是PicoRV32没有实现CSR这里空间,只实现几个特殊寄存器

就是通过这几条指令 rdcycle, rdcycleh,rdinstr, rdinstrh。

 类似资料: