什么是 XOR 门?

在数字逻辑电路中,XOR 是 Exclusive OR 的缩写,中文称为“异或门”。它是数字电路中一种基本的逻辑门,与其他基本的逻辑门(如 AND、OR、NOT)一样,用于执行特定的逻辑运算。XOR 门的主要特点在于它的输出只在高电平(逻辑 1)时,当且仅当其输入端具有奇数个高电平时。

更具体地说,对于最常见的双输入 XOR 门,它的输出在两个输入不同时(一个高、一个低)为高电平,而在两个输入相同时(都高或都低)为低电平。这就是“异或”名称的由来:“异”即不同,只有输入不同时,输出才为“或”(高)。

XOR 门的逻辑符号与真值表

逻辑符号

XOR 门在电路图中有多种表示方法,国际电工委员会 (IEC) 和美国国家标准学会 (ANSI) 的符号是常用的。通常,它看起来像一个 OR 门,但在输入端有一个额外的曲线。

对于一个双输入的 XOR 门,其标准符号通常是:

一个类似弯弓(OR 门)的形状,前面有一个额外的弯曲线,两个输入线连接到前面的曲线,一个输出线连接到后面弯弓的尖端。

真值表

真值表用来描述逻辑门所有可能的输入组合对应的输出。对于一个双输入的 XOR 门(设输入为 A 和 B,输出为 Y),其真值表如下:

  • 输入 A | 输入 B | 输出 Y
  • 0 | 0 | 0
  • 0 | 1 | 1
  • 1 | 0 | 1
  • 1 | 1 | 0

从真值表中可以看出,只有当输入 A 和输入 B 的值不同时(即一个为 0 另一个为 1),输出 Y 才为 1。当输入 A 和输入 B 的值相同时(都为 0 或都为 1),输出 Y 为 0。

为什么使用 XOR 门?它与 OR 门有何不同?

使用 XOR 门是因为它执行的是一种在数字逻辑中非常有用的特定逻辑功能——检测输入的差异性或计算奇偶性。虽然它的名字里包含“OR”,但它的功能与标准的 OR 门有关键的不同点。

标准 OR 门(或门)的规则是:只要至少有一个输入为 1,输出就为 1。只有当所有输入都为 0 时,输出才为 0。

对比两者的真值表:

  • 输入 A | 输入 B | OR 输出 | XOR 输出
  • 0 | 0 | 0 | 0
  • 0 | 1 | 1 | 1
  • 1 | 0 | 1 | 1
  • 1 | 1 | 1 | 0

区别显而易见:当两个输入都为 1 时,OR 门的输出是 1,而 XOR 门的输出是 0。这就是“Exclusive”(排他的)的含义——它排除了两个输入都为 1 的情况。XOR 门只允许“一个”输入为 1 时输出才为 1,而不是“至少一个”输入为 1。因此,XOR 门非常适合用于需要判断两个输入是否“不同”的场合。

XOR 门如何实现?

XOR 门作为一种基本逻辑门,可以直接以集成电路(IC)的形式获得,例如 TTL 系列的 7486 芯片或 CMOS 系列的 4070 芯片,这些芯片内部已经包含了构建好的 XOR 门电路。但在更基础的层面上,一个 XOR 门可以由其他更基本的逻辑门组合而成,或者直接用晶体管搭建。

使用基本逻辑门构建

双输入 XOR 门的逻辑表达式是:Y = A B + A B。这意味着“A 非 B 加 非 A B”。

这个表达式可以使用以下基本逻辑门组合实现:

  1. 两个 NOT 门:用于获取 A 和 B 的非(AB)。
  2. 两个 AND 门:一个用于计算 A B,另一个用于计算 A B。
  3. 一个 OR 门:用于将前两个 AND 门的输出相加(逻辑或)。

通过这种组合,就可以实现一个双输入的 XOR 门功能。

晶体管层面的实现

在更底层的硬件中,逻辑门是由晶体管(如 MOS 晶体管或双极性晶体管)构建的。XOR 门可以用多种晶体管配置实现。例如,使用 CMOS 技术(互补金属氧化物半导体),一个简单的双输入 XOR 门可以通过巧妙地组合 P 型和 N 型 MOS 晶体管来实现其开关功能。具体的晶体管数量取决于设计方法,但通常一个双输入 CMOS XOR 门可以使用大约 4 到 6 个晶体管构建(例如,使用传输门逻辑或标准的静态 CMOS 逻辑)。这些晶体管作为开关,根据输入的高低电平来控制输出端的连接,从而实现异或逻辑。

XOR 门有多少输入和输出?

标准的、最常见的 XOR 逻辑门是双输入的,拥有两个输入端和一个输出端。这是最基础的异或操作单元。

然而,在实际应用中,有时会谈论“多输入 XOR”门。但这通常不是指一个单一的集成电路芯片引脚上的多输入 XOR 门,而是通过串联或并联组合多个双输入 XOR 门来实现的功能。

一个由多个双输入 XOR 门组成的电路可以接受多于两个输入。这种多输入组合电路的逻辑功能依然遵循 XOR 的基本原则:输出为高电平(逻辑 1)当且仅当其所有输入端中,处于高电平(逻辑 1)的个数是奇数。

例如,一个三输入(A, B, C)的异或功能可以通过 (A XOR B) XOR C 来实现。它的真值表将显示,只有当 A、B、C 中有 1 个或 3 个为 1 时,最终输出才为 1。

无论输入数量如何(通过组合实现),一个 XOR 逻辑功能单元通常只有一个输出端。

相关的门:XNOR 门

与 XOR 门紧密相关的另一个门是 XNOR 门,全称 Exclusive NOR(异或非门)。它实际上就是 XOR 门的输出再经过一个 NOT 门取反。

XNOR 门的逻辑功能是:当两个输入相同时输出高电平,当两个输入不同时输出低电平。它也常被称为“同或门”或“相等门”,因为它输出 1 表示两个输入相等。

  • 输入 A | 输入 B | XNOR 输出
  • 0 | 0 | 1
  • 0 | 1 | 0
  • 1 | 0 | 0
  • 1 | 1 | 1

XNOR 门通常也作为一种基本的集成电路逻辑门提供,并且也可以由基本逻辑门或晶体管构建。

XOR 门在哪里使用?

XOR 门在数字电路和计算机系统中有着广泛且重要的应用,尤其是在需要进行比较、计算、校验或简单处理数据流的场景中。以下是一些主要的应用领域:

  • 加法器电路: XOR 门是构建半加器和全加器的核心组件。在半加器中,一个 XOR 门用于计算两位二进制数的“和”(Sum)位(不考虑进位)。在全加器中,XOR 门用于计算三位输入(两个待加位和一个来自低位的进位)的“和”位。它是二进制加法逻辑的关键部分。
  • 奇偶校验(Parity Checking/Generation): XOR 门可以非常高效地生成或检查数据的奇偶校验位。通过对一组二进制位进行异或运算,最终的输出是 1 如果这组位中包含奇数个 1,输出是 0 如果包含偶数个 1。这常用于检测数据传输或存储过程中是否发生了错误(单比特错误会改变奇偶性)。
  • 比较器电路: XNOR 门(或 XOR 门与非门组合)可以用来比较两个二进制位是否相等。如果两个位相等,XNOR 输出为 1;如果不同,XOR 输出为 1。将多个这样的比较器组合起来,可以构建用于比较两个多位二进制数的电路。
  • 数据加密与解密: XOR 运算具有一个非常重要的特性:对于任意位 A 和密钥位 K,有 (A XOR K) XOR K = A。这意味着对一个数据位异或一个密钥位进行加密,再用同一个密钥位进行异或运算即可恢复原始数据。这种性质使得 XOR 成为一些简单对称加密算法(如一次性密码本)或数据加扰 (scrambling) 的基本运算。
  • 变量交换: 在一些编程语言或硬件逻辑中,可以使用三次 XOR 运算在不使用临时变量的情况下交换两个变量的值。例如,A = A XOR B; B = A XOR B; A = A XOR B; 最终 A 和 B 的值会互换。
  • 伪随机数生成器: 在线性反馈移位寄存器 (LFSR) 等伪随机数生成电路中,XOR 门被用于反馈路径中,根据当前状态生成下一个状态位。
  • 数字信号处理: 在一些数字信号处理应用中,XOR 运算也用于特定的逻辑操作。

总而言之,只要是需要检测输入的差异性、计算奇偶性、进行位比较或利用其自反特性(两次同值异或等于原值)的场景,XOR 门都是一个重要的逻辑构建块。


xor是什么门

By admin

发表回复