RISC-V MCU中文社区

【分享】 Linux环境下div指令、divu指令测试异常现象

发表于 全国大学生集成电路创新创业大赛 2023-05-31 22:28:00
0
595
1

队伍CICC2259 队员:刘宇轩 周嘉琪 冷思远

由于团队修改了muldiv指令,需要测试div指令、divu指令是否功能正常:
rv32um-p-div:
图片alt
意外的,程序会产生自检报错(实际上这个报错在原工程中也会出现),通过info我们可以看到错误在e203_exu_alu_muldiv模块中产生,产生错误的指令为i_div,操作数rs1的值为ffff_ffec,操作数rs2的值为0000_0006,黄金参考结果golden_res的值为5555_5552,而我们的计算结果为ffff_fffd。我们使用电脑自带的计算器进行计算,其中rs1的十进制表示为-20,rs2的十进制表示为6,结果应当为-20/6=-3,转换为十六进制为ffff_fffd,这与我们的结果是一致的,而代码中的自检产生了错误,可以暂时注释掉代码中的自检部分:
在工程目录下的rtl文件夹中core/e203_exu_alu_muldiv.v文件:
图片alt
我们将其中第639行开始至731行全部注释,返回工程目录下的hbird-sdk目录下的vsim文件夹,执行make clean以及make install目录,再次运行make run_test SIM=vcs指令:
图片alt
指令测试无误,继续测试divu指令:
rv32um-p-divu:
图片alt

喜欢1
用户评论
zjq88584656

zjq88584656 实名认证

懒的都不写签名

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