首页 > 编程知识 正文

riscv中文手册,riscv64

时间:2023-05-03 09:53:42 阅读:18424 作者:2198

cva6的乘除模块由四个文件组成,移植时只需要这四个文件,每个文件如下:

(已上传cva6代码)

在mult.sv multiplier.svserdiv.svl ZC.SV中,乘除模块和管线的接口只有mult.sv,该交互发生在ex阶段,因此在移植时mult.SV

mult.sv文件实例化了在serdiv.sv和multiplier.sv中定义的模块。 这两个文件分别完成了除法和乘法,serdiv.sv实例化了lzc.sv文件中定义的模块。 该模块主要完成前0个计算。

mult模块输入输出信号input:

clk_i :时钟信号rst_ni :复位信号flush_i :流水线清洗信号mult_valid_i:表示是否需要调用mult,如果指令是m指令,则为1fu _ data _ I 后述的operand_a:rs1数据operand_b:rs2数据imm:可以使用,全位置0trans_id:也可以使用,如果是m命令,则为1fu_data_I33604比特

result_o:乘除结果,mult_valid_o:计算完成后,该信号为1mult_ready_o:为mult_trans_id_o:为358 www .

typedefenumlogic [ 3:0 ] {/multiplicationsmul,MULH,MULHSU,MULW,//DivisionsDIV,DIVU,DIVW,DIVUW ()

输入输出信号分析完成,在解码和执行阶段稍微修改代码,即可完成m指令的移植。 请注意,cva6的乘除模块是64位,如果要移植到32位cpu内核中,必须更改信号的位数。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。