ARTICLE · 1104918
RV32I 5级流水线 core 源码
RV32I 5级流水线 core 源码
RISCV验证技术研究发了一套 RV32I 五级流水线 CPU 源码。
代码写得挺实在,主打一个“先跑起来再说”。目前只支持基础的整数指令,像 CSR、中断和 fence 指令都没做。遇到非法指令,直接当成空操作(nop)处理。
整个 CPU 按经典的五个阶段拆开写:
取指与译码:从复位地址 0x8000_0000 开始取指令。译码器负责把指令拆解成控制信号,并生成各种格式的立即数。
执行与访存:执行单元里内置了数据前递(旁路)模块。遇到 EX 或 WB 段的结果冲突,直接拿来用,不用干等。
写回与冒险:只有遇到 Load-Use 这种真依赖时,流水线才会暂停一拍。一旦在 MEM 段碰到 EBREAK 指令,CPU 就会停机。
这套代码结构很清晰,非常适合拿来入门学习。作者也说了,后续还会慢慢往里加新功能。
原文RV32I 5级流水线 core 源码
广东,1小时前,