RISC-V MCU中文社区

【分享】 蜂鸟乘法器设计分享

发表于 开源蜂鸟E203 2023-05-30 13:11:23
0
750
0

队伍编号:CICC1181 团队名称:芯火

蜂鸟的乘法器主体设计在ALU模块的子单元MDV模块中,MDV模块包括乘除法器逻辑设计,它只包含运算控制,但并不包含具体运算,它们都需要将部分积或者部分余数传入数据通路(dpath模块)中,从而实现与其他指令复用一个加法器。

对于具体的乘法指令而言,包括MUL指令、MULH指令、MULHSU指令与MULHU指令,在四条乘法指令之中,仅有MUL指令是将乘法结果低32位写入寄存器中,并且存在着有符号数与无符号数的运算。蜂鸟中为了保证运算的一致性,统一在操作数前面补1位符号位,从而将无符号数转化为有符号数来进行运算。对于乘法,由于乘积的长度是被乘数长度的和,因此,对于两个32位整数相乘,会得到64位的乘积结果,由于在一条指令中将64位乘积写入两个32位寄存器会使硬件设计更加复杂,因此RV32使用2条乘法指令(MULH[[S]U] rdh, rsl, rs2; MUL rdl, rsl,rs2)来得到完整的64位乘积。对于以上情况的存在,蜂鸟E203将其视作back2back情况,back2back情况是指若两次指令的操作数都一样,则在第二次运行时可以单周期返回第一次指令运行的运算结果。

最后,蜂鸟E203中乘法实现使用基4(Radix-4)的Booth编码,共产生16个部分积,最终采用循环移位方式计算最终结果,以牺牲性能的方式换取了面积损耗。

喜欢0
用户评论
wxy111

wxy111 实名认证

懒的都不写签名

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