tastynoob
Articles58
Tags18
Categories7
FPGA-RISCV内核入门6

FPGA-RISCV内核入门6

取指段及译码段细节分析

首先是储存器说明

一般为了保证时序,所有原件皆为上升沿触发

但是这里为了保证简便和稳定

在取指段中将储存器读写改为下降沿

这样在取指时,上升沿发出地址,下降沿储存器读取地址发出数据

第二个上升沿取指读取,虽然可能降低时序,但是保证了简洁于稳定

译码段中单独的把访存信息留了一个输出

这是为了解决因为访存带来的数据冲突

如果译码段检测到是访存指令

则暂停流水线3个周期

这里没有考虑读写延迟,因此直接暂停3个周期

对于跳转控制也是得益于在下降沿储存器输出指令

因此只需在上升沿检测到跳转信号则跳转,不用担心跳转错误

也不用暂停流水线

初次之外,译码段发出寄存器读写地址信号

译码段到执行段的连接段接收

寄存器读放在执行段

这里实际上可以将寄存器读数据直接放在译码段

可以节约时序,但当时并未考虑

因此就保留了下来

译码段实际上可以译码出更详细的信息

防止执行段二次译码

这里也并未考虑

毕竟是第一版作品

更多优化技巧可以多思考思考

Author:tastynoob
Link:https://tastynoob.github.io/1970/01/01/RISCV/RITTER-CORE6/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×