RISC-V MCU中文社区

【分享】 Booth编码的原理及选择

发表于 全国大学生集成电路创新创业大赛 2023-05-31 10:02:23
0
1486
1

1 队伍介绍
报名编号:CICC1981
团队名称:鼠队
团队成员:赵嗣纬,熊园园,林欣铨

Booth提出该算法的初衷是基于当时计算机中的移位运算比加法运算要快这个硬件环境,其目的是通过移位运算代替部分加法运算来提高乘法运算速度。然而,Booth算法更大的优势在于,它对有符号数和无符号数乘法具有“一视同仁”的优秀品质,即采用Booth算法,可以对有符号数和无符号数乘法进行同样的处理,并得到正确的结果。从硬件实现的角度来讲,这无疑具有相当的吸引力。
在乘法器的设计中,很大一部分运算时间和硅片面积都花费在对部分积的累加求和上。减少部分积的个数是减少部分积的累加求和的有效手段。Booth 算法是目前用于缩减部分积个数最常用、最有效的算法。基4 Booth编码可以将部分积的个数减少一半,随着编码位数的增多,部分积的数目更少。基8 Booth编码只需要产生n/3个部分积,但是基8 Booth编码需要3M (M为被乘数)操作,部分积产生的电路越来越复杂,部分积产生需要的时间也在增加,这在一定程度上抵消了部分积减少带来的好处。因此,基4 Booth编码在面积功耗和速度上是最优的。

图片alt

当乘数位数为n 时,基4 Booth编码产生(n+2)/2个取自集合P={-2M,-M,0,M,2M}的部分积,数目减少了一半。P中仅有5个元素,大大减轻了多路选择的负担,且2M可以通过1位左移操作产生,很好的实现了部分积个数与Р中元素的生成和选择之间的平衡。因此结构相对比较简单,硬件复杂度不大,是目前最广泛使用的部分积生成算法。

喜欢1
用户评论
void

void 实名认证

懒的都不写签名

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