RISC-V MCU中文社区

【分享】 e203 F指令扩展

发表于 全国大学生集成电路创新创业大赛 2023-05-31 17:58:54
0
1223
0

队伍编号:CICC3280 团队名称:芯新星队

接上文讲述F指令扩展之后,我们讲解针对e203进行F指令扩展的具体实现

取指单元

在取指单元(IFU)中,为方便后续运算的进行,需要修改FPU与IR寄存器相关的信号,以便其取指后传递到执行单元(EXU)中并针对F指令的相关功能执行对应操作。
IR寄存器用于存储操作数在寄存器中的索引位,并且该索引位需要完成对整数寄存器以及浮点寄存器的判断。判断索引位的位置信息以及对应寄存器信息,需要利用取值阶段的简单译码单元来进行(minidec)。

译码单元

译码阶段的主要工作是对所有指令的信息进行译码,将其译成对应的指令操作传给派遣单元,针对F指令扩展对应的指令格式不再过多赘述(详见RISC-V官方文档)。

派遣单元

在派遣单元(exu_disp)中,需要利用译码阶段的信息以及取指阶段中IR寄存器的信息实现向后续功能模块的传递(包括ALU,FPU,OITF)。针对后续的FPU信息传递,本队将FPU的位置放置于ALU模块的同级。
在该架构的设计中会同时运行FPU和ALU模块,并且冲刷信号会从ALU模块引出至FPU模块以完成冲刷的操作,在并行状态下保证握手信号的正确性可以提高FPU的运行效率以及确保ALU的功能正常。

OITF模块

OITF单元本质上是一个FIFO缓存,E203中设置该滞外指令追踪FIFO模块,用于检测与长指令相关的写后读(RAW)和写后写(WAW)相关,原版E203中已经对F指令的相关操作进行了填充,只需将需要的端口信号接入即可完成对F指令数据相关操作的判断。

FPU例化模块

依照自己所设计的FPU单元接口进行对应信号的例化。

写回模块

在写回部分需要不改变原本E203写回逻辑的基础上,在原本的基础上增加关于FPU的通路。自行增加输出仲裁。

csr模块

csr主要负责储存系统运行的一些信息和控制系统的某些状态。依照RISC-V官方手册,扩展FPU的csr主要需要增加csr_mstatus 中的fs寄存器的一些控制功能,以及一个32位的fcsr寄存器。

喜欢0
用户评论
Burch

Burch 实名认证

新星

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板