手搓CPU(加法器)
基本原理
门电路
基本门电路
常见的基本门电路:
- 与门(AND Gate)
- 或门(OR Gate)
- 非门(NOT Gate)
- 异或门(XOR Gate)
- 与非门(NAND Gate)
- 或非门(NOR Gate)
常见门电路的图形表示:
每种门电路都有自己的逻辑规则,并且通过真值表(Truth Table)来描述输入与输出的关系。
1. 与门(AND Gate)
与门的输出规则是:只有所有输入都是1时,输出才是1,其他情况下输出为0。
真值表:
输入A | 输入B | 输出 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
电路的基本结构:
2. 或门(OR Gate)
或门的输出规则是:只要有一个输入是1,输出就是1,只有所有输入都是0时,输出为0。
真值表:
输入A | 输入B | 输出 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
电路基本结构:
3. 非门(NOT Gate)
非门的输出规则是:输出与输入相反,输入为1时输出为0,输入为0时输出为1。
真值表:
输入 | 输出 |
---|---|
0 | 1 |
1 | 0 |
4. 异或门(XOR Gate)
异或门的输出规则是:只有两个输入不同,输出才是1,相同的情况下输出为0。
真值表:
输入A | 输入B | 输出 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
二进制加法
- 十进制例子
1 |
|
- 对应的二进制表示
1 |
|
- 总结
观察到,二进制加法,低位遵从以下规则:
| 输入A | 输入B | 输出 |
|——-|——-|——|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
如果两个输入不同,输出为1;如果两个输入相同,输出为0。这正好是计算机硬件中的异或门的规则。二进制进位:当相加的两个数都是一的时候需要向左进一位,这正好是计算机硬件中的与门电路。
半加器
通过异或门计算个位,与门计算是否有进位,这样我们就得到了一个做加法运算的基本单元,我们称之为半加器。
半加器的电路图如下:
A、B两个位(bit)的输入不仅输入到异或门,而且同时输入到与门电路。异或门只管低位的结果,与门电路用来判断是否有进位。
全加器
对于加法,半加器只有两个输入,实际上要完成加法,还有可能有来自低位的进位作为一个输入。所以,一个完整的加法器需要有三个输入。这时候就需要从半加器进行扩展,组成一个全加器,实现一个完整的加法。
全加器电路组成分析:
搭建
这里实现一个4位(二进制)数字加法器。
搭建原理
- 电路图
前面的全加器能够计算一位二进制的加法,现将四个全加器组合起来,则能实现4位二进制的加法。
元件组成
TODO
动手操作
TODO