简单逻辑门
复习
- 第一章:需要一台计算机,在研究其组成的方向上进行努力
- 第二章:知道了计算机由输入设备、存储器、运算器和输出设备组成,这个体系目前还在沿用
- 第三章:了解了计算机使用二进制(0 和 1)表示所有数据
TL;DR
- 逻辑门是计算机处理二进制信号的基本单元
- 三个基础逻辑门:与门(AND)、或门(OR)、非门(NOT)
- 通过组合这些基本逻辑门,可以实现复杂的计算功能
正文
引言
在前面我们知道了计算机使用二进制,即 0 和 1 来表示数据。只有表示还不够,数据还需要处理。而处理的最基础单位,就是今天所要学习的逻辑门。
逻辑门就像是电路中的“决策者”,它们根据输入的 0 和 1,按照特定的规则输出 0 或 1。看起来很抽象,觉得这没什么用,但我们将在后面看到,逻辑门怎样通过特定的连接方式,一步步变成半加器、加法器、算术逻辑单元直至 CPU。
最基本的三个逻辑门是:与门(and)、或门(or)和非门(not)。
注意, 与或非三种门,其实并不能直接获得 ,需要用晶体管搭建。但由于晶体管电路太过复杂,超出了本指南范围,为简化说明,本指南 认为与或非三门可以直接获得 。读者若有兴趣可以查看本章最后的补充模块,晶体管属于集成电路内容,如无兴趣略过即可,不影响后续学习。
基本逻辑门
与门(AND)
与门的特点是:只有当所有输入都为 1 时,输出才为 1。“全票才通过”。
- 要打开保险箱,需要同时输入正确的密码 和 使用正确的钥匙
- 要通过考试,需要理论考试合格 和 实践考试合格
真值表:
输入 A | 输入 B | 输出 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
或门(OR)
或门的特点是:只要有任意一个输入为 1,输出就为 1。“一票就通过”。
- 要开灯,可以按下楼上的开关 或 楼下的开关
- 要进入会场,可以使用纸质票 或 电子票
真值表:
输入 A | 输入 B | 输出 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
非门(NOT)
非门的特点是:输出与输入相反。
- 电灯开关:按一下开,再按一下关
- 自动门:有人靠近时开,没人时关
真值表:
输入 | 输出 |
---|---|
0 | 1 |
1 | 0 |
逻辑门的补充
由基础三门还可构成稍复杂一点的逻辑门:nand(not and 之缩写)、nor(not or 之缩写),分别是与非门、或非门。其结果就是与门、非门的结果取反。
输入 A | 输入 B | and 输出 | nand 输出 | or 输出 | nor 输出 |
---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 0 | 1 | 0 |
逻辑门的应用
这些基本逻辑门可以组合起来完成更复杂的功能,下几章我们将会看到:
- 数据选择:使用与门和或门可以构建选择器
- 数据比较:使用多个逻辑门可以比较两个数的大小
- 数据运算:使用逻辑门的组合可以实现加法器
小结
知识点
- 逻辑门是处理二进制信号的基本单元
- 与门(AND):所有输入为 1 时输出 1
- 或门(OR):任意输入为 1 时输出 1
- 非门(NOT):输出与输入相反
参考资料
- Wikipedia(zh):数字逻辑门
- 《编码:隐匿在计算机软硬件背后的语言》第 11 章:逻辑门
- 《计算机组成与设计:硬件/软件接口》第 4 章:处理器
- Wikipedia(zh):晶体管:现代几乎所有电子设备的基石。
- Wikipedia(zh):函数完备性
推荐
- Bilibili:MOSFET 快速入门
- Bilibili:逻辑门
协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
封面图
设计师 | 南国微雪
补充
符号说明:
- NMOS 高于 阈值电压导通,低于 阈值电压不导通
- PMOS 则相反
- Vdd 为供电电压,恒为 1
- GND/Vss 为接地电压,恒为 0
- 接入端 A 和 B 为接入电压,可高可低,高于阈值电压为 1,低于阈值电压为 0
CMOS(互补式金属氧化物半导体)晶体管搭建基础逻辑门的电路图:
- 非门(not,反相器)
- 与非门(nand)
- 与门(可以看出实际上就是 nand + not 两模块构成)
- 或门(与上同理,由 nor + not 构成)
在晶体管的层面,最基础的逻辑门其实是 nand 或者 nor,并非 and、or、not 三门。and 在晶体管层面上其实是 nand + not。or 同理,不过也可以用 nand 搭建。not 最简单,和 nand/nor 一样可以直接用晶体管搭出来。not 使用 2 个晶体管,而 nand/nor 使用 4 个。
nand 和 nor 两门因自身函数完备性,均可构成基础三门。所以一台计算机可以只由 nand 门或 nor 门构成。
本文由博客一文多发平台 OpenWrite 发布!