然后我们就可以用门电路来做 CPU了。当然做 CPU 还是挺难的,我们先从简单的开始:加法器。
对于一个简单的加法器而言有两个输入(A/B)和一个输出(Sum)和一个进位(C)。
输入 A | 输入 B | 输出 Sum | 进位 C |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
只看输入 A、B 和 输出 Sum,发现是异或门!
只看输入 A、B 和 进位 C,发现是与门!
也就是说加法器可以由异或门和与门构成!如下图所示:
到这里,我们已经做出了一个最简单的 CPU,但是现在这个只能称为“半加器”,最多只能计算 1 1,如何更进一步,比如 1 2, 2 2?
这就需要在原本的加法器增加一个进位接口,如下就是“全加器”:
两个半加器电路可以实现一个全加器。
前一个半加器将用于将 A、B 相加以产生部分和。
后一个半加器用于将 CIN 与前一个半加器产生的和相加,以获得最终的 S 输出。
任何半加器逻辑产生进位,就会有一个输出进位。因此,COUT 将是半加器进位输出。
每次都这么画实在太麻烦了,我们简化一下
将两个加法器串联在一起,就得到一个可以进行 2 位数(例如 3 2)的加法器。