乘法运算器设计

一,原码一位乘法器设计

在这里插入图片描述 图 1 图1 1
图1左是实现原码一位乘法器的流程图,右边根据流程图设计的概要图,左边的循环由右边的计数器CNT控制,每次移位,得出Yi的值(i及乘数Y的第i位的值,0或1),由右图可以看出,Yi=0时,|X|通道关闭,0通道打开,A通过ALU加0,当Yi=1时,0通道关闭,|X|通道打开,A通过ALU加|X|,之后ALU再把得出的结果赋给A,依次循环这样的操作,最后所得的结果就在A中(当然,第一次ALU求和时A得确保为零)。

二,原码阵列乘法器设计

图1可以实现原码一位乘法器的设计,但是拥有循环的它是很低效的,我们必须得改进一下。图2是我们的手工乘法,我们需从这上面找到新的方法。

在这里插入图片描述
图 2 图2 2
A*B的部分积部分,有与运算和与项求和,我们如图3设计运算方法。

在这里插入图片描述 图 3 图3 3
整个图3均为乘法的部分积部分,从最右边开始,a0b0得出p0,a1b0+a0b1再加低位进位(由于低位没有加法,就直接进零)得出p1,且有进位就进位,然后a2b0+a1b1+前面的进位得出的结果(有进位就进位)再加a0b2得出p2(有进位就进位),以此类推可得出全部结果。但我们可以发现每一组部分积都是串行进位,必须先得出低位才能进行下一位计算,这样的效率还是不高,所以还需改进。
在这里插入图片描述
图 4 图4 4

我们可以把每一组部分及的进位都接入下一组部分积,这样同一组部分积就能同时计算了,如图4,但是最后一组部分积往下就没有部分积了,那他把进位送到哪呢,我们可以自己再在下面添加一组这样就能解决这个问题了。
在这里插入图片描述
图 5 图5 5
我们先将乘数与被乘数各位先与再根据图4做出n*n原码乘法阵列,符号位单独进行异或运算。

三,补码一位乘法器设计

在这里插入图片描述
图 6 图6 6

我想如果看懂了图一,那么此图也一定不在话下。当然,图6也比较效率低下,我们可以根据改进的原码阵列乘法器再加以改进做出补码阵列乘法器(真的很简单,只需把补码先变为原码,得出结果后,再求一次补不就出来了吗),如图7
在这里插入图片描述
图 7 图7 7

参考文献:https://www.icourse163.org/course/HUST-1003159001,侵权删

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值