上一章我们实现了通过PNP型三极管来实现各种逻辑门的搭建,这一章,我们将通过各种逻辑门来实现CPU中计算单元的基础:全加器。
这一章用到的硬件材料:面包板-2块、绿色LED-5颗、4路拔叉开关-2个、1kΩ电阻-9颗、74LS08芯片(AND)-2块、74LS86(XOR)芯片-2块、74LS32芯片(OR)-1块、导线若干

CPU中最重要的一个功能就是对数据进行计算,所以这一章来尝试使用逻辑门实现一个可以用于加法计算的电路。

半加器

实际上,用于做加法的最基础的电路叫半加器,先把电路图放上来看看,然后再解释一下这个电路是怎么回事。

半加器原理图

众所周知,计算机内部处理数据是以二进制的方式,也就是0和1,其中0一般以低电平表示(断电),1一般以高电平表示(通电)。所以我们的CPU要做加法也是通过二进制来进行加法计算。

如果我们有两个一位数的二进制,那么这两个数字的加法表如下:

加数A加数B进位
0000
0110
1010
1101
1位二进制加法表

通过观察上表的规律,我们可以将其分解成两个表,分别是加数A、加数B、和以及加数A、加数B、进位。通过观察这两个表,结合上一章中所讲的逻辑门真值表,不难发现加数A、加数B、和的组合,其输入和输出与XOR门相同;加数A、加数B、进位的组合,其输入和输出与AND门相同。所以我们根据这个规律构建出了上面电路图中的电路,这个电路叫半加器

上图中的蓝色圆圈表示逻辑输入源,这个只是一种简略表示,其功能是输出5V电压,大家可以想象成一个5V直流电源与一个开关,在以后的电路图中也有可能出现这个图标,蓝色表示未通电状态,红色表示通电状态。在上述的电路图中,AND门后的LED会在两个逻辑输入源激活时亮起,其表示进位;XOR门后的LED会在两个逻辑输入源中仅有一个激活时亮起,其表示和;如果两个逻辑输入源皆不激活,那么两个LED都不会亮起。

全加器

半加器只能计算两个1位二进制数的和,其局限性太大,所以我们接下来需要对电路进行升级,使得其可以计算三路输入的求和,并且同样输出一个和和一个进位,其中新增的一位作为低位运算的进位,其真值表如下:

低位进位加数A加数B计算进位
00000
00110
01010
01101
10010
10101
11001
11111

从原理上来说,我们需要根据半加器的结果再引入一位新的运算,所以我们至少需要用到两个半加器,其中第一个半加器用于做加数A和加数B的运算,并得到和和进位。然后根据加数A和加数B的和再通过第二个半加器与低位进位进行运算,得到最终的三位运算结果。其中如果加数A和加数B的运算结果中就有进位,根据上面1位二进制加法表的规律可以知道,结果一定是11(3),转换成逻辑条件就是:如果加数A和加数B都为1,则产生进位,此时和由低位进位决定;如果加数A和加数B不都为1,则加数运算没有进位,直接将两个加数的和与低位进位通过半加器相加,转换成电路图如下:

全加器原理图