乘法器——基于Wallace树的4位乘法器实现

    博主最近在学习加法器乘法等等相关知识,在学习乘法器booth编码加Wallace树压缩时,发现在压缩部分积的时候用到了进位保留加法器(Carry Save Adder),博主对这种加法器不是很理解,而且拖了好久,我一直认为进位保留加法器就是一般的串行加法器,今天终于有所理解,在这里给大家分享一下。

  首先,我们举个例子,对于四位无符号数1011与1110相乘,我们可以得到如下式子:

          1  0  1  1
              x   1  1  1  0
        ------------------------------
                  0  0  0  0             PP1
               1  0  1  1                PP2
            1  0  1  1                   PP3
         1  0  1  1                      PP4
        ------------------------------   
  乘积项中间结果有4个:PP1、PP2、PP3、PP4。由于进位保存加法器只能进行三个数的相加,因而可采用两个进位保存加法器实现。第一个进位保存加法器实现PP1、PP2、PP3的加法,第二个进位保存加法器将PP3和上一级的S和C相加。最终通过一个并行加法器输出积。计算过程如下:
第一个进位保存加法器
PP1:                    0  0  0  0
PP2:                 1  0  1  1  0
PP3:              1  0  1  1  0  0
---------------------------------------
sum1              1  1  1  0  1  0
c1                0  0  0  1  0  0   
第二个进位保存加法器 
carry_in:         1  0  1  1  0  0  0
sum1              0  1  1  1  0  1  0                   
c1                0  0  0  1  0  0  0
---------------------------------------
sum2:             1  1  0  1  0  1  0
c2:              0  0  1  1  0  0  0
并行加法器:
sum2:             1  1  0  1  0  1  0
c2:              0  1  1  0  0  0  0
---------------------------------------
result            1  0  0  1  1  0  1  0  

  我们注意到,在参与下一级运算的过程中,由于进位要用于高位的求和,故c1,c2均应左移一位求。算出来的结果为:10011010(154)。
所谓“进位保留”,便是进位不进上去&#
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值