2. 逻辑门(Logic Gates)
最后更新于
最后更新于
设想一个最常见的需求:我们需要为卧室灯装两个开关,一个在门口,一个在床头,使用任何一个开关开灯,都可以使用该开关或者另一个开关关掉,反之亦然。如何设计该电路呢?有经验的同学可能会想如何使用不同的开关通过并联、串联的方式组合起来以达成最终的控制效果,但稍稍分析一下这两个开关的行为,我们就会发现两个开关与灯满足如下状态关系:
Switch-Door
Switch-Bed
Bulb
Off
Off
Off
Off
On
On
On
Off
On
On
On
Off
如果我们用 0 表示 Off, 用 1 表示 On, 可以发现该状态与前文中的 XOR 的真值表完全一致。如果有一个基础的电路设备实现了 XOR 的功能,那么我们直接将两个输入端连上开关、输出端连上灯,就收工大吉了。
香农的工作让我们认识到电路设计可以转换为符号的逻辑运算,再回到布尔代数,我们知道任意复杂的复合逻辑运算都可以通过 AND, OR, NOT 三种基本运算通过组合的方式实现。对应到电路设计中,我们也需要能够完成对应逻辑运算的电路器件,这类器件被称为逻辑门(Logic Gates),三个基础的逻辑门分别叫与门(AND Gate)、或门(OR Gate)与非门(NOT Gate),符号如下:
任意复杂的电路都可以通过这三个逻辑门组合而成。上文中的卧室电路需要一个异或门(XOR Gate),其电路符号以及可能的一种实现方式如下图所示:
逻辑门是电路设计的基础组件,有了完成各种逻辑运算的逻辑门,电路设计就变成了一件搭积木式的工程了。
事实上如果继续简化逻辑门的基础单元,会发现可以将与非门(NAND Gate)当着最基础的逻辑门,与非门的真值表与符号表示如下:
通过与非门构建 AND, OR, NOT 门的方式如下:
因此,我们可以将与非门看着是逻辑门最基础的积木。
制造逻辑门的物理元件随着技术的进步一直在进步,最开始人们使用继电器来完成电路开关的自动控制,后期使用电子管,世界上第一台通用计算机ENIAC便是使用电子管制造的。后来晶体管的发明颠覆了整个行业,晶体管在体积、能耗等各方面都优于电子管,这使得集成电路及大规模集成电路成为可能,当前一个指甲大小的芯片中包含的晶体管数以亿万。
可以参考 Transistor Count 查看最新的芯片所包含的晶体管数量。