3、加法器

利用前面所了解的逻辑门来设计一个二进制加法器。

一对二进制数相加结果中具有两个数位,其中一位是加法位,另一位叫做进位位。如下表所示:

加法位01
001
110
进位位01
000
101

比如说,二进制0和1相加,那么结果就是加法位等于1,进位位等于0.

比如说,二进制1和1相加,那么结果就是加法位等于0,进位位等于1.

仔细观察上面两个表格,会发现进位位的结果和“与门”是一样的。

而加法位和“或门”的结果很像,除了右下角那位,同时和“与非门”也很像,除了左上角那位。下面给出或门和与非门的逻辑关系:

OR01
001
111
NAND01
011
110

如果把或门和与非门的结果,在做一次与操作,那么和加法位一样。因此,我们有如下连接:

                                                                              

好的,看一下得出的结果:

 

输入A输入B或门输出与非门输出与门输出
00010
01111
10111
11100

对比一下与门的输出和加法位的结果,是一致的。

实际上,上面的电路也有一个专门的名称,叫做异或门,简写为XOR,用如下符号来表示:

                                                                      

异或门的特征如下表所示:

XOR01
001
110

OK,现在可以画出二进制数相加的电路图了:

                                                                  

为了避免重复的画与门和异或门,用如下的简单表示:

                                                                   

这个符号叫做半加器。之所以叫做半加器是因为它没有将之前一位的加法可能产生的进位纳入到下一位的计算。

因此,我们完善一下这个加法器,它应该添加进位输入,一共需要3个输入,并且运算的结果如下表所示:

输入A输入B进位输入加和输出进位输出
00000
01010
10010
11001
00110
01101
10101
11111

为了这3个二进制数相加,需要两个半加器和一个或门做如下的连接:

                                                     

为了避免重复的画上面的图,用以下形式来表示上面的一堆符号,如下所示:

                                                  

它叫做“全加器”。

好的,到此已经完成了一对二进制数的相加电路。

假如需要完成的8位的二进制数相加,那么就需要8个这样子的全加器。我们通过添加一个控制面板来完成这个操作,

控制面板有2排开关,每排有8个开关(8bit),并且分别表示其中一个加数。

同时把全加器的输出连接到灯泡上,通过观察灯泡的亮灭来确定加法的和结果,那么需要9个灯泡,因为最高的比特相加还可能会产生一个进位,也就是说,两个8bit的二进制相加结果需要9bit来表示。

控制面板如下图所示,最右边的是最低位,最左边是最高位。

                                  

首先将最低位的两个开关和最右边的灯泡连接到一个全加器上,如下所示:

                                

当两个二进制数相加的时候,第一列是比较特殊的,它没有前一位计算可能产生的进位,因此它的进位需要接地。

再把第2个bit和第7个bit进行如下连接:

                              

这个时候就需要考虑当上一位计算结果产生的进位。

最后第8个bit的连接如下图所示:

                            

它比较特殊的就是,它的进位也连接到了一个灯泡上。

从整体上来看,每个bit的连接方式如下所示:

                          

通过另外一种方式来表示上面的8bit加法器:

                          

在学习了8bit的加法器之后,很容易就可以搭建出16bit的加法器,只需要把两个8位加法器进行级联,如下所示:

                        

 

好的,就这样子。学习了一个异或门,以及加法器的实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值