06

逻辑门

数字逻辑基础

阅读量:1 · 预计 15 分钟读完

与门或门非门真值表
关联层级:L1 基础逻辑门
阅读进度5%

第六章 逻辑门 — 数字逻辑基础

导读

如果说上一章中的继电器让我们看到了逻辑运算的物理实现,那么本章我们将进入一个更加纯粹的世界——数字逻辑(Digital Logic)的世界。在这里,我们不再关心逻辑门是用继电器、晶体管还是其他什么元件实现的,我们只关心它们的逻辑行为:给定输入,输出是什么?

数字逻辑是现代计算机科学的数学基础。计算机所做的一切——无论是运行操作系统、浏览网页、播放视频还是进行科学计算——归根结底都是逻辑门对二进制信号的处理。一个现代CPU中有数十亿个逻辑门,它们以极高的速度协同工作,执行着各种逻辑运算。

本章将系统地介绍数字逻辑的基础知识。我们将从基本的逻辑门(AND、OR、NOT)开始,学习它们的符号、真值表和逻辑表达式;然后探讨复合逻辑门(NAND、NOR、XOR);接着深入布尔代数的基本定理和化简方法;最后学习如何用逻辑门构建组合逻辑电路。通过本章的学习,你将掌握数字逻辑的核心工具,为后续学习加法器、触发器、CPU等更复杂的数字系统打下坚实的基础。

核心概念详解

6.1 逻辑门的基本概念

逻辑门(Logic Gate)是实现基本逻辑运算的电子电路。它有若干个输入端和一个输出端,输出端的信号状态由输入端的信号状态和门本身的逻辑功能决定。

在数字电路中,信号只有两种状态:高电平(High, H)低电平(Low, L),分别对应逻辑值1(真, True)0(假, False)。这种只有两种状态的信号系统称为二进制逻辑二值逻辑

逻辑门的行为可以用三种等价的方式来描述:

真值表(Truth Table):列出所有可能的输入组合及对应的输出值

逻辑表达式(Boolean Expression):用布尔代数的符号表示输入与输出的关系

逻辑符号(Logic Symbol):用标准化的图形符号表示逻辑门

6.2 基本逻辑门

AND门(与门)

AND门实现逻辑"与"运算。只有当所有输入都为1时,输出才为1。

2输入AND门真值表:

ABY = A·B
000
010
100
111

逻辑表达式:Y = A · B(或 Y = A AND B)

AND门可以扩展到多个输入。3输入AND门:Y = A · B · C,只有A、B、C都为1时Y才为1。

AND门的一个重要特性:它可以用作"使能"控制。如果一个输入端用作控制信号,另一个用作数据信号,那么当控制信号为1时,数据信号可以通过;当控制信号为0时,输出始终为0,数据被"禁止"。

OR门(或门)

OR门实现逻辑"或"运算。只要有一个输入为1,输出就为1。

2输入OR门真值表:

ABY = A+B
000
011
101
111

逻辑表达式:Y = A + B(或 Y = A OR B)

注意:这里的"+"表示逻辑或,不是算术加法。在逻辑或中,1 + 1 = 1(而不是2)。

OR门也可以用作"选择"控制:如果多个信号通过OR门合并,只要有一个信号为1,输出就为1。

NOT门(非门/反相器)

NOT门实现逻辑"非"运算。输出与输入相反。

NOT门真值表:

AY = Ā
01
10

逻辑表达式:Y = Ā(或 Y = NOT A)

NOT门只有一个输入和一个输出,它是最简单的逻辑门,但也是最重要的——它提供了逻辑"反转"的能力,是构建所有逻辑功能的基础之一。

6.3 复合逻辑门

NAND门(与非门)

NAND门是AND门后面接一个NOT门。它的输出是AND门输出的反。

2输入NAND门真值表:

ABY = (A·B)'
001
011
101
110

NAND门有一个极其重要的特性:它是通用门(Universal Gate)。仅用NAND门就可以实现AND、OR、NOT以及任何其他逻辑功能。

证明:

  • NOT A = A NAND A(将两个输入连在一起)
  • A AND B = NOT(A NAND B) = (A NAND B) NAND (A NAND B)
  • A OR B = (NOT A) NAND (NOT B) = (A NAND A) NAND (B NAND B)

这个特性在工程上意义重大:制造商可以只生产一种类型的逻辑门(NAND),然后用它构建任何需要的逻辑功能。这简化了生产工艺,降低了成本。实际上,许多集成电路内部就是全部由NAND门构成的。

NOR门(或非门)

NOR门是OR门后面接一个NOT门。

2输入NOR门真值表:

ABY = (A+B)'
001
010
100
110

NOR门同样是通用门。仅用NOR门也可以实现所有逻辑功能。

XOR门(异或门)

XOR门实现"异或"运算。当且仅当两个输入不同时,输出为1。

2输入XOR门真值表:

ABY = A⊕B
000
011
101
110

逻辑表达式:Y = A ⊕ B = A·B' + A'·B

XOR门在数字电路中有多种重要应用:

  • 加法器:XOR是半加器的核心(和 = A XOR B,进位 = A AND B)
  • 奇偶校验:多个输入的XOR可以用于检测数据的奇偶性
  • 数据比较:XOR的输出为0表示两个输入相同
  • 加密:XOR操作在简单加密算法中广泛使用

6.4 布尔代数的基本定理

布尔代数(Boolean Algebra)是由英国数学家乔治·布尔(George Boole)在1854年创立的数学分支。它是分析和设计逻辑电路的数学工具。

布尔代数的基本变量只能取值0或1,基本运算包括AND(·)、OR(+)和NOT('或上划线)。

基本定律

同一律(Identity Laws):

  • A + 0 = A
  • A · 1 = A

零律(Null Laws):

  • A + 1 = 1
  • A · 0 = 0

互补律(Complement Laws):

  • A + A' = 1
  • A · A' = 0

幂等律(Idempotent Laws):

  • A + A = A
  • A · A = A

双重否定律(Double Negation):

  • (A')' = A

交换律、结合律、分配律

交换律(Commutative Laws):

  • A + B = B + A
  • A · B = B · A

结合律(Associative Laws):

  • (A + B) + C = A + (B + C)
  • (A · B) · C = A · (B · C)

分配律(Distributive Laws):

  • A · (B + C) = A · B + A · C
  • A + (B · C) = (A + B) · (A + C)

注意第二个分配律在普通代数中不成立,但在布尔代数中成立。

德摩根定律(De Morgan's Theorems)

德摩根定律是布尔代数中最重要的定理之一:

  • (A · B)' = A' + B'(AND的否定等于各部分否定后的OR)
  • (A + B)' = A' · B'(OR的否定等于各部分否定后的AND)

德摩根定律的直观理解:"不是(A和B)"等价于"不是A或者不是B";"不是(A或B)"等价于"不是A并且不是B"。

德摩根定律在逻辑电路设计中非常重要,它允许我们在AND和OR之间进行转换,从而优化电路设计。例如,如果只有NAND门可用,可以用德摩根定律将OR运算转换为NAND运算。

6.5 逻辑表达式的化简

在实际的数字电路设计中,我们通常先根据需求写出逻辑表达式,然后对其进行化简,以使用最少的逻辑门来实现。化简后的电路不仅成本更低,而且速度更快、功耗更小。

代数化简法

利用布尔代数的定律和定理,通过代数运算来化简逻辑表达式。

常用化简技巧:

  • 吸收律:A + A·B = A(A"吸收"了A·B)
  • 冗余律:A + A'·B = A + B
  • 合并律:A·B + A·B' = A(B和B'互补,合并后消去)

示例: 化简 Y = A·B + A·B' + B·C

Y = A·(B + B') + B·C (分配律)

= A·1 + B·C (互补律)

= A + B·C (同一律)

化简前需要3个AND门和1个OR门,化简后只需要1个AND门和1个OR门。

卡诺图化简法(Karnaugh Map)

卡诺图是一种图形化的逻辑化简方法,特别适用于变量较少(2-6个)的情况。

卡诺图的基本原理:

将真值表中的每一行对应卡诺图中的一个方格,方格的排列方式使得相邻方格之间只有一个变量不同(格雷码排列)。通过将相邻的1方格圈成矩形组(大小为2的幂次),可以直接读出化简后的表达式。

2变量卡诺图:

B
      0   1
A 0 | m0 | m1 |
  1 | m2 | m3 |

3变量卡诺图:

BC
       00  01  11  10
A  0 | m0 | m1 | m3 | m2 |
   1 | m4 | m5 | m7 | m6 |

化简步骤:

将函数值为1的最小项在卡诺图中标记为1

将相邻的1圈成尽可能大的矩形组(大小为1、2、4、8...)

每个矩形组对应一个乘积项

所有乘积项之和就是化简后的表达式

6.6 组合逻辑电路

组合逻辑电路(Combinational Logic Circuit)是指输出仅取决于当前输入的逻辑电路,不包含记忆元件。这是最简单的一类数字电路。

组合逻辑电路的设计步骤:

明确需求:确定输入和输出的数量及含义

列出真值表:列出所有输入组合及对应的期望输出

写出逻辑表达式:从真值表中提取输出为1的条件

化简表达式:使用代数法或卡诺图化简

画出逻辑图:用逻辑门符号实现化简后的表达式

常见组合逻辑电路

多路选择器(Multiplexer, MUX):从多个输入中选择一个输出。一个2ⁿ输入的多路选择器有n个选择控制端。

2选1多路选择器:

  • 输入:A、B、选择端S
  • 输出:Y = S'·A + S·B
  • 当S=0时,Y=A;当S=1时,Y=B

译码器(Decoder):将n位二进制编码转换为2ⁿ个输出中的一个。

2-4译码器:

  • 输入:A₁、A₀(2位二进制数)
  • 输出:Y₀、Y₁、Y₂、Y₃
  • Y₀ = A₁'·A₀'(输入00时Y₀=1)
  • Y₁ = A₁'·A₀(输入01时Y₁=1)
  • Y₂ = A₁·A₀'(输入10时Y₂=1)
  • Y₃ = A₁·A₀(输入11时Y₃=1)

编码器(Encoder):译码器的逆操作,将2ⁿ个输入中的一个有效信号转换为n位二进制编码。

比较器(Comparator):比较两个二进制数的大小。

1位比较器:

  • 输入:A、B
  • 输出:A>B、A=B、A<B
  • A>B = A·B'
  • A=B = A·B + A'·B' = A⊙B(同或)
  • A<B = A'·B

6.7 从真值表到电路:设计实例

让我们通过一个完整的实例来演示组合逻辑电路的设计过程。

需求:设计一个"多数表决器"。三个评委A、B、C各有一个按钮,按下为1,不按为0。当多数评委按下按钮时(至少2个),输出Y为1(通过),否则为0(不通过)。

步骤1:列出真值表

ABCY
0000
0010
0100
0111
1000
1011
1101
1111

步骤2:写出逻辑表达式

Y = A'BC + AB'C + ABC' + ABC

步骤3:化简

使用卡诺图或代数法化简:

Y = A'BC + AB'C + ABC' + ABC

= A'BC + AB'C + AB(C' + C)

= A'BC + AB'C + AB

= BC(A' + A) + AB'C + AB - 重新整理

= AB + BC + AC

化简后的表达式只需要3个AND门和1个3输入OR门。

步骤4:画出逻辑图

三个AND门分别计算AB、BC、AC,然后送入一个OR门得到最终输出Y。

6.8 逻辑门的电气特性

虽然我们在逻辑层面使用0和1,但在物理层面,逻辑门处理的是电压信号。理解逻辑门的电气特性对于设计可靠的数字系统至关重要。

逻辑电平:

  • VOH(Output High Voltage):输出高电平时的最小电压
  • VOL(Output Low Voltage):输出低电平时的最大电压
  • VIH(Input High Voltage):被识别为高电平的最小输入电压
  • VIL(Input Low Voltage):被识别为低电平的最大输入电压

噪声容限(Noise Margin):

  • 高电平噪声容限:NMH = VOH - VIH
  • 低电平噪声容限:NML = VIL - VOL

噪声容限表示信号可以承受多大的噪声干扰而不被误判。噪声容限越大,电路的抗干扰能力越强。

扇出(Fan-out):一个逻辑门的输出可以驱动的同类门的最大数量。扇出受限于门的电流驱动能力。

传播延迟(Propagation Delay):输入信号变化到输出信号相应变化之间的时间差。传播延迟决定了电路的最大工作速度。

重要知识点

知识点一:三种基本逻辑门

AND、OR、NOT是三种基本逻辑门,所有其他逻辑功能都可以由它们组合实现。

知识点二:NAND和NOR是通用门

仅用NAND门或仅用NOR门就可以实现任何逻辑功能。这一特性在集成电路制造中具有重要的工程意义。

知识点三:布尔代数是逻辑设计的数学工具

布尔代数的定律和定理(特别是德摩根定律)是分析和化简逻辑电路的基础。

知识点四:卡诺图是实用的化简工具

对于变量较少的逻辑函数,卡诺图提供了一种直观、系统的化简方法。

知识点五:组合逻辑电路的输出仅取决于当前输入

组合逻辑电路不包含记忆功能,输出完全由当前输入决定。需要记忆功能时,必须使用时序逻辑电路。

常见误区

误区一:"OR就是加法"

逻辑OR和算术加法是不同的运算。在OR中,1 + 1 = 1;在算术中,1 + 1 = 2。虽然它们的符号都是"+",但含义完全不同。

误区二:"逻辑表达式越短,电路一定越好"

表达式的长度不是衡量电路优劣的唯一标准。有时一个稍长的表达式可以用更少的门级数(层次)实现,从而获得更快的速度。电路优化需要综合考虑面积、速度、功耗等多个因素。

误区三:"所有逻辑门都是相同的"

不同类型的逻辑门有不同的电气特性(速度、功耗、驱动能力等)。在實際设计中,需要根据具体需求选择合适的门类型。

误区四:"化简只是为了减少门的数量"

化简的目标不仅是减少门的数量,还包括减少门的输入端数、减少电路的层次数、消除冒险和竞争等。不同的化简目标可能导致不同的化简结果。

实践应用

应用一:设计一个密码锁控制电路

一个密码锁有4个按钮A、B、C、D。密码是A和C同时按下,或者B和D同时按下。设计控制电路:

列出真值表

写出逻辑表达式

用卡诺图化简

画出逻辑图

应用二:验证德摩根定律

使用真值表验证以下两个德摩根定律:

  • (A · B)' = A' + B'
  • (A + B)' = A' · B'

应用三:设计一个2位二进制数比较器

比较两个2位二进制数X(X₁X₀)和Y(Y₁Y₀),输出三个信号:X>Y、X=Y、X<Y。

应用四:用NAND门实现其他逻辑门

证明并验证:

用NAND门实现NOT门

用NAND门实现AND门

用NAND门实现OR门

本章小结

本章系统地介绍了数字逻辑的基础知识:

基本逻辑门:AND、OR、NOT是三种基本逻辑门,它们的组合可以实现任何逻辑功能。

复合逻辑门:NAND、NOR是通用门,XOR在加法器和比较器中有重要应用。

布尔代数:提供了分析和化简逻辑电路的数学工具,德摩根定律是其中最重要的定理。

逻辑化简:代数法和卡诺图法是两种主要的化简方法,化简可以降低电路成本和复杂度。

组合逻辑电路:输出仅取决于当前输入,设计步骤为需求→真值表→表达式→化简→逻辑图。

电气特性:逻辑电平、噪声容限、扇出和传播延迟是数字电路设计中需要考虑的实际因素。

掌握了逻辑门和组合逻辑电路的知识后,我们已经具备了构建基本计算电路的能力。在下一章中,我们将学习如何用逻辑门构建二进制加法器——计算机执行算术运算的基础。