RIDECORE学习记录之一

一、背景

RIDECORE(RIsc-v Dynamic Execution CORE)是由东京工业大学 Arch Lab 开发的一款 2 路超标量乱序执行(Out-of-Order)RISC-V 处理器,使用 Verilog HDL 编写,支持 RV32IM 指令集。其微架构参考了《Modern Processor Design: Fundamentals of Superscalar Processors》一书,并在 Xilinx VC707 开发板上实现了 50MHz 的 FPGA 原型。

二、项目文件结构介绍

0.项目根目录

文件/目录说明
README.md项目说明文档,包含工具链安装、使用方法等
LICENSE开源许可证
.gitignoreGit 忽略规则
doc/项目文档目录
src/源代码目录(FPGA 设计与测试)
toolchain/辅助工具链目录
  1. doc/ — 文档目录
文件说明
ridecore_document.pdf英文版详细设计文档(建议优先阅读)
ridecore_document_jp.pdf日文版设计文档
RISC-V-subset.pdf所支持的 RISC-V 指令子集说明
struct_repository.pdf仓库文件结构说明文档
  1. src/fpga/ — 核心 RTL 源代码
    该目录包含约 50 个 Verilog 文件,实现了完整的乱序超标量处理器。按功能模块划分如下:

顶层与系统
top.v — FPGA 顶层模块
topsim.v — 仿真顶层模块
system.v — 系统级封装
main.xdc — Vivado 约束文件(针对 VC707)

流水线与取指
pipeline.v — 核心流水线顶层
pipeline_if.v — 取指阶段(IF)流水线
imem.v — 指令存储器接口
imem_outa.v — 指令存储器输出地址处理

译码与发射
decoder.v — 指令译码器
imm_gen.v — 立即数生成
brimm_gen.v — 分支立即数生成
alloc_issue_ino.v — 指令分配与发射(in-order 部分)

寄存器文件与重命名
arf.v — 架构寄存器文件(Architectural Register File)
rrf.v — 物理寄存器文件(Reorder Buffer / Register File)
rrf_freelistmanager.v — 空闲物理寄存器管理

保留站(Reservation Stations)
rs_alu.v — ALU 运算保留站
rs_branch.v — 分支指令保留站
rs_ldst.v — 访存指令保留站
rs_mul.v — 乘法指令保留站
rs_reqgen.v — 保留站请求生成

执行单元
exunit_alu.v — ALU 执行单元
exunit_branch.v — 分支执行单元
exunit_ldst.v — 访存执行单元
exunit_mul.v — 乘法执行单元
alu.v — ALU 核心
multiplier.v — 乘法器

访存与存储缓冲
dmem.v — 数据存储器接口
storebuf.v — Store Buffer(解决非阻塞缓存/顺序提交问题)
dualport_ram.v — 双端口 RAM
ram_sync.v / ram_sync_nolatch.v — 同步 RAM 实现(带/不带锁存器)

重排序与提交
reorderbuf.v — 重排序缓冲(ROB),支持按序提交
分支预测
gshare.v — Gshare 分支预测器
btb.v — 分支目标缓冲(Branch Target Buffer)
mpft.v — 分支预测相关辅助模块

辅助模块
oldest_finder.v — 最旧指令查找(用于 ROB/提交)
tag_generator.v — 标签生成器
src_manager.v / srcopr_manager.v / srcsel.v — 源操作数管理/选择
search_be.v — 字节使能搜索
prioenc.v — 优先级编码器
uart.v — UART 串口模块(用于 FPGA 输出)

头文件与常量
constants.vh / define.v — 全局常量与宏定义
alu_ops.vh — ALU 操作码定义
rv32_opcodes.vh — RISC-V RV32 操作码定义

  1. src/test/ — 测试与验证
    src/test/ridecore/ — RIDECORE 处理器测试
子目录说明
app/示例 C/汇编测试程序(如 fib, matmul, hanoi, sort_3, stencil, tarai 等 15+ 个 benchmark)
bin/编译后的二进制文件(init.bin
sim/Verilog 仿真测试平台

src/test/ridecore/sim/ 关键文件:
Makefile — 编译仿真工程
testbench.v — 调试模式 testbench(每周期报告处理器状态)
testbench_last.v — 静默模式 testbench(仅输出最终结果)
testbench_pred.v — 分支预测信息报告 testbench
alu_ops.vh, constants.vh, rv32_opcodes.vh — 仿真用头文件

src/test/singlecyc/ — 单周期参考模型
sim/ — 单周期模型仿真环境
verilog/ — 单周期参考模型 Verilog 代码

  1. toolchain/ — 软件工具链
目录说明
memgen-v0.9/将 RISC-V ELF 文件转换为 Verilog 仿真可用的二进制初始化文件(init.bin)的工具
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值