你搬进一栋老宅,客厅天花板挂着一盏复古吊灯,墙上并排有两个开关。房东留下一本泛黄的《接线秘籍》:同样的两个开关,用不同的“接线秘方”,灯会呈现出完全不同的明暗规律——有时两个都打开灯才亮,有时一开就亮,有时两个都打开灯反而灭了。这些秘方在数字世界里叫逻辑门:基本门(与、或、非)负责最朴素的判断,而复合门(与非、或非、同或)就像在基本判断之上叠加了“反转”或“配对”的魔法。本篇我们沿着秘籍一页页翻下去:先学会读“规则表”(真值表),再逐一认识三种复合门,搞懂为什么与非门能成为“万能积木”,并用它造出密码锁和记忆单元。你会发现,一盏灯的明灭,最终通向整个数字芯片的地基。

岗位关联

看懂复合逻辑,你就解锁了从“灯泡明灭”到“CPU 芯片”之间最重要的思维跳板——这也是数字电路设计、存储器和底层优化的共同语言,是 AI 从业者理解硬件加速器的基础。

目录
  1. 可视化演示
  2. 概念入门
  3. 与非门
  4. 或非门
  5. 同或门
  6. 万能门
  7. 逻辑变换
  8. 工程应用
  9. 实现与性能
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示NAND、NOR、XNOR三种复合逻辑门的真值表信号流、通用门完备性构建及CMOS晶体管级实现对比,交互切换三种模式。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+CAPS.mode1+'

概念入门

《接线秘籍》第一页写着一行“阅读约定”:开关向上拨记为 1,向下拨记为 0;灯亮记为 1,灯灭记为 0。客厅吊灯的状态,永远只取决于两个开关当前的数字组合——就像给灯写了一张只有 4 行的“规则表”。例如“只有当两个开关都向上时灯才亮”,其实就是这张表里唯一一行输出 1 的规则。

这张规则表在数字电路里有一个正式名字:真值表。任何一位“只会做 0/1 判断”的数字管家,判断依据都是真值表。上一讲你已经认识了三位最基础的管家——与门(两个都要“是”才放行)、或门(有一个“是”就放行)、非门(把结果反过来)。复合逻辑,就是把这几位的技能叠加:先做与或判断,再在输出端接一个非门,或者让多个门协同回答,从而生成全新的规则。

因为每个输入只有 0/1 两种取值,两个输入的全部组合只有 2²=4 种:00、01、10、11。真值表按这个固定顺序列出四种情况,再把输出列在右边。之后讲的与非门、或非门、同或门,本质上都是“真值表层面”的独特规则,而不是靠猜电路图得到的幻觉。约定俗成:1 表示成立、亮、高电平;0 表示不成立、灭、低电平。

读懂规则表,你就掌握了解读《接线秘籍》的语法:每一个秘方,不过是一张 4 行的小表。三种复合门,就是三张性格迥异的表情。

与非门

秘籍第七条写着“环保灯秘方”:只有当两个开关同时向上拨(都等于 1)时,灯反而熄灭;其余三种情况灯都亮着。房东在旁批注:两个开关分别代表“窗帘拉开”和“阳光充足”,当两者都成立时自然光足够,吊灯自动休假。这条“双开才灭、其余全亮”的规则,就是与非门(NAND)。

与非门的名字可以拆成“与 + 非”:先让两个输入做一次与运算,再把结果整体取反。它真正否定的,是“两个条件同时满足”这件事。真值表按 00、01、10、11 排列,输出列 1、1、1、0——只有一个组合输出 0,其余全是 1。等价的说法是:“只要有一个输入为 0,输出就是 1。”

工程里它最典型的用法是当“停止信号”:比如电梯门正在关闭(输入 1 表示正在关门),同时传感器检测到有人(输入 1 表示有人),此时与非门输出 0,触发立刻重新开门;只要“正在关门”或“有人”任一不成立,输出保持 1,门继续执行关门。表达式和等价式如下:

环保灯教会我们第一句复合逻辑心法:与非门是“默认开,双确认才关”。它这种“反着来”的个性,之后会成为万能门的主角。

Y=A⋅B‾=A‾+B‾\displaystyle Y = \overline{A \cdot B} = \overline{A} + \overline{B}
与非门:唯一的 0 出现在“两个输入都为 1”那一行,其他三行都是 1。
  1. 先算与括号里 A·B 只有当 A=B=1 时才为 1,其余三种组合全是 0。
    A⋅BA \cdot B
  2. 整体取反长横线把整个与运算的结果取反,所以 1,1 那一行输出 0,其余行输出 1。
    A⋅B‾\overline{A \cdot B}
  3. 等价展开根据德摩根定律(后面章节详述),整体取反等价于两个输入分别取反后再相加。
    A‾+B‾\overline{A} + \overline{B}

或非门

秘籍第九条写着“安心灯”:只有两个开关都向下拨(0,0)时,小夜灯才亮;任何一个开着,灯都灭。这就像巡夜保安的逻辑:只有当“门已锁好”和“走廊无人”都为真时,他才点亮那盏表示“放心”的绿灯;只要还有一点动静,指示灯就必须熄灭。

或非门(NOR)就是“先或后非”:两个输入只要有一个为 1,输出就是 0;只有输入全为 0 时才输出 1。按 00、01、10、11 排列的真值表输出列为 1、0、0、0,与与非门恰好镜像互补。它等价的说法是:“两边都取反后再相与”——两个输入都等于 0,结果才成立。

或非门是“全零检测”专家:当一组信号全部为 0 时输出 1。这在工程中常被用来做安全联锁、空闲状态检测、故障复位判断——比如设备的“急停状态”指示灯,只有当启动信号和运行信号都为 0 时才允许点亮。表达式如下:

安心灯与环保灯正好相反:一个“只要全 0 就亮”,一个“只要全 1 就灭”。规则越有个性,对应的工程巧思往往越精确。

Y=A+B‾=A‾⋅B‾\displaystyle Y = \overline{A + B} = \overline{A} \cdot \overline{B}
或非门:唯一的 1 出现在“两个输入都为 0”那一行,三种其他组合全是 0。
  1. 先算或括号里 A+B 只要有一个 1 结果就是 1,只有 0,0 那一行为 0。
    A+BA + B
  2. 整体取反取反后只有 0,0 输出 1,其余组合全部输出 0。
    A+B‾\overline{A + B}
  3. 等价展开取反后的“或”等价于各自取反后的“与”,正好对应“两个都为 0”这一条件。
    A‾⋅B‾\overline{A} \cdot \overline{B}

同或门

秘籍第十条写着“默契灯”:两个开关状态一致(都向上或都向下)时灯亮,一上一下时灯灭。这就像“情侣装检票口”:两人穿着相同才放行——一致,灯光亮起;不一致,闸机紧闭。这条规则就是同或门(XNOR)。

同或门的规则一句话:输入相同输出 1,输入不同输出 0。它与上一讲的异或门是天生一对——异或门“不同则 1”,同或门“相同则 1”,两者的输出恰好互为取反。按 00、01、10、11 排列,同或门真值表输出列为 1、0、0、1,正好是异或门(0、1、1、0)的镜像。

同或门的看家本领是“相等比较”:把两个数的对应位分别送入同或门,每一位相同就输出 1,于是整个数字是否相等就一目了然。密码校验、缓存一致性比对,背后都是它在工作。表达式如下:

默契灯就是一把“数字标尺”:密码对不上,灯就灭。它是后面密码校验器最底层的地基。

Y=A⊙B=(A⋅B)+(A‾⋅B‾)\displaystyle Y = A \odot B = (A \cdot B) + (\overline{A} \cdot \overline{B})
同或门又叫“一致门”:两条通路分别覆盖“全 1”和“全 0”,唯一不让输出的情况就是两个输入有差异。
  1. 两条通路AB 负责“两个都是 1”,ĀB̄ 负责“两个都是 0”,两条路正好覆盖所有“相同”的组合。
    A⋅B+A‾⋅B‾A \cdot B + \overline{A} \cdot \overline{B}
  2. 或运算合并任意一条路成立输出就是 1,所以输入相同时必然输出 1。
    (A⋅B)+(A‾⋅B‾)=1(A \cdot B) + (\overline{A} \cdot \overline{B}) = 1
  3. 与异或互补前面证明异或输出 1 的情形恰好是输入不同,所以同或就是异或整体取反。
    A⊙B=A⊕B‾A \odot B = \overline{A \oplus B}

万能门

秘籍最后一页,房东用大写字母写了一行得意的话:其实你只需要一种开关——“万能与非盒”——就能搭出前面所有秘方。这就像乐高最基础的那块砖,看似普通,却能拼出整座城堡。与非门为什么有这种本事?因为它天生同时带着“与”和“非”两种能力。

任何逻辑函数都可以用“与、或、非”三种基本运算表达,而德摩根定律(下一节)又能把“或”翻译成“与非”的形式。于是理论上只需要与非门一种积木,就能构造出全部逻辑电路。或非门作为与非门的“双胞胎”,也同样万能。

三个经典拼法需要记住:第一,把与非门的两个输入并接同一个信号,它就变成反相器(非门);第二,先用与非做一次,再把结果送到第二个“并接模式”的与非门,双层取反抵消,就得到与门;第三,把两个输入各自取反后再与非,就得到或门。核心变换如下:

为什么芯片工厂的库房里堆满与非门?因为它便宜、好造,又能以一敌三。下一节的“换装术”会告诉你翻译的全部语法。

A⋅A‾=A‾,Y=(A⋅B‾)⋅(A⋅B‾)‾=A⋅B\displaystyle \overline{A \cdot A} = \overline{A}, \qquad Y = \overline{(\overline{A \cdot B}) \cdot (\overline{A \cdot B})} = A \cdot B
万能门的关键:输入并接制造“取反”,两层取反互相抵消,于是积木可以自由拼装。
  1. 输入并联取反把与非门的两个输入接到同一个信号 A 上,A·A 就等于 A,再取反就是非门。
    A⋅A=AA \cdot A = A
  2. 两级串联抵消先对 A·B 做一次与非得到中间量 M,再把 M 送入“并接模式”的与非门,相当于再取反一次。
    M=A⋅B‾,Y=M⋅M‾M = \overline{A \cdot B}, \quad Y = \overline{M \cdot M}
  3. 双层取反还原一个量取反两次会回到它本身,所以最终结果就是 A·B,与门拼装完成。
    A⋅B‾‾=A⋅B\overline{\overline{A \cdot B}} = A \cdot B

逻辑变换

秘籍边角有用红笔写下的口诀:“长杠劈两半,乘号变加号。”这句话的来历像安检规则:公告说“禁止同时携带液体和打火机”,你只要放弃其中一样就合规,翻译过来就是“要么不许带液体,要么不许带打火机”。否定一整个组合,等价于否定其中的任何一项——这就是逻辑世界最重要的语法规则:德摩根定律。

德摩根定律一共有两条:对“与”整体取反,等价于各项取反后再“或”;对“或”整体取反,等价于各项取反后再“与”。简单说,把长杠从括号上拆下来分配到每个变量上时,里面的符号必须跟着翻转:乘号变加号,加号变乘号。

掌握它有什么好处?第一,能把与非门、或非门写成“与或式”或“或与式”,方便化简布尔表达式;第二,它是“全与非化”的理论依据——任何表达式都可以翻译成只用与非门的网络,从而节约芯片成本;第三,化简电路时,它就是那把最顺手的剪刀。两条定律如下:

有了换装术,任何逻辑表达式都能自由翻译成“与非语言”——这正是万能门能成为万能的原因,也是我们化简电路时最顺手的工具。

A⋅B‾=A‾+B‾,A+B‾=A‾⋅B‾\displaystyle \overline{A \cdot B} = \overline{A} + \overline{B}, \qquad \overline{A + B} = \overline{A} \cdot \overline{B}
德摩根定律:拆长杠时“先换号,再分杠”,与和或互相转换。
  1. 与运算取反对“两个都满足”取否定,等价于“至少有一个不满足”,写成两个取反相加。
    A⋅B‾=A‾+B‾\overline{A \cdot B} = \overline{A} + \overline{B}
  2. 或运算取反对“至少一个满足”取否定,等价于“两个都不满足”,写成两个取反相乘。
    A+B‾=A‾⋅B‾\overline{A + B} = \overline{A} \cdot \overline{B}
  3. 代入验证例如 A=1、B=0 时,左边 ¬(1·0)=1,右边 ¬1+¬0=1,两边完全一致。
    1⋅0‾=1=1‾+0‾\overline{1 \cdot 0} = 1 = \overline{1} + \overline{0}

工程应用

你把《接线秘籍》彻底用活了:地下室有一扇密码门,需要输入 4 位密码。你设计了一个“口令核对器”:每一位密码各接一个同或门,同或门输出再汇入一个与门——只有四个位全部一致,开门灯才会点亮。用到的正是同或门“相同则 1”的脾气。

这个核对器在工程上叫数字比较器,它无处不在:密码校验、CPU 判断两个寄存器是否相等、网络数据包的重合比对。同或负责“相等”判断,异或负责“不同”判断,把一串异或门串联起来还能计算奇偶校验位——发送方把 1 的个数补成偶数,接收方重新计算,若不一致就说明数据传输出错。

另一个大杀器是用两个与非门交叉连接组成 SR 锁存器:电路能“记住”上一次的状态,不会因为输入消失而丢失记忆。这是寄存器、缓存和一切存储器的雏形,再往上层叠,就能造出 SRAM 存储单元。4 位比较器的数学表达如下:

从一盏灯的明灭,到能记忆、能校验的数字单元,复合逻辑就是这趟旅程的核心引擎。

F=(A3⊙B3)⋅(A2⊙B2)⋅(A1⊙B1)⋅(A0⊙B0)\displaystyle F = (A_3 \odot B_3) \cdot (A_2 \odot B_2) \cdot (A_1 \odot B_1) \cdot (A_0 \odot B_0)
4 位比较器:四位全部“相同”输出 1;任何一位不同,与门就被“拉”成 0。
  1. 逐位同或把密码的每一位 A_i 和输入 B_i 送入同一个同或门,相同出 1、不同出 0。
    Ai⊙Bi=AiBi+Ai‾ Bi‾A_i \odot B_i = A_i B_i + \overline{A_i}\,\overline{B_i}
  2. 结果求积四个位的结果送入与门,只有全部为 1,F 才为 1。
    F=(A3⊙B3)⋯(A0⊙B0)F = (A_3 \odot B_3) \cdots (A_0 \odot B_0)
  3. 失败即拉零任何一位不一致,该位输出 0,整个与门输出被拉低为 0,代表比对失败。
    Ai⊙Bi=0⇒F=0A_i \odot B_i = 0 \Rightarrow F = 0

实现与性能

房东在秘籍最后画了几张电路草图:同样实现“两个都开才亮”,用“与非门 + 反相”只需 4 只小开关(晶体管),直接做与门反而要 6 只。省下的 2 只,乘以芯片上几亿个门,就是肉眼可见的成本与功耗差距。走进芯片内部,CMOS 工艺中与非门、或非门天然是 4 管结构,与门、或门却要“基本门 + 反相器”共 6 管。

由此引出三个重要性能概念。扇入:一个门最多能接几个输入,输入端接得太多,内部管子并联的门会被拖慢;扇出:一个门的输出能带动几个下一级门,带太多会因电流不足导致信号失真;传播延迟:信号从输入到输出需要的时间,门级联的层数越多,延迟累积越大。所以在设计流水线时,工程师会尽量减少“门深度”。

还有一个经典的坑:输入端悬空。TTL 工艺的门电路,悬空输入端往往因内部上拉效应等效为高电平,很多初学者焊好电路后发现输出“莫名其妙”不对,多半就是某个输入脚悬空了。为此,工程上要么把不用输入端接高/低电平,要么并联到已用输入端。复合门的选择,本质是算“成本账”:每省一只管子、每减少一级延迟,芯片就更便宜一点、更快一点。

AI 应用场景

场景一:AI 芯片的逻辑综合与后端优化

阶段:芯片设计 / 部署优化

解决的问题:神经网络加速器里的控制逻辑、状态机、译码器如果全用与门和或门实现,综合工具会生成面积大、功耗高的电路;利用与非门、或非门的 4 管优势并配合德摩根化简,能把关键路径的门数和晶体管数同时降下来,这在功耗受限的边缘 AI 芯片上尤为关键。

具体案例:某 NPU 的流水线控制单元原先用与或式表达式综合出 600 个标准单元,工程师先用卡诺图化简,再统一转换成 NAND-NAND 两级电路,单元数降到 420 个,关键路径延迟缩短约 18%。

场景二:AI 服务器的数据校验与一致性比对

阶段:数据存取 / 训练稳定性保障

解决的问题:大模型训练时,多块 GPU 之间要频繁交换梯度数据,任何一位翻转都可能导致训练发散。传统做法靠软件校验,速度慢且占 CPU;硬件上用同或门阵列做逐位相等比较,再用异或门链计算奇偶校验位,可以在一个时钟周期内完成数据链路自检。

具体案例:某训练集群在 GPU 显存与主机之间的 DMA 链路上加入基于 XNOR 的比较器,检测到两次读取不一致时自动触发重传,训练任务的异常中断率降低了 90% 以上。

场景三:AI 加速器内部的寄存器文件设计

阶段:推理加速 / 处理器微架构

解决的问题:AI 芯片里的临时变量、累加结果都需要大量寄存器来保存,寄存器的最小单元就是由两个与非门交叉组成的 SR 锁存器。理解 NAND 锁存器的真值表和禁忌输入,是设计稳定寄存器文件、避免亚稳态问题的起点。

具体案例:某 RISC-V AI 协处理器的寄存器堆采用 NAND 构成的标准 D 触发器阵列,工程师通过约束 SR 锁存的“双 0 非法状态”并插入同步复位,在 7nm 工艺下实现了低功耗寄存器文件设计。

Python 演示

python64 行
def nand(a, b):    return 0 if (a & b) else 1  def nor(a, b):    return 0 if (a | b) else 1  def xnor(a, b):    return 1 if a == b else 0  def not_gate(x):    return nand(x, x)  def and_gate(a, b):    t = nand(a, b)    return nand(t, t)  def or_gate(a, b):    return nand(nand(a, a), nand(b, b))  def print_truth(name, fn):    print('%s 真值表:' % name)    for a in (0, 1):        for b in (0, 1):            print('  A=%d B=%d -> Y=%d' % (a, b, fn(a, b)))  def verify_de_morgan():    ok = True    for a in (0, 1):        for b in (0, 1):            if nand(a, b) != or_gate(not_gate(a), not_gate(b)):                ok = False            if nor(a, b) != and_gate(not_gate(a), not_gate(b)):                ok = False    return ok  def nibble_equal(a, b):    same = 0    for i in range(4):        same += xnor((a >> i) & 1, (b >> i) & 1)    return same == 4  def main():    print_truth('NAND', nand)    print_truth('NOR', nor)    print_truth('XNOR', xnor)    print('用 NAND 搭 NOT(1):', not_gate(1))    print('用 NAND 搭 AND(1,0):', and_gate(1, 0))    print('用 NAND 搭 OR(0,1):', or_gate(0, 1))    print('德摩根定律验证:', verify_de_morgan())    print('4位密码比对 1010 vs 1010:', nibble_equal(10, 10))    print('4位密码比对 1010 vs 1001:', nibble_equal(10, 9))  if __name__ == '__main__':    main()
目的:用 Python 函数模拟与非、或非、同或三种复合门,验证“万能门”构造与德摩根定律,并用同或门实现 4 位密码比对器。
  1. def nand(a, b):定义与非门:先算与,再整体取反。
  2. return 0 if (a & b) else 1与非门的唯一 0 出现在两个输入都为 1 时。
  3. def not_gate(x):用与非门当反相器:两个输入并联同一个信号。
  4. return nand(t, t)与门 = 与非后再取反一次,双层非抵消。
  5. return nand(nand(a, a), nand(b, b))或门 = 两个输入各自取反后再与非。
  6. if nand(a, b) != or_gate(not_gate(a), not_gate(b)):验证德摩根定律:¬(A·B) 等于 ¬A 或 ¬B。
  7. if nor(a, b) != and_gate(not_gate(a), not_gate(b)):验证第二条定律:¬(A+B) 等于 ¬A 与 ¬B。
  8. same += xnor((a >> i) & 1, (b >> i) & 1)逐位取出密码的每一位,送入同或门累计相同个数。
  9. nibble_equal(10, 10)四位二进制 1010 与 1010 完全一致,比对器应判真。

常见误区

误区我觉得与非门就是与门,只要有一个输入是 0,输出就肯定是 0,毕竟它名字里带个“非”字。

正解名字里的“非”作用于整体结果,而不是单个输入。与非门的规则恰恰是:只要有一个输入为 0,输出就是 1;唯一输出 0 的情形是“两个输入都为 1”。记住口诀“先算与、再取反”,取反永远发生在最后,不能中途插到输入上。

为何常见:人对与门“全 1 才 1”的印象太深,于是把“非”的优先级理解错了,把整体取反误当成对每个输入取反。

误区或非门平时输出 0,看起来很“消极”,我觉得它比与非门弱,能不用就不用。

正解或非门只是“全 0 才出 1”的警惕型门,地位和与非门完全对等——它同样是万能门,能搭出任意电路。觉得它弱,是因为拿“输出 1 的个数”衡量价值;而工程上“全零检测”“安全联锁”“急停判断”恰恰全部依赖这种规则。

为何常见:从与门、或门“正向成立”的思维习惯出发,人们容易低估那些“默认归零、特殊才亮”的异类规则。

误区同或门应该跟与门差不多,两个输入都为 1 时输出 1,其他情况输出 0。

正解同或的“相同”既包含两个 1 相同,也包含两个 0 相同,所以按 00、01、10、11 排序的真值表输出为 1、0、0、1,与与门(0、0、0、1)完全不同。“都为 0 也输出 1”正是同或门能做相等比对的原因,丢了这一点就等于把标尺换成了橡皮筋。

为何常见:生活中说“一样”时总默认指的是“好的东西一样”,忽略了“什么都没有”也是一种完全一致的状态。

误区NOT(A AND B) 拆开就是 NOT A AND NOT B,每个变量各自取反肯定没错。

正解拆长杠时符号必须翻转:与变或、或变与,口诀“拆杠必换号”。可以用代入法验证:A=0、B=1 时,左边 ¬(0·1)=1,而 NOT A AND NOT B 等于 0,两边不等,说明拆错了;正确的 ¬A 或 ¬B 代入才等于 1。

为何常见:初中数学乘法分配律的印象太深,被错误地搬到了逻辑代数中,忽略了取反操作的特殊语法。

误区与非门能构造所有逻辑,那芯片设计就应该全部只用与非门,其他门都多余。

正解“万能”指的是逻辑完备性,不等于工程最优性。实际标准单元库里与非门、或非门、反相器、传输门多种单元混用,综合工具会按面积、功耗、时序综合权衡。只是在处理复杂布尔式时,化简后统一转成 NAND-NAND 两级实现,确实是经典的成本优化手段。

为何常见:把“理论上可构造”夸大成“实践上唯一方案”,忽略了延迟、扇出、布线等多元约束。

面试题

Q1. 与非门两个输入为 1 和 0,输出是多少?

单选题 · easy

  • A.输出为 0
  • B.输出为 1← 正确答案
  • C.输出不确定
  • D.输出高阻态

答案:B。与非门只有“两个输入都为 1”时才输出 0,其余三种组合都输出 1。A=1、B=0 不是“全 1”,所以输出 1。C、D 是模拟电路层面的概念,与逻辑真值无关。

Q2. 或非门的两个输入都为 0 时,输出是?

单选题 · easy

  • A.输出高电平← 正确答案
  • B.输出低电平
  • C.输出会浮空
  • D.输出看负载

答案:A。或非门是“先或后非”,输入 0,0 时或的结果是 0,取反后输出 1,即高电平。只要有任何输入为 1,输出才会被拉低为 0。

Q3. 同或门在 A 与 B 不相等时,输出为?

单选题 · easy

  • A.输出恒为 0← 正确答案
  • B.输出恒为 1
  • C.输出等于 A
  • D.输出等于取反

答案:A。同或门“相同则 1、不同则 0”,所以输入不相等时输出恒为 0。它与异或门恰好相反——异或门在不同时输出 1,二者互为取反关系。

Q4. 想让一个二输入与非门当反相器使用,以下哪些接法正确?

多选题 · mid

  • A.两输入并联同一信号← 正确答案
  • B.一端接高电平一端接信号← 正确答案
  • C.一端接低电平一端接信号
  • D.两个输入全部悬空

答案:AB。两输入并接时 NAND(A,A)=¬A,是反相器;一端接 1 时 NAND(1,x)=¬x,也是反相器。一端接 0 时输出恒为 1,无法取反;悬空输入在 TTL 中等效高电平,但依赖工艺特性,不能算可靠接法。

Q5. 根据德摩根定律,NOT(A AND B) 等价于?

单选题 · mid

  • A.¬A 与 ¬B 相与
  • B.¬A 与 ¬B 相或← 正确答案
  • C.A 与 ¬B 相与
  • D.¬A 与 B 相与

答案:B。拆长杠时“乘号变加号”,¬(A·B)=¬A+¬B,即“非 A 或非 B”。选项 A 是第二条定律 ¬(A+B) 的展开,C、D 缺少对整体取反的正确分配。

Q6. 用与非门构造一个与门,最少需要多少个与非门?

单选题 · mid

  • A.两个与非门← 正确答案
  • B.一个与非门
  • C.三个与非门
  • D.四个与非门

答案:A。第一个与非门得到 ¬(A·B),第二个把该结果两输入并接再取反一次,双层取反抵消后得到 A·B。一个不够,因为没有取反输出的来源;三四个虽然也能实现,但不是最少。

Q7. 以下哪些门属于“万能门”,可以构造出任意逻辑电路?

多选题 · mid

  • A.与非门← 正确答案
  • B.或非门← 正确答案
  • C.同或门
  • D.与门

答案:AB。与非门和或非门都是“万能门”,逻辑完备,可以组合出与、或、非乃至任意布尔函数;同或门和与门缺少必要的能力(无法单独实现取反),不构成万能门。

Q8. 关于同或门(XNOR),下列说法正确的是?

多选题 · mid

  • A.输入相同输出为 1← 正确答案
  • B.是异或门输出取反← 正确答案
  • C.输入不同输出为 1
  • D.可以做逐位比对← 正确答案

答案:ABD。同或门“相同则 1”、不同则 0,且与异或门互为取反,因此常用来做逐位相等比对。选项 C 描述的是异或门的规则,方向完全相反。

Q9. 由两个与非门交叉连接组成的 SR 锁存器,当 S=0、R=0 时电路处于什么状态?

单选题 · hard

  • A.Q=0,Q̄=1 稳定保持
  • B.Q=1,Q̄=0 稳定保持
  • C.Q=1,Q̄=1 输入非法← 正确答案
  • D.Q=0,Q̄=0 电路烧毁

答案:C。对 NAND 构成的 SR 锁存器,S=0、R=0 会强制两个输出都变为 1,破坏“Q 与 Q̄ 互补”的约束,是禁止输入的保持状态,不会稳定在 0/1 互补状态,也不会烧毁电路。

Q10. 在 TTL 与非门中,某个输入端悬空(未接任何信号),其等效逻辑电平通常是?

单选题 · extreme

  • A.等效为高电平← 正确答案
  • B.等效为低电平
  • C.等效为高阻态
  • D.等效为损坏态

答案:A。TTL 门输入端悬空时,由于输入晶体管的基极电流会被内部电阻“上拉”,悬空端往往读作逻辑高电平。这会造成电路行为与预期不符,工程上应把不用的输入端固定接到 1 或 0,或并联到已用输入。