RISC-V MCU中文社区

【分享】 对浮点指令扩展中部分问题的解决与分享

发表于 全国大学生集成电路创新创业大赛 2023-05-23 19:36:41
0
1394
0

组别:CICC3327

背景:

经过数周的前期准备与研读代码,我们组终于正式开始对浮点指令进行扩展并不出意外地遇到了一些小问题,本篇文章针对这些问题作出解决方法的分享。

一.
在e203_exu_decode中,发现变量leg1_ops用于标识各种类型的运算指令,而我们由于没有加上浮点指令,所以在浮点进入后,此处变量leg1_ops为0,导致后续指令执行出错。
图片alt
图片alt

而加上float_op后再进行仿真就会解决此问题
图片alt

二.
在使用fcvt.s.w指令进行测试时,预期结果并没有在float_o_fcvt中出现。原因是浮点运算模块中的复位信号是1为有效,但在蜂鸟中复位信号是0,导致浮点运算模块一直被复位,所以无法计算
图片alt
图片alt
图片alt

三.
还有一个问题在写回模块,因为蜂鸟模块对0、1号等寄存器进行了相应的保护机制,而我们用的指令功能恰好是写入0号浮点寄存器,所以出现无法写的情况。

结论

以上就是我们组在扩展浮点指令中出现的一些问题,这些问题总体上归结于对蜂鸟的代码没有整体性的把握,对内容的掌握程度还不够。在后续的工作中应注意理清功能的整体架构而对所有的相关部分进行修改。

喜欢0
用户评论
chinhan

chinhan 实名认证

懒的都不写签名

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