单发射5级流水线 RISC-V CPU

使用 vivado 和 Nexys4-DDR 实现的单发射5级流水线 RISC-V CPU。

github

该CPU采用了五级流水线设计,分为取指——译码——执行——访存——写回五个阶段。实现了处理冒险的停顿和前递功能。

支持的指令集:除了 FENCE、ECALL、EBREAK 以外的所有RV32I指令集,共37条。

xgriscv_parts.v 实现了一些数据通路上的小部件,如pc寄存器、MUX、加法器、数据通路、寄存器等。
xgriscv_mem.v 实现了指令内存和数据内存。
xgriscv_alu.v 实现了算术逻辑部件运算器。
xgriscv_regfile.v 实现了32个通用寄存器。
xgriscv_controller.v 实现了控制器(向ALU和数据通路发送控制信号)。
xgriscv_datapath.v 实现了数据通路:将所有部件连接起来。
xgriscv_pipelined.v 是仿真时将所有流水线部件连接的顶层文件。
xgriscv_tb.v 产生仿真时的时钟信号。
xgriscv_fpga_top.v 是下载到 FPGA 时将外围电路和所有流水线部件连接的顶层文件。

经过各种玄学优化,代码跑到了 130 MHz。