RISC-V MCU中文社区

【分享】 蜂鸟E203的浮点指令集F的一些实现细节

发表于 开源蜂鸟E203 2023-05-10 16:01:14
0
956
0

1 队伍介绍

报名编号:CICC1907
团队名称:Hollow-SEKIRO-ARCAEA
学校名称:东南大学
指导老师:刘昊
团队成员:申烁、徐轶凡、林昊

这是我们第五篇分享文章。

2 蜂鸟E203的浮点指令集F的一些实现细节

既然E203不是多发射,且为了节省面积,一些指令使用FPU内的同一个子模块来执行,即FPU同时只能进行一种计算,我们只在FPU内部署了11个子模块,每种对应一或多个功能,如其中的子模块:e203_exu_fpu_madd_msub_n可以执行四种指令:fmadd.s、fmsub.s、fnmsub.s、fnmadd.s。其内部包括一个能改变计算模式的专用IP,这样就能在输入不变时根据不同模式输出四种结果。增加模式信号意味着需要多一组握手信号,而输入数据的握手信号直接根据FPU的输入握手和来自rs1、rs2、rs3的数据输入输出的,所以模式信号也随输入数据的握手信号一致。而我们在实现时,无IP核的模块从简,不给模式信号加握手。
有operation信号的IP核:
图片alt
需注意的是,IP核可以选择添加时钟使能信号,此信号会控制时钟是否翻转,用以降低功耗,因此如果多个IP核运算周期设计的不一致,如乘法两个周期,加法一个周期时,注意需要让乘法模块的clken多延时一个周期。而为了节省片上面积且改善时序,我们参考了一些案例,给不同算法的模块设置了不同的运算周期。

3 总结

本文介绍的内容是为了完成基础功能:对蜂鸟E203 RISC-V内核的微架构实现进行一定优化,在添加F拓展的过程中的一些记录。

喜欢0
用户评论
Lri-SKY

Lri-SKY 实名认证

懒的都不写签名

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