为什么全加器的基础是半加器?

本文介绍了二进制加减法的基本概念,通过真值表展示了如何用逻辑电路实现半加器和全加器。重点讲解了半加器的局限性以及全加器的构建,涉及奇偶校验原理和另一种逻辑设计的全加器,强调了逢二进一原则和电路效率。
摘要由CSDN通过智能技术生成

    二进制运算是数字电路最核心的数学知识之一,有以下运算式:

157fd655a2414efaa57f64afa8d39ab7.png

    可以发现上述加减法与十进制貌似不一样,但实际上是只针对单一位进行研究,1+1=0是进位的因素,该位依然是0,减法同理是借位的因素影响。与十进制8+3=1,9+6=5是一样的道理。我们将位数拓展至二位便可理解全貌:

62c4beaf66d94ec6a12fcfb37b9ff3f8.png

   示例:1110*0101,算术竖式如下: 

d84e78c37d584450b59e6f369af99bf4.png

除法也是按照同样的十进制除法进行计算,由于篇幅所限不做展开说明,后面会详细讨论除法和小数。

    针对上面二进制加法算式,我们可以构造如下真值表,该真值表对应的是两输入-两输出的逻辑电路。

72272638e7e4437d91321f7872a31e82.png

    当我们在构造电路时,应当逐一分开分析。首先我们应该将两输入-两输出拆分成两个两输入一输出的真值表,针对每个真值表进行构造,如下图所示(SUM表示和,CAR表示进位): 

23512ef7941d40d9b87a127576c400ca.png

 

   分析输出为SUM的真值表,不难发现,这正是异或门XOR。而输出为CAR的真值表正好对应为与门,因此满足上面二进制加法算式的逻辑电路图如下:

5523f47969d540b1ad4567e7cc048613.png

   该电路即为半加器(h-add),符号记为上图所示。
    半加器存在一个问题,对于两输出来看,所有情况应该为:00,01,10,11;它们分别对应十进制:0,1,2,3,但半加器的两输入最多只高计算1+1,也就是最高结果只能输出为2。那么该如何满足两输出的所有情况呢?答案是让电路最高可计算1+1+1=3,也就是三输入,因此对于完善后的三输入两输出,我们称之为全加器(add)。它的真值表如下: 

9901f7cbffd34a0bbb50f4d0f528e267.png

   如果沿用前面半加器的思路,将这个三输入-二输出的真值表分解为两个三输入-一输出的真值表,输出为SUM的真值表实际上是我们前面所搭建过的奇数校验电路,虽然前面的奇数校验电路是四输入,但是允许可有一个不接入,而输出为CAR的真值表实际上是偶数校验电路,因此按照半加器类似的拼接方法便可以完成全加器的搭建。
    基于这种电路的数学原理是:在二进制中逢二进一,因此当输入为偶数个时总会进位,而输入为奇数时,则不会进位,而是激活当前位。 

4aa56e4a71b5419091539826891d7500.png

   还有一种原理是基于算式:

c88d67d1466840cab5ac156d77d48b9e.png

Result 1 的结果最大是10,而输入C无论为1或0,都不改变Result的CAR位结果,而如果Result为01,加上C为1,会产生Result 2的进位。基于这种逻辑搭建的全加器电路图如下:(这种全加器会比基于奇偶校验的全加器要使用更少的逻辑门,有更少的耗材和更低的延迟)。

206e5a18f36d433b8c39a7d089573aa5.png 

 

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值