bitGateLab Digital · 学习
中文(简体)
打开模拟器

学习 › 第 1 讲

逻辑门:NOT、AND、OR、NAND、NOR、XOR 和 XNOR

阅读约 7 分钟 · bitGateLab 团队

所有的数字电路,从红绿灯到处理器,都是由少数几种用 0 和 1 做判断的基本单元搭建起来的,这些单元就是逻辑门。本文将带你认识七种基本逻辑门:它们怎么画、在布尔代数中怎么写,以及各自的真值表是什么样的。最后你会看到,为什么只用一种门(NAND 或 NOR)就能搭出其余所有的门。

逻辑电平:0 和 1 代表什么

在数字电路中,每个信号只能处于两种状态之一。低电压(接近 0 V)称为逻辑 0,即“假”;高电压(接近电源电压,例如 5 V 或 3.3 V)称为逻辑 1,即“真”。逻辑门接收一个或多个输入,给出一个输出,而这个输出只取决于各输入当前的取值:它什么也不记忆。因此我们说,逻辑门构成的是组合逻辑。

描述一个逻辑门最完整的方式是它的真值表:把输入的所有可能组合一一列出,并给出每种组合对应的输出。n 个输入共有 2n 种组合,所以两输入的门有 4 行,三输入的门有 8 行。

ABY ABY AY ANDORNOT
AND(一侧平直、前端呈半圆)、OR(输入侧内凹、前端呈尖形)和 NOT(三角形加小圆圈)的特定外形符号。

三种基本逻辑门

NOT(非门,即反相器)

它只有一个输入,输出与输入相反:输入 0 则输出 1,输入 1 则输出 0。写作 Y = A(你也会见到 A' 或 ¬A 的写法)。它的符号是一个尖端带小圆圈的三角形;这个小圆圈是通用的标记,表示“此处取反”。

AY = A
01
10

AND(与门)

只有当所有输入都为 1 时,输出才为 1。它写成乘积的形式:Y = A·B,或者简写为 Y = AB。可以把它想象成两个串联的开关:只有两个开关都闭合,灯才会亮。

OR(或门)

只要至少有一个输入为 1,输出就为 1。它写成加法的形式:Y = A + B,相当于两个并联的开关。注意:在布尔代数中 1 + 1 = 1,而不是 2。

派生逻辑门:NAND、NOR、XOR 和 XNOR

NAND(与非门)是 AND 后面接一个反相器:Y = AB。只有当所有输入都为 1 时,它的输出才为 0。NOR(或非门)是取反的 OR:Y = A + B,只有当所有输入都为 0 时才输出 1。在符号上,两者的输出端都带有小圆圈。

XOR(异或门)在两个输入不同时输出 1:Y = A ⊕ B = AB + AB。输入多于两个时,XOR 在 1 的个数为奇数时输出 1,因此常用来计算奇偶校验位。XNOR(同或门)是它的反,Y = A ⊕ B = AB + A B,在两个输入相同时输出 1:它就是一个一位的相等比较器。

下面是六种两输入逻辑门合在一起的真值表:

ABANDORNANDNORXORXNOR
00001101
01011010
10011010
11110001
检查小窍门:每个带取反的列(NAND、NOR、XNOR)正好是其对应基本门那一列逐行把 0 和 1 互换的结果。

例:计算一个小电路的输出。求 Y = (A + B) · C 在 A = 0,B = 1,C = 1 时的值。

  1. OR:A + B = 0 + 1 = 1。
  2. 取反:1 = 0。
  3. 与 C 做 AND:0 · 1 = 0。

结果:Y = 0。当 A = 0,B = 0,C = 1 时,OR 得 0,反相器得 1,AND 得 1,所以 Y = 1。

NAND 和 NOR:通用逻辑门

如果只用某一种门的若干个副本就能搭出 NOT、AND 和 OR,进而实现任意逻辑函数,这种门就称为通用逻辑门。NAND 和 NOR 都具有这一性质。这带来一个很实际的好处:芯片制造商可以只生产一种单元,用它搭出整个设计;而你也可以只用一片 74HC 系列的芯片完成整个电路(例如 74HC00 内含四个两输入 NAND 门)。

全部用 NAND 实现

全部用 NOR 实现

例:用四个 NAND 门实现 XOR。设 N1 = AB,N2 = A·N1,N3 = B·N1,Y = N2·N3。逐一检查四种情况:

ABN1N2N3Y
001110
011101
101011
110110

Y 这一列与 XOR 的那一列完全一致。四个门,只需一片芯片。

常见错误

在模拟器中试一试

记住这些真值表的最好办法,就是亲手把它们生成出来。在电路编辑器中,你可以放一个逻辑门,改变它的输入,立刻看到输出;然后再与工具算出的真值表对照。

  1. 放置两个输入、一个 NAND 门和一个输出,并把它们连接起来。
  2. 把输入依次切换成四种组合,记下每种情况下的输出。
  3. 生成该电路的真值表,并与本文中的真值表比较。
  4. 按例子搭出用四个 NAND 门实现的 XOR,验证它的真值表与单个 XOR 门的一致。
  5. 如果想把它搬到虚拟面包板上,就放一片 74HC 系列的 NAND 芯片,给它接上电源,然后观察输出端的 LED。

练习

  1. 写出 Y = A + B 的真值表。
    答案

    当 AB = 00、01、10、11 时,输出依次为 1、0、1、1。只有当 A = 0 且 B = 1 时输出为 0。

  2. 4 输入 AND 门的真值表有多少行?其中有几行输出为 1?
    答案

    24 = 16 行;只有一行(1111)输出为 1。

  3. 求三输入 XOR 门在 A = 1,B = 1,C = 1 时的输出。
    答案

    1 ⊕ 1 = 0,0 ⊕ 1 = 1。输出为 1,因为有三个 1(奇数个)。

  4. 按照这种方法,至少需要几个 NOR 门才能构成一个两输入 AND 门?
    答案

    三个:两个 NOR 门用作反相器(一个给 A,一个给 B),第三个 NOR 门接收 A 和 B,其输出为 A + B = AB。

要对由这些门组成的表达式进行变换和化简,请继续学习布尔代数。