学习日志之microelectronic(5)——Booth's algorithm

对乘法器的理解

乘法器的原理就是用二进制乘法竖式得来的如下图所示,只有在二进制位上为1时才会不为零,其结果可以表示为

p=A*2^{4}+A*2^{3}=A*b_{4}+A*b_{3}=1*2^{4}+1*2^{3}

 

广义化就变成了下面的式子:

p=A*b_{0}*2^{0}+A*b_{1}*2^{1}+A*b_{2}*2^{2}+A*b_{3}*2^{3}+A*b_{4}*2^{4}+...+A*b_{n}*2^{n}

根据此就可以得到一个最简单的乘法器——array multiplier:

critical path:the sequence of stages determining the minimum time needed for an operation, especially when analysed on a computer for a large organization.

booth's algorithm

假设A=010 B=00011000,那么可知

随后就可以写成以下形式:

对此段的理解如下:


比如说计算10100001×00111110,在这里首先将乘数00111110改写为01000000 - 00000010

                       01000000

               -       00000010

---------------------------------------------------

                       001111110

这样根据乘法分配律得10100001×00111110=10100001×(01000000-0000010)

类似于booth算法的重新编码形式,再将上述算式改写为

10100001×00111110=10100001×0+1 000000    +     10100001×000000 -1 0

最终再将上式合并到一起,可得由booth算法改写后的编码形式:10100001 × 0+10000-10

由此可见,乘数的数段"01"可以重新编码为“+1”,数段“10”可以重新编码为“-1”,数段“11”可重新编码为“0”


booth 算法步骤可以由下面的伪代码表示,其中i为B元素的下标,P为积,M为B乘数的位数

其中有一个vp,其表达式可以在一个列表中查到(当i=0时,规定b[-1]=0)

由上面可得

从而可得booth's multiplier的结构如下所示:


参考资料:https://blog.csdn.net/ZHjiao_1997/article/details/52475498

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
0、 约定 …………………………………………………………………………………………… 5 1、 无符号数一位乘法 …………………………………………………………………………… 7 2、 符号数一位乘法 ……………………………………………………………………………… 8 3、 布思算法(Booth algorithm) ……………………………………………………………… 9 4、 高基(High Radix)布思算法 ……………………………………………………………… 10 5、 迭代算法 …………………………………………………………………………………… 14 6、 乘法运算的实现——迭代 ………………………………………………………………… 18 7、 乘法运算的实现——阵列 ………………………………………………………………… 20 8、 乘加运算 …………………………………………………………………………………… 24 9、 设计示例1 —— 8位、迭代 ……………………………………………………………… 26 1、 实现方案1 —— 一位、无符号 ………………………………………………… 26 2、 实现方案2 —— 一位、布思 …………………………………………………… 33 3、 实现方案3 —— 二位 …………………………………………………………… 39 10、设计示例2 —— 16位、阵列 …………………………………………………………… 45 11、设计示例3 —— 32位、 迭代、阵列 …………………………………………………… 55 1、 实现方案1 —— 乘、加一步走 ………………………………………………… 56 2、 实现方案2 —— 乘、加两步走 ………………………………………………… 67 后记 ……………………………………………………………………………………… 77 个人介绍 ………………………………………………………………………………… 79

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值