硬件02:二进制加法器

二进制加法器

二进制加法要解决的两个问题是,加法本位和进位,相加的操作和十进制加法非常类似。

加法器的控制面板如下图:

两排开关代表两个8位二进制数,一排灯泡代表加法的结果,亮代表1,不亮代表0,有9个灯泡代表相加结果可能是9位的二进制数。

相加的规律

进位的规律如下:

这个结果和与门的输出结果是一样的。

加法本位的规律如下:

或门除了右下角的数字以外都符合结果,而与非门除了左上角的数字以外都符合结果,将相同的输入连接到或门和与非门,然后将输出再连接到与门,就能得到想要的结果:

这个电路还有个专门的名称:异或门,简称XOR,用下列符号表示:

半加器和全加器

将异或门和与门连在一起计算A和B的和:

也可以采用下列符号表示:

这个符号被称为半加器,它描述了加法的规律,但是没有做到将进位结果纳入下一次计算。

当计算1111+1111时,只有最右边的两个1可以用半加器来相加,当计算到倒数第二位的时候,此时实际上是三个二进制数的相加,所以此时需要做两次加法,需要将两个半加器和一个或门连接起来:

上面的图也可以简化成一个符号:

它被称为全加器。

完成加法

对比加法器的控制面板,现在可以连接电路了:

对于最右侧的两个开关和一个灯泡,应该这样连接:

这里的特殊之处在于最右侧不存在最开始的进位,所以在全加器的进位端接地,如果加和输出为1,那么灯泡亮,同时产生进位输出。

对于接下来的灯泡和开关,应该这样连接:

此时就计入了进位输入,同时产生进位输出。

对于最后一对开关和两个灯泡应该这样连接:

至此电路就连接完毕了。

用下列符号代表8位二进制加法器:

一旦有了这个单元,就可以轻松构造任何位数的二进制加法器,如16位二进制加法器:

这种加法器有一个特点,一对数字相加的结果再次参与下一对数字的计算,以此类推,加法器的总体速度等于数字的位数乘以全加器器件的速度,这被称为行波进位,更快的加法器运用了一种被称为前置进位的电路。

搭建一个行波进位的加法器需要144个晶体管,如果是前置进位则需要更多晶体管,但是电路会变得很小。

原文地址:https://www.cnblogs.com/yinyunmoyi/p/12724763.html