RISC-V写回级
RISC-V WB Stage 设计
WB Stage 主要功能部件是一个 4 选 1 Mux,根据 regWBSrcM 做写回选择,其输出结果送回到 RF 的写入数据输入端口
WB 输入
| Port Name | Source | Description |
|---|---|---|
| regWBEnM | MEM/WB pipeline | ID 级计算得到,由流水线传递的写回使能信号 |
| rdM[4:0] | MEM/WB pipeline | ID 级计算得到,由流水线传递的写回寄存器索引 |
| regWBSrcM[1:0] | MEM/WB pipeline | ID 级计算得到,由流水线传递的写回数据选择信号 1. alu: 0x00 2. D-mem: 0x01 3. imm: 0x10 4. pc+4: 0x11 |
| aluResultM[31:0] | MEM/WB pipeline | ALU 计算得到的结果,由流水线传递 |
| memReadData[31:0] | Data-Memory output | 由 D-Memory 读出,由于 D-Memory 本身有 1 个 cycle 延迟,故该数据不经过流水线,直接给到 WB Stage |
WB 输出
| Port Name | Target | Description |
|---|---|---|
| regWBDataW[31:0] | ID stage | 经过 4x1 Mux 选择的写回数据,写回到 ID 的 RF |
| regWBEnM | ID stage | RF 写回使能信号 |
| rdW[4:0] | ID stage | RF 的写回 index |
由于 ID 级的 RF 需要一个 cycle 才可以写入,因此 WB Stage 的 output 被定义为 wire 类型,从而避免额外一个 cycle 的 RF 写入延迟,此时 WB 变成纯组合逻辑
TODO: 在引入了 CSR 单元之后,写回的来源也可能是来自于 CSR 寄存器的读数结果