通过verilog代码设计一款支持RV32I基础指令集的RISC-V处理器,完成RTL设计,并且通过整体设计而不是分模块设计,实现以下指令1. 整数计算指令(Integer Computational Instructions)10个
1.1 寄存器-寄存器操作(R-type)
ADD rd, rs1, rs2 // 加法
SUB rd, rs1, rs2 // 减法
SLL rd, rs1, rs2 // 逻辑左移
SLT rd, rs1, rs2 // 有符号比较(set if less than)
SLTU rd, rs1, rs2 // 无符号比较
XOR rd, rs1, rs2 // 异或
SRL rd, rs1, rs2 // 逻辑右移
SRA rd, rs1, rs2 // 算术右移
OR rd, rs1, rs2 // 或
AND rd, rs1, rs2 // 与
1.2 立即数操作(I-type) 9个
ADDI rd, rs1, imm // 加立即数
SLTI rd, rs1, imm // 有符号比较立即数
SLTIU rd, rs1, imm // 无符号比较立即数
XORI rd, rs1, imm // 异或立即数
ORI rd, rs1, imm // 或立即数
ANDI rd, rs1, imm // 与立即数
SLLI rd, rs1, imm // 立即数逻辑左移(imm[5:0])
SRLI rd, rs1, imm // 立即数逻辑右移
SRAI rd, rs1, imm // 立即数算术右移
________________________________________
2. 控制转移指令(Control Transfer Instructions) 8个
2.1 无条件跳转
JAL rd, offset // 跳转并链接(保存PC+4到rd)
JALR rd, rs1, offset // 间接跳转(PC = rs1 + offset)
2.2 条件分支(B-type)
BEQ rs1, rs2, offset // 相等跳转
BNE rs1, rs2, offset // 不等跳转
BLT rs1, rs2, offset // 有符号小于跳转
BGE rs1, rs2, offset // 有符号大于等于跳转
BLTU rs1, rs2, offset // 无符号小于跳转
BGEU rs1, rs2, offset // 无符号大于等于跳转
3. 加载与存储指令(Load & Store, I-type & S-type) 8个
LB rd, offset(rs1) // 加载字节(符号扩展)
LBU rd, offset(rs1) // 加载字节(无符号扩展)
SB rs2, offset(rs1) // 存储字节
最新发布