学习FPGA时,对于乘法的运算,尤其是对于有符号的乘法运算,也许最熟悉不过的就是 BOOTH算法了。
这里讲解一下BOOTH算法的计算过程,方便大家对BOOTH的理解。
上图是BOOTH算法的数学表达。由于FPGA擅长进行并行移位计算,所以BOOTH算法倒也好实现。
上图是对乘数的加码过程,具体可以见下面的例子。
7 x (-3),其中R1表示被乘数 7, R2 表示乘数 -3,那么二者对应的补码,为 R1 0111,R2 1101,
P代码最终结果容量,应该为 2x 4 + 1 = 9位,其中一位作为辅助位。计算过程如下:
上述的计算过程需要注意,在进行右移时,需要将P = {R0,R2},当作整体看待,若P[8]最高位为0,则
移位之后的结果R0的最高位就补0,若是1就补1,由上图的第7步到第8步的变换,{R0,R2} =
{1001,,0001},那么P的最高位是1,则以后之后,R0的高位需要补1,所以得到移位之后的结果{R0,R2} =
{1100,1000},并且辅助位由于乘数的低位是1,所以辅助位为1,辅助位和乘数的移调的位的逻辑值有关,比
如乘数是0010,则四次操作的辅助为 0, 1, 0, 0。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
FPGA
+关注
关注
1664文章
22502浏览量
639062 -
算法
+关注
关注
23文章
4803浏览量
98521
发布评论请先 登录
相关推荐
热点推荐
基于直方图算法进行FPGA架构设计
引言 直方图统计在图像增强和目标检测领域有重要应用,比如直方图均衡,梯度直方图。直方图的不同种类和统计方法请见之前的文章。本章就是用FPGA来进行直方图的计算,并且利用FPGA的特性对计算过程
Booth编码的原理及选择
Booth提出该算法的初衷是基于当时计算机中的移位运算比加法运算要快这个硬件环境,其目的是通过移位运算代替部分加法运算来提高乘法运算速度。然而,Booth
发表于 10-22 07:53
db和dbm的换算计算过程是什么样的
请教各位RF的大师呀。我想了解DB与DBM的换算过程计算为什么20db=50DBm呀我计算得得出是43DBm20db=10lg(20*1000mw)=10*1.3+10*3=43dbm哪里不对吗请大师指点呀
发表于 06-17 18:05
基于直方图算法的FPGA设计架构
直方图统计在图像增强和目标检测领域有重要应用,比如直方图均衡,梯度直方图。直方图的不同种类和统计方法请见之前的文章。本章就是用FPGA来进行直方图的计算,并且利用FPGA的特性对计算过程
发表于 04-20 10:47
•1596次阅读
卷积神经网络计算过程和步骤
卷积神经网络(Convolutional Neural Network, CNN)是一种深度学习模型,广泛应用于图像识别、视频分析、自然语言处理等领域。本文将详细介绍卷积神经网络的计算过程和步骤
FPGA的BOOTH算法计算过程
评论