3、加法器

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

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

加法位 0 1
0 0 1
1 1 0
进位位 0 1
0 0 0
1 0 1

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

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

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

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

OR 0 1
0 0 1
1 1 1
NAND 0 1
0 1 1
1 1 0

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

                                                                              

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

输入A 输入B 或门输出 与非门输出 与门输出
0 0 0 1 0
0 1 1 1 1
1 0 1 1 1
1 1 1 0 0

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

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

                                                                      

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

XOR 0 1
0 0 1
1 1 0

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

                                                                  

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

                                                                   

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

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

输入A 输入B 进位输入 加和输出 进位输出
0 0 0 0 0
0 1 0 1 0
1 0 0 1 0
1 1 0 0 1
0 0 1 1 0
0 1 1 0 1
1 0 1 0 1
1 1 1 1 1

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

                                                     

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

                                                  

它叫做“全加器”。

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

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

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

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

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

                                  

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

                                

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

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

                              

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

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

                            

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

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

                          

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

                          

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

                        

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

发布了21 篇原创文章 · 获赞 1 · 访问量 6092

猜你喜欢

转载自blog.csdn.net/darling54454/article/details/104762403