报名编号:CICC1137
团队名称:大衍
团队成员:王星距、郭柏炀、赵健棚
这是我们第一篇分享文章
RISC-V ISA在32位指令中预定义了4组自定义指令类型(custom -0, custom -1, custom -2, custom -3),每一组都有自己的操作码,如下表所示。
在E203内核中,用户可以使用这4个自定义指令组(custom -0, custom -1, custom -2, custom -3)用于NICE扩展,下图显示了NICE指令格式的详细信息,下表显示了NICE指令中各个字段的详细描述。
上述相关资料摘自《在手把手教你RISC-V CPU 上》
为实现对蜂鸟E203的F拓展,笔者未采用蜂鸟E203中遗存的FPU端口,选择NICE接口完成蜂鸟E203浮点运算指令拓展,在NICE端口设计完成FPU_control模块,通过NICE完成数据写回仲裁及数据传递,实现FPU浮点运算功能
基于上述NICE接口笔者拓展了float_add,float_sub,float_mul,float_div四条指令,Opcode均使用Custom-3指令组。因为只使用rs1,所以xs1为1,xs2为0
在C代码中我们定义函数float_add,float_sub,float_mul,float_div
这四部分函数可实现将DTCM或ITCM中的两个数据写入NICE接口以供FPU进行浮点加运算,进而实现FPU功能