RISC-V指令集架构(ISA)是一种基于精简指令集(RISC)原则的开源处理器架构。它支持32位和64位运算,包括整数、浮点、向量和自定义扩展等多种功能。RISC-V的模块化设计使得开发者可以根据具体需求选择适当的扩展,从而实现定制化的处理器设计。
phase1 已搭好一个简化的 32 位 RISC-V 三级流水线内核,形成了“取指 → 译码 → 执行并写回”的基本通路。目前重点是 ADDI、ADD 和寄存器数据相关的处理,还不是完整的 RV32I 内核。
已完成的部分
| 模块 | 当前功能 |
|---|---|
pc_reg / ifetch / rom | PC 复位为 0,每拍加 4;按地址从 ROM 取指 |
if_id / id_ex | 保存流水级之间的指令、地址、操作数和写回控制,复位时注入 NOP |
id | 提取指令字段,读取源寄存器,对 ADDI 的立即数做符号扩展 |
ex | 实现 ADDI、ADD,以及尚有错误的 SUB 分支 |
regs | 32 个 32 位寄存器、双读单写,保证 x0 读取为 0、禁止写入 |
open_risc_v_soc / tb | 连接内核和 ROM,加载程序,打印寄存器值 |
其中比较关键的是:寄存器堆已经加入 EX 结果到 ID 读端口的前递。当读取地址与当前写回地址相同时,直接使用执行结果,使相邻算术指令可以连续运行。
当前测试在验证什么
[测试程序](D:/Desktop/Job/RISC_V/phase1/tb/inst_data_ADD.txt)包含三条指令:
addi x27, x0, 38 addi x28, x0, 120 add x29, x27, x28预期最终结果为x27 = 38、x28 = 120、x29 = 158。第三条指令紧跟着使用 x28,能够检验前递是否生效。
目录中已有 ModelSim 工程、编译记录和波形文件。本次是源码检查,没有重新运行仿真,因此上述数值是预期结果,不能当作本次实测结论。