学习目标
- 使用异或判断两个单比特输入何时不同。
- 通过对异或结果取反推导同或相等函数。
- 验证全部四种输入组合下的 MATCH 输出。
- 区分内部 DIFF 节点与电路中唯一的可见输出。
- 理解该 1 位函数与多位相等比较器、采样式边沿检测器之间的关系。
工作原理
该电路比较两个单比特输入 A 和 B。异或门首先计算内部差异信号 DIFF = A ⊕ B。两个输入不同时,DIFF 为逻辑高电平;两个输入相等时,DIFF 为逻辑低电平。
随后,非门对 DIFF 取反,其输出驱动电路中唯一的输出指示灯 MATCH。因此,MATCH = ¬(A ⊕ B) = A ⊙ B:输入为 00 或 11 时指示灯为逻辑高电平,输入为 01 或 10 时为逻辑低电平。这是以异或门后接非门明确实现的同或相等函数。
原理图没有使用第二个输出指示灯显示 DIFF。DIFF 只是两个逻辑门之间的内部节点,可见输出仅有 MATCH。从任一开关到指示灯,信号都要经过两级逻辑门,因此在不计互连延迟的情况下,组合逻辑深度为两级门延迟。
明确展开的两级结构有助于教学,因为它直观展示了取反关系。在生产用标准单元库中,直接使用同或单元可实现相同的单一输出,但其面积、功耗和时序特性可能不同。
真值表
MATCH 是 A 与 B 的同或结果。输入对相等时,唯一输出为逻辑高电平;输入对不等时为逻辑低电平。
| 输入 | 输出 | ||
|---|---|---|---|
| A | B | MATCH | |
| 0 | 0 | 1 | 两个输入均为逻辑低电平;DIFF=0,MATCH=1。 |
| 0 | 1 | 0 | 两个输入不同;DIFF=1,MATCH=0。 |
| 1 | 0 | 0 | 两个输入不同;DIFF=1,MATCH=0。 |
| 1 | 1 | 1 | 两个输入均为逻辑高电平;DIFF=0,MATCH=1。 |
布尔表达式
异或门生成内部差异信号;当且仅当 A 与 B 不同时,该信号为逻辑高电平。
非门对内部差异信号取反,因此当且仅当 A 与 B 相等时,唯一可见的 MATCH 输出为逻辑高电平。
DIFF 与 MATCH 互为逻辑反相。DIFF 是本原理图中的内部节点,并非第二路输出指示灯。
逐步尝试
在上方嵌入式电路中设置输入,然后阅读预期结果并验证。
- 1A = 0B = 0预期:
MATCH = 1观察结果: A=0、B=0 时,异或门生成 DIFF=0。非门对其取反,因此 MATCH 指示灯为逻辑高电平。 - 2A = 1B = 0预期:
MATCH = 0观察结果: A=1、B=0 时,异或门生成 DIFF=1。取反后,MATCH 为逻辑低电平。 - 3A = 1B = 1预期:
MATCH = 1观察结果: A=1、B=1 时,两个输入再次相等。DIFF 恢复为逻辑低电平,MATCH 变为逻辑高电平。 - 4A = 0B = 1预期:
MATCH = 0观察结果: A=0、B=1 时,两个输入不同。DIFF 为逻辑高电平,可见的 MATCH 输出为逻辑低电平。
所用元件
实际应用
单比特相等检查。 控制逻辑可以检查状态位是否与期望模式位一致。
总线相等比较器。 对每一位应用相等函数,并对结果进行与归约,即可生成 N 位全相等信号,用于处理器比较、缓存标签检查和协议逻辑。
边沿与变化检测。 将当前信号与经过寄存的先前采样值进行异或运算,在任一方向的转换后均可产生差异指示;该功能需要当前电路中没有的存储元件。
奇偶校验与错误逻辑。 异或网络可汇总是否有奇数个输入位有效;对其结果取反即可选择相反的奇偶校验约定。
相位比较。 对于频率相同的两个周期数字信号,在可用范围内,异或节点会产生与其相位差相关的占空比。
常见问题
为什么使用异或门后接非门,而不是单个同或门?
该双门链可直观显示 XNOR = NOT(XOR) 这一恒等关系。如果只需要 MATCH,且组件库提供同或门,则可用一个同或门替代这两个门。如果同时需要 DIFF 和 MATCH,可在反相器前从异或节点引出信号,从同一条链获得两路互补信号。
如何将该电路扩展为多位相等比较?
为每一位生成一个相等结果,再对全部结果进行与运算,即可得到所有位均相等的信号。每一位既可直接使用同或门,也可采用此处所示的异或加反相结构。
内部异或节点与边沿检测有何关系?
将信号与经过延迟和寄存的副本进行比较。只要延迟和时钟设计正确,任一方向转换后,异或节点 DIFF 都会在一个采样间隔内变为逻辑高电平。在本原理图中,DIFF 是内部信号,可见指示灯显示其反相信号 MATCH。
该电路是同步电路还是异步电路?
它是组合电路:MATCH 会在经过异或门和非门的传播延迟后跟随 A 与 B。电路中没有时钟或存储元件。如需比较当前采样值与先前采样值,必须外接触发器或寄存器。
异或加反相是否始终是最高效的硬件实现?
不存在通用的晶体管数量结论。实际结果取决于半导体工艺、静态 CMOS(互补金属氧化物半导体) 或传输门拓扑、驱动能力、负载以及经过表征的标准单元库。综合时应针对实际目标比较可用的异或、同或和反相器单元。