编程语言研究书库

逻辑门 — 从晶体管到「万能门」

逻辑门 — 从晶体管到「万能门」

这一章讲什么: 第 4 章的式子(∧、∨、¬)在这一章变成真的开关。 你会看到:电压的高低代表 0 和 1;晶体管是受电控制的开关;两种晶体管互补配对 造出非门;又因为晶体管天生爱反相,「与非门」反而比「与门」便宜——便宜到 只用它一种门就能搭出任何电路。读完你会理解,为什么硬件工程师张口闭口 都是 NAND,而你在第 4 章学的 AND/OR 只是图纸上的一层皮。

1. 顶层全景:一扇门的三层构造

  逻辑层:  非门 NOT(¬)        ← 本章主角,一切从这里开始
              │ 用什么实现?
  开关层:  CMOS = 一个 P 沟道 MOSFET(上拉)+ 一个 N 沟道 MOSFET(下拉)
              │ 开关又用什么实现?
  电子层:  电压电平(5 V / 0 V)+ 半导体(掺了杂质的硅)+ 电阻/电容的时序

  图说:三层每一层只依赖下一层;程序员在逻辑层活着,但工程决策(为什么 NAND 万能)
  要从电子层往上解释——这是本章存在的理由。

本章开篇先立规矩:「你不必先成为一名电气工程师再去理解逻辑门的工作原理」1—— 5.1 节的电子学就是为完全零基础的人铺的台阶。同时承诺深度只到「理解门电路」, 不进入器件物理。

2. 电子学入门:电压、电流和三种「挡路的」元件

2.1 两个基本概念

  • 电流:电荷的流动,单位安培(amp)。只有从电源一端到另一端有完整连通路径 时,电流才会流动2;
  • 电压:电路中两点之间「每单位电荷的电力差」,单位伏特2。

电从墙上插座进来时是交流电(AC)——电压随时间按正弦波摆动; 计算机电路要的是直流电(DC)——电压恒定。两者之间的转换由电源完成3。 电池提供的也是直流。这一节唯一的公式工具是欧姆定律:V = I × R (电压 = 电流 × 电阻),后面所有数字都从它推出来4。

计算机用两个电压电平表示逻辑 0 和 1——例如 0 V 代表 0、5 V 代表 1 (反过来也行,「只要保持硬件设计一致」)5。这两个电平是全书所有 0/1 的 物理本体:第 2 章的「双态开关」,态就是电压。 顺带一个工程常识:真实器件不是精确工作在标称电压上的——标称 5 V 的元件 通常有 ±5% 的公差,也就是 4.75~5.25 V 都得正常工作6。 「0 和 1 是两个电平」是一种理想化,真实世界里是两个电压区间。

2.2 三种无源元件:电阻耗、电容抗电压突变、电感抗电流突变

计算机电路由四类元件构成:电源、无源元件、有源元件(受电控制)、导线7。 三种无源元件的分工一句话记住:电阻耗能(变电为热),电容和电感储能 (电场/磁场)——储能需要时间,所以它们「抗变化」8:

元件存储/消耗不能瞬间改变的是
电阻 R不储能,只耗能(发热)——(它只挡电流)
电容 C电场储能电压(电容两端电压不能突变)
电感 L磁场储能电流(通过电感的电流不能突变)

「抗变化」听着抽象,落到实处就是时间:电容充电不是瞬间完成的, 速度由 RC 时间常数(电阻×电容)决定。原书算了一个贯穿全章的例子: 1.0 kΩ 电阻 + 1.0 μF 电容,RC = 1.0 ms;一个时间常数后电容充到电源电压的 约 63%(3.15 V),六个时间常数后基本充满(4.99 V)9。 (电容电压的那条公式里有积分号 ∫,没学过微积分也没关系——把它读作 「无穷小求和」:从开关闭合到现在,一点点攒起来的电压10。)

这个 1 ms 的例子埋着一条暗线:它「是对一个晶体管的输出与另一个晶体管的输入 相连的粗略模拟」——前者的输出电阻 + 后者的输入电容,就是 RC;后者的开关行为, 取决于电容电压是否达到阈值11。晶体管电路的快慢,说到底就是一堆 RC 充电的竞赛。 电感那边对称:时间常数是 L/R,1.0 μH / 1.0 kΩ = 1.0 ns;1 个时间常数后 电感电压同样降到 63%,6 ns 后基本归零,电流稳定到 5.0 mA12。 主板 CPU 旁边那个直径约 1 cm 的小环状物就是电感,职责是平滑 CPU 的供电电压: 电源的直流电平上叠着高频噪声,电感靠「抗电流突变」把噪声挡在外面13。

2.3 功耗:为什么硬件设计在乎电流的平方

功率 P = V × I;电阻的功率写成 P = I² × R——功耗随电流的平方增长, 所以「减少电流量」是硬件设计的常见目标,省一点电流,省很多热14。

原书用一块电池把「能量」和「功率」的区分讲得很实:能量是引起变化的能力, 单位焦耳;功率是能量使用的速率,单位瓦特(1 W = 每秒消耗 1 J), 关系是 1 W = 1 V × 1 A15。作者那块备用电池存 240 Wh (瓦时)——意思是「240 W 撑一小时,或 120 W 撑两小时」, 折成焦耳是 240 × 3600 = 864 000 J。容量(能撑多久)和功率(此刻多快)是两回事, 芯片设计两者都要管:电池设备在意容量(热和续航),插电设备常常只在意功率(散热)。

顺带交代电容和电感的功率账:「短暂充电后,电容器阻止电流流动,因此电容器的 功率为零」——它只存能量不耗能;电感「磁场很快产生之后,电压变为零,功率也为零」。 只有电阻是持续烧钱的16。这条账解释了 CMOS 的设计哲学: 让稳态电流趋近于零,让能耗只发生在不可避免的切换瞬间(§4)。 这句平方关系是本章后半段的裁判:比较各种门电路方案时, 「谁省电流」比「谁少几个元件」更要紧。

2.4 主线例子的第 ① 步:机械开关的非门

在引出晶体管之前,原书先用两个按钮开关拼了一个非门——这是「开关 → 门」 这个思想的第一次完整演示17:

  两个按钮串在 5 V 和 0 V 之间:
  ┌─ 常闭按钮 ─┐        顶部开关平时闭合;按下时断开
  │            │
  5 V          ├─→ 输出 ¬x
  │            │
  └─ 常开按钮 ─┘        底部开关平时断开;按下时闭合

  x = 0(不按):顶部闭合 → 5 V 接到输出 → ¬x = 1
  x = 1(全按):顶部断开、底部闭合 → 输出接到 0 V → ¬x = 0

  图说:输入 1 得输出 0、输入 0 得输出 1——机械零件版本的非门。

结论:「早期的计算设备的确使用机械开关来实现逻辑功能,但以今天的标准来看, 速度太慢了」18。下面所有内容,就是给这两个按钮找电子替身。

3. 晶体管:受电控制的开关

晶体管是可以通过电子方式控制其电阻的元件,属于有源元件19。 现代计算机 logic 里用的是 MOSFET(金属氧化物半导体场效应晶体管), 基本材料是硅——半导体,「能够导电,但导电性不是很好」,掺入杂质(掺杂) 可以调节导电性:传导电子的叫 N 型,传导空穴的叫 P 型20。

MOSFET 有三个端子,记住分工:

端子角色类比
栅极(gate)输入:加在栅极(相对源极)的电压控制导通按钮
漏极(drain)输出:导通时和低/高电压接通输出的那一头
源极(source)参考端:N 型接低电压,P 型接高电压电压的「那一极」

两种基本类型,行为互补(第 4 章学补学对了地方)21:

N 沟道P 沟道
栅极加什么电压导通相对源极为正(阈值约 +1 V)相对源极为负(阈值约 −1 V)
栅极加什么电压断开与源极相同(0 V)与源极相同
源极接低电压(0 V)高电压(5 V)
输出为 0 时的角色下拉:把漏极拽到 0 V——
输出为 1 时的角色——上拉:把漏极抬到 5 V

3.1 单管开关:逐个走一遍

N 沟道 MOSFET 当开关(图 5-11a / 5-12):漏极经电阻 R 接 5 V,源极接 0 V22。

  栅极 = 5 V(相对源极 0 V 为正,超过阈值 ~1 V):
    漏源之间电阻变得非常低 → 相当于闭合开关
    电流路径:5 V → R → 漏源 → 0 V,漏极电压 = 0 V(输出 0)
    代价:电流持续流过 R,P = I²R 变热

  栅极 = 0 V(与源极相同):
    MOSFET 断开 → 相当于打开开关
    没有电流,R 两端没有电压差 → 漏极电压被 R「拉」到 5 V(输出 1)
    此时 R 叫上拉设备:只有靠它,断开状态的输出才有一个确定的高电平

P 沟道 MOSFET 当开关(图 5-11b / 5-13):漏极经电阻 R 接 0 V,源极接 5 V, 行为整个反过来23:

  栅极 = 5 V(与源极相同):断开,R 把漏极拉到 0 V(下拉设备,输出 0)
  栅极 = 0 V(相对源极 5 V 为 −5 V,超过阈值 ~−1 V):导通,漏极 = 5 V(输出 1)

注意两种电路里输出 0 和 1 时电流的状态:N 沟道输出 0 时有电流(费电), 输出 1 时无电流;P 沟道输出 1 时有电流,输出 0 时无电流。 没有一个单管电路在两个稳态都省电——这正是要互补配对的原因: CMOS 让两个稳态各自落在「无电流」的那半边上(§4)。

3.2 单管开关的两个麻烦

单个 MOSFET 配一个电阻就能当开关用,但有两个结构性问题24:

  1. 导通时电阻耗能:MOSFET 导通相当于开关闭合,电流被迫流过上拉/下拉电阻, P = I²R 变成热——「电阻器消耗功率,只是将其转化为热量」;
  2. 两难困境:电阻越大 → 导通时电流越小、功耗越低,但给下一级栅极电容 充电的电流也越小 → 切换越慢;电阻越小 → 快,但费电。 「小的上拉和下拉电阻器会增加功耗,而大的电阻器则会降低计算机的速度。」

4. CMOS:互补配对,两难自解

解法漂亮得可以直接当设计课教材:把电阻扔掉,让两个 MOSFET 互相充当对方的 电阻——P 沟道做上拉、N 沟道做下拉,栅极连在一起当输入,漏极连在一起当输出, 这就是 CMOS(互补金属氧化物半导体)25。

主线例子的第 ② 步:CMOS 非门走两遍。

  输入 0 V(逻辑 0)时:
    P 沟道:栅极相对源极是 −5 V(源极在 5 V) → 负电压 → 导通(上拉)
    N 沟道:栅极相对源极是 0 V(源极在 0 V) → 相同   → 断开
    等效电路:输出经 P 沟道接到 5 V → 输出 = 5 V(逻辑 1)✓

  输入 5 V(逻辑 1)时:
    P 沟道:栅极相对源极是 0 V → 相同 → 断开
    N 沟道:栅极相对源极是 +5 V → 正电压超过阈值 → 导通(下拉)
    等效电路:输出经 N 沟道接到 0 V → 输出 = 0 V(逻辑 0)✓

  图说:两个输入,两个状态表:
        栅极 0 V → 漏极 5 V;栅极 5 V → 漏极 0 V。
        输入 1 得 0、输入 0 得 1——这就是非门的真值表(原书表 5-1)。

为什么 CMOS 赢了,两条理由都挂在功耗上26:

  1. 几乎不耗能量:稳态时两个管必有一个断开,电流没有通路;只有切换瞬间 两管短暂同导通,才漏一点电流。「更少的电流意味着更少的热量,这通常是 芯片设计的限制因素」;
  2. 快得多:给下一级栅极充电的是导通的 MOSFET(能提供大电流), 不再是慢吞吞的电阻。

用 CMOS 拼与门(图 5-16)时出现了一个值得记住的中间产物:三个 CMOS 里, 前两个先输出 A = ¬(x ∧ y),第三个把 A 反相得到 x ∧ y—— 为了得到 AND,电路先顺手造出了 NAND27。把表 5-2 走一遍, 能看到这个「顺手」的确切位置:

  x y |  A = ¬(x∧y) | x∧y
  ----+------------+----
  0 0 |     1      |  0
  0 1 |     1      |  0
  1 0 |     1      |  0
  1 1 |     0      |  1     ← 只有 x、y 都真,A 才掉 0;再反相即 AND

  图说:A 那一列本身就是一张完整的 NAND 真值表——它先存在,AND 反而是后补的非。

这个结构给本章后半部分埋下伏笔:CMOS 的「第一产物」永远是某种带反相的组合 (NAND、NOR、NOT),想要不反相的 AND/OR,得额外付出代价(多两个晶体管)。

5. 与非门与或非门:晶体管逼出来的「真身」

从 CMOS 与门能看出一个普遍规律:晶体管的固有设计让大多数电路天然反相 (输入高电平,输出倾向低电平),所以 AND 的输出端往往得再挂一个非门才成真28。 既然如此,「NOT(AND)」这个组合体就有了独立地位——与非门(NAND): ¬(x ∧ y);对称的有或非门(NOR):¬(x ∨ y)29。

两个新符号约定:门输出端的小圆圈 = NOT(沿用非门的画法); 按德摩根定律,输入端带小圆圈的或门等价于与非门 (¬(x ∧ y) = ¬x ∨ ¬y),画图纸时两种画法都合法30。

关键数字:NAND 比 AND 少两个晶体管(图 5-16 里 A 点 versus 输出点; "它比 AND 运算少用了两个晶体管")31。少两个晶体管 = 更省面积、更省功耗、 通常还更快——这就是第 4 章埋的伏笔「最小乘积和未必最小成本」的真相: 成本的基本单位不是门,是晶体管;而晶体管的账本偏向 NAND。

6. 万能门:NAND 如何实现任意布尔函数

与非门可以构建与门、或门以及非门,因此能实现任何布尔函数——「在这个意义上, 你可以把与非门想象成一个万能门」32。三种构造,逐一走一遍:

6.1 非门:两输入并一根线

  NAND(x, x) = ¬(x ∧ x) = ¬x        ← 幂等性:x∧x = x

  x ──┬──┐
      │  NAND ├── ¬x
      └──┘

6.2 与门:两个 NAND

  ① NAND(x, y) = ¬(x∧y)
  ② NAND(①, ①) = ¬(¬(x∧y)) = x∧y   ← 对合性

  x ──┐
      ├── NAND ── ① ──┐
  y ──┘               ├── NAND ── x∧y
                      │
                ① ────┘(① 同时接两个输入)

6.3 或门:三个 NAND,德摩根出手

  目标:x ∨ y
  由德摩根:x ∨ y = ¬(¬x ∧ ¬y) = NAND(¬x, ¬y)
  而 ¬x = NAND(x, x),¬y = NAND(y, y)

  x ──┬─ NAND(当非门)─ ¬x ──┐
      │                     ├── NAND ── x∨y
  y ──┴─ NAND(当非门)─ ¬y ──┘

  图说:三个 NAND:两个降级当非门,一个干本职。

6.4 实战:F(w, x, y, z) = (w∧x) ∨ (y∧z) 的 NAND 化

这是本章的完整工程演示,也是主线例子的第 ③ 步。朴素设计(图 5-23): 两个与门 + 一个或门。NAND 化三步法33:

  ① 对合性说 ¬(¬a) = a:每条 AND 输出后串两个非门,语义不变
      (图 5-24:两与门一或门外加 4 个非门——看着更蠢了,忍住)
  ② 观察:每个「与门 + 紧跟的非门」合起来正是一个 NAND!
      → 左边两个「与+非」换成两个 NAND,分别产出 ¬(w∧x) 和 ¬(y∧z)
  ③ 最右边的「非 + 或 + 非」按德摩根 ¬a ∨ ¬b = ¬(a∧b) 合成一个 NAND:
      ¬(¬(w∧x) ∧ ¬(y∧z)) = (w∧x) ∨ (y∧z)

  最终电路(图 5-25):3 个 NAND,完事。

「仅从图 5-23 和图 5-25 的逻辑电路图来看,在这次电路改造中我们似乎没有得到 任何好处」——逻辑上它们一模一样;但硬件上,「与非门比与门少用两个晶体管, 因此功耗更少、速度更快」34。逻辑等价 ≠ 硬件等价,这是本章最该带走的一课。

万能门的成立理由顺带说清:§6.1–6.3 已能用 NAND 拼出 {AND, OR, NOT}, 而第 4 章说过任何布尔函数都能用这三种门实现——传递性给出「NAND 万能」。 NOR 同理(一切对偶地成立),但 CMOS 物理特性让 NAND 更快更省, 所以几乎总是首选35。

NAND 化的系统方法(背这三步就够)36:

  ① 把函数化成最小乘积和(第 4 章的活儿);
  ② 每个乘积项(AND)变成 NAND,最后那个总和(OR)也变成 NAND;
  ③ 只有一个字面量的乘积项,单独再过一个 NAND(当非门用)。

6.5 NOR 也是万能门,以及一个提醒

原书补了一句对偶:「我在这里所说的关于与非门的一切都适用于或非门。 你只需应用德摩根定律求补即可」37。或门的 NOR 构造:¬x = NOR(x,x), x∨y = NOR(¬x, ¬y) 再过一次 NOR;与门三个 NOR。但物理账本上 NAND 赢了: 「如前所述,与非门通常比或非门更快,占用空间更少,因此几乎总是首选的解决方案」35。

动手实践里有两道题值得点名:第 1 题(用 NOR 构造三种基本门)就是对偶性的 一次完整演练;第 2 题要求用 NAND 设计两位无符号整数「低于」比较器—— F(x,y) = 1 当且仅当 x < y,无符号比较低于/高于(below/above), 有符号比较才叫小于/大于(less-than/greater-than)38。 术语的区分不是较真:两套比较在硬件里是不同的电路(无符号比较看 CF, 有符号比较看 OF + SF),第 13、16 章会正式见到它们。

7. 作者的判断与证据

判断一:「与软件一样,硬件设计也是一个迭代过程。」 原书在 NAND 化的末尾 明说:「大多数问题没有唯一的解决方案,你往往需要做多种设计,在可用的硬件环境中 分析每一种设计」39。本章的迭代实例(图 5-23 → 5-24 → 5-25)就是示范: 先画语义正确的,再按器件账本改写。这和第 4 章「最小解不唯一」的判断接上了: 式子层的最优,和晶体管层的最优,是两次不同的优化。

判断二:电子学只教「够用的」。 RC 电路、时间常数、P = I²R,每一件都 精准对应一个后面的论点(栅极充电慢、电阻耗能、CMOS 省功耗)。没有为完备而 引入的东西——5.1 节自承是「理想化讨论」,现实元件三种特性兼备,「这些次要影响 不易觉察,往往会给设计带来麻烦」40。给程序员的书,这个深度刚好; 要设计芯片,还得回到器件物理(书里指了路:更高级的电子学书籍)。

判断三:把「为什么」一直追问到电子层。 这一章多次出现「由于晶体管的 物理特性」式的回答(为什么 NAND 万能还更快、为什么 CMOS 快又省电), 而且每次都给出可检验的机制(少两个晶体管、稳态无电流通路、MOSFET 比电阻 供电快),不停留在「业界惯例如此」。这是全书讲解风格的定型之处: 结论可以背,机制必须能走通。

8. 边界与局限

  • 5.1 节的电子学是直流稳态 + 一阶暂态的简化模型。真实芯片是交流、 分布参数、噪声、串扰的世界;「电阻、电容和电感」在真实元件里三种兼备, 书里明说只是理想化40;
  • 只讲增强模式 MOSFET 的一种典型行为(N/P 沟道、±1 V 阈值、5 V 电平)。 阈值与电平随工艺代际变化(现代 CPU 是 <1 V 电平、纳米级沟道), 但「互补对 + 上拉/下拉」的结构不变——学结构,别背数值(补充,不在书里, 数值为原书示例);
  • 不深入芯片制造(光刻、 FinFET、制程节点)和模拟电路;CMOS 的「快」 只定性解释到「MOSFET 比电阻能提供更多电流」为止;
  • 没讲三态门、传输门——总线要用的高级构件不在本章(本书整体也不展开);
  • 动手实践第 2 题(用 NAND 做两位无符号数的「低于」比较器)值得动手, 它是把第 4 章卡诺图 + 本章 NAND 化合起来的第一道综合题;
  • 学完本章回头看第 4 章的遗留问题:为什么「最小乘积和」化出来的 AND/OR 电路, 在图纸上不如 NAND 版?现在有了答案——图纸上数的是门,工厂里数的是晶体管, 而晶体管的账本上 NAND 比 AND 便宜两个。第 4 章的「最小」是代数最小, 本章的「最小」是物理最小,两层最小之间隔着一次德摩根变换。

9. 可带走的

全章主线例子,一行走完: 按钮开关的非门(机械版)→ 单 MOSFET + 电阻 (费电的两难)→ CMOS 互补对(两难自解,顺便造出 NAND)→ 发现 NAND 比 AND 省两个晶体管 → NAND 万能,(w∧x)∨(y∧z) 三个 NAND 搞定。 这一章把「为什么」从逻辑层一路答到了电子层:门为什么长这样、 为什么世界是 NAND 的、为什么 CMOS 赢——三个问题,同一本账(电流)。

  1. 0 和 1 的物理本体是两个电压电平(如 0 V / 5 V),方向可约定,一致即可;
  2. 电阻耗能(P = I²R,平方关系!),电容/电感储能并因此「抗变化」;
  3. RC 时间常数决定「充到 63% 要多久」;晶体管电路的快慢本质是一堆 RC 竞赛;
  4. MOSFET 三个端子:栅极=输入,漏极=输出,源极=参考;N 沟道正电压导通、 P 沟道负电压导通,行为互补;
  5. 单管 + 电阻的两难:小电阻费电、大电阻慢;
  6. CMOS = P 上拉 + N 下拉,栅极并联接输入:稳态无通路、几乎零功耗, 切换时 MOSFET 直接给下一级电容充电,快;
  7. 晶体管天然反相,所以 NAND/NOR 比 AND/OR 更省晶体管——这是「为什么 世界是 NAND 的」的物理解释;
  8. NAND 万能:非(两输入并线)、与(两个 NAND)、或(三个 NAND + 德摩根);
  9. NAND 化三步:最小乘积和 → AND 和 OR 都换 NAND → 单字面量项补一个 NAND;
  10. 逻辑等价 ≠ 硬件等价:同一函数,门的选择不同,功耗速度天差地别; 图纸上的「等价」只保证真值表相同,不保证晶体管账本相同;
  11. 小圆圈 = NOT(输出端或输入端),两种画法按德摩根互换,图纸都认;
  12. 问「这电路为什么这样设计」时,答案的终点往往是电子层的账 (电流、电压、充电时间),而不是逻辑层的式子——两个层面都要会算;
  13. 工程上 0 和 1 不是两个电压点,而是两个电压区间(如 5 V ± 5%), 元件必须在整个区间内可靠工作——理想化模型和物理现实之间永远留着这条缝。

10. 原文地图

主题原书章原文位置
「不必先成为电气工程师」第5 章 逻辑门text/11-ch05.txt:17(搜「电气工程师」)
电流/电压定义第5 章 逻辑门text/11-ch05.txt:19(搜「安培」)
电压电平表示 0/1第5 章 逻辑门text/11-ch05.txt:40(搜「5 V」)
三种无源元件分工第5 章 逻辑门text/11-ch05.txt:62(搜「阻抗」)
串联电阻分压(2.0 V/3.0 V)第5 章 逻辑门text/11-ch05.txt:109(搜「VAB」)
RC 充电与时间常数 1.0 ms第5 章 逻辑门text/11-ch05.txt:182(搜「时间常数」) · text/11-ch05.txt:209(搜「3.15」)
RC 电路模拟晶体管互连第5 章 逻辑门text/11-ch05.txt:165(搜「粗略」)
电感 L/R = 1.0 ns、CPU 供电第5 章 逻辑门text/11-ch05.txt:252(搜「L/R」) · text/11-ch05.txt:227(搜「环状装置」)
功耗 P = I²R第5 章 逻辑门text/11-ch05.txt:131(搜「I2」)
机械开关非门第5 章 逻辑门text/11-ch05.txt:318(搜「按钮」)
「早期设备用机械开关」第5 章 逻辑门text/11-ch05.txt:328(搜「机械开关」)
MOSFET 三端子与 N/P 沟道第5 章 逻辑门text/11-ch05.txt:342(搜「MOSFET」) · text/11-ch05.txt:365(搜「N 沟道 MOSFET」)
阈值约 ±1 V第5 章 逻辑门text/11-ch05.txt:369(搜「阈值」) · text/11-ch05.txt:393(搜「–1 V」)
上拉/下拉设备第5 章 逻辑门text/11-ch05.txt:380(搜「上拉」) · text/11-ch05.txt:386(搜「下拉」)
电阻两难(功耗 vs 速度)第5 章 逻辑门text/11-ch05.txt:407(搜「权衡」)
CMOS 结构与非门真值表第5 章 逻辑门text/11-ch05.txt:413(搜「CMOS」) · text/11-ch05.txt:436(搜「栅极」)
CMOS 两大优势第5 章 逻辑门text/11-ch05.txt:443(搜「消耗能量很少」)
CMOS 与门先产出 NAND第5 章 逻辑门text/11-ch05.txt:450(搜「3 个 CMOS」) · text/11-ch05.txt:454(搜「少用了两个晶体管」)
晶体管固有反相 → NAND/NOR第5 章 逻辑门text/11-ch05.txt:465(搜「固有设计」)
输入端小圆圈、德摩根画法第5 章 逻辑门text/11-ch05.txt:481(搜「小圆圈」)
NAND 万能门第5 章 逻辑门text/11-ch05.txt:490(搜「万能门」)
非/与/或的 NAND 构造第5 章 逻辑门text/11-ch05.txt:498(搜「连接到与非门的两个输入端」) · text/11-ch05.txt:493(搜「构建与门」) · text/11-ch05.txt:502(搜「¬(¬x ∧ ¬y)」)
F(w,x,y,z) 的 NAND 化三步第5 章 逻辑门text/11-ch05.txt:510(搜「w ∧ x」) · text/11-ch05.txt:521(搜「单个与非门」)
逻辑等价≠硬件等价第5 章 逻辑门text/11-ch05.txt:528(搜「没有得到任何好处」)
串并联电阻例题(2.0 mA)第5 章 逻辑门text/11-ch05.txt:105(搜「2.0 mA」)
电容抗电压突变、电感抗电流突变第5 章 逻辑门text/11-ch05.txt:62(搜「阻抗」)
NAND 化三步法第5 章 逻辑门text/11-ch05.txt:532(搜「最小和」)
硬件设计也是迭代第5 章 逻辑门text/11-ch05.txt:537(搜「迭代过程」)

Footnotes

  1. 出处:「第5 章 逻辑门」第 17 段(text/11-ch05.txt:17,搜「电气工程师」)。原文:「你不必先成为一名电气工程师再去理解逻辑门的工作原理,毕竟了解一些基本概念总会有所帮助。」 ↩

  2. 出处:「第5 章 逻辑门」第 19 段(text/11-ch05.txt:19,搜「安培」)。原文:「每秒 1 库仑的流量被定义为 1 安培(ampere)」「电压是指电路中两点之间每单位电荷的电力差」;「只有当从电源的一端到另一端有完全连接的路径时,电流才会流过电路。」 ↩ ↩2

  3. 出处:「第5 章 逻辑门」第 33 段(text/11-ch05.txt:33,搜「交流电」)。原文:「对于 AC,电压幅度与时间的关系曲线显示为正弦波形。计算机电路使用直流电(DC),与 AC 不同,它不会随时间变化。电源用于将 AC 转换成 DC。」 ↩

  4. 出处:「第5 章 逻辑门」第 83 段(text/11-ch05.txt:83,搜「欧姆定律」)。原文:「欧姆定律给出了单个电阻器的电压和电流之间的关系:V(t) = I(t) × R。」 ↩

  5. 出处:「第5 章 逻辑门」第 40 段(text/11-ch05.txt:40,搜「5 V」)。原文:「计算机电路通过区分两个不同的电压电平提供逻辑 0 和 1。例如,逻辑 0 可以由 0 V DC 表示,而逻辑 1 可以由 5 V DC 表示。也可以反过来实现……只要保持硬件设计一致即可。」 ↩

  6. 出处:「第5 章 逻辑门」第 50 段(text/11-ch05.txt:50,搜「公差」)。原文:「电子设备被设计为在一定的电压范围内可靠地运行。例如,一个在标称 5 V 电压下工作的设备通常有±5%的公差,也就是在 4.75~5.25 V 范围内。」 ↩

  7. 出处:「第5 章 逻辑门」第 27 段(text/11-ch05.txt:27,搜「无源元件」)。原文列出:提供电力的电源、无源元件、有源元件、导体四类。 ↩

  8. 出处:「第5 章 逻辑门」第 62 段(text/11-ch05.txt:62,搜「阻抗」)。原文:「电阻:阻碍电流流动,从而耗散能量。电能转化为热能。电容:在电场中存储能量。电容两端的电压不能瞬间改变。电感:在磁场中存储能量。通过电感的电流不能瞬间改变。」 ↩

  9. 出处:「第5 章 逻辑门」第 182 段(text/11-ch05.txt:182,搜「时间常数」)与第 209 段(text/11-ch05.txt:209,搜「3.15」)。原文:RC = 1.0×10³ Ω × 1.0×10⁻⁶ F = 1.0 ms;一个时间常数后 V = 5.0×(1 − e⁻¹) ≈ 3.15 V;六个时间常数后 ≈ 4.9876 V。 ↩

  10. 出处:「第5 章 逻辑门」第 158 段(text/11-ch05.txt:158,搜「积分」)。原文:「如果你没有学过微积分,符号∫代表积分,可以认为是“无穷小求和”。这个等式表明,在时间从 0 增加到当前时间 t 的过程中,电压随之累加。」 ↩

  11. 出处:「第5 章 逻辑门」第 165 段(text/11-ch05.txt:165,搜「粗略」)。原文:「该电路是对一个晶体管的输出与另一个晶体管的输入相连的粗略模拟。第一个晶体管的输出处有电阻,而第二个晶体管的输入处有电容。第二个晶体管的开关行为取决于(等效)电容器上的电压 VBC(t)是否达到阈值。」 ↩

  12. 出处:「第5 章 逻辑门」第 266 段(text/11-ch05.txt:266,搜「1.0 ns」)与第 276 段(text/11-ch05.txt:276,搜「6 ns」)。原文:「在时间 t = 1.0 ns(1 个时间常数)时,电感器两端的电压为 3.15 V」「大约 6 ns(6 个时间常数)后,电感器两端的电压基本上等于 0 V。此时……稳定流过的电流为 5.0 mA。」 ↩

  13. 出处:「第5 章 逻辑门」第 227 段(text/11-ch05.txt:227,搜「环状装置」)与第 252 段(text/11-ch05.txt:252,搜「L/R」)。原文:「你可能会在主板上靠近 CPU 的位置看到一个小的(直径约 1 cm)的环状装置……这就是电感器,用于平滑提供给 CPU 的电源」;L/R = 1.0×10⁻⁶ H / 1.0×10³ Ω = 1.0 ns。 ↩

  14. 出处:「第5 章 逻辑门」第 303 段(text/11-ch05.txt:303,搜「热量」)。原文:「该功率在电阻器中转换为热量。功耗是以电流的平方增加的,因此硬件设计的常见目标之一就是减少电流量。」 ↩

  15. 出处:「第5 章 逻辑门」第 289 段(text/11-ch05.txt:289,搜「240 Wh」)。原文:「我有一块可以存储 240 Wh 的备用电池。这意味着它足够提供 240 W 的电量一小时或 120 W 的电量两小时,即 240 Wh×3600 s/h=864 000 焦耳。伏特和安培的单位是这样定义的:1 W=1 V×1 A。」 ↩

  16. 出处:「第5 章 逻辑门」第 295 段(text/11-ch05.txt:295,搜「功率为零」)。原文:「短暂充电后,电容器阻止电流流动,因此电容器的功率为零。它只是以电场的形式存储能量。磁场很快产生之后,电感器两端的电压变为零,因此电感器的功率也变为零。电感器以磁场的形式存储能量。然而,电阻器并不存储能量。」 ↩

  17. 出处:「第5 章 逻辑门」第 318 段(text/11-ch05.txt:318,搜「按钮」)。原文描述图 5-10:两个按钮开关串联在 5 V 和 0 V 之间,「未按下按钮时,x = 0,5 V 电压连接到输出端¬x,代表 1。按下按钮时,x = 1,5 V 断开,0 V 连接到输出端,代表 0。」 ↩

  18. 出处:「第5 章 逻辑门」第 328 段(text/11-ch05.txt:328,搜「机械开关」)。原文:「早期的计算设备的确使用机械开关来实现逻辑功能,但以今天的标准来看,速度太慢了。」 ↩

  19. 出处:「第5 章 逻辑门」第 315 段(text/11-ch05.txt:315,搜「电阻」)。原文:「晶体管是一种可以通过电子方式控制其电阻的设备,因此属于有源元件。」 ↩

  20. 出处:「第5 章 逻辑门」第 347 段(text/11-ch05.txt:347,搜「掺杂」)。原文:「MOSFET 的基本材料通常是硅,它是一种半导体……可以通过添加杂质来提高半导体的导电性,这个过程叫作掺杂(doping)。」 ↩

  21. 出处:「第5 章 逻辑门」第 362 段(text/11-ch05.txt:362,搜「互补行为」)。原文:「学习过布尔代数中的补之后,你可能不会对这两种 MOSFET 所具有的互补行为感到惊讶。」 ↩

  22. 出处:「第5 章 逻辑门」第 366 段(text/11-ch05.txt:366,搜「漏极通过电阻器 R」)与第 167 段(text/11-ch05.txt:167,搜「阈值」)。原文:「N 沟道 MOSFET 的漏极通过电阻器 R 连接到电源的 5 V 端,源极连接到 0 V 端」「当施加到栅极的电压相对于源极为正时,N 沟道 MOSFET 的漏极和源极之间的电阻降低。当该电压达到阈值(通常在 1 V 的范围内)时,电阻变得非常低」。 ↩

  23. 出处:「第5 章 逻辑门」第 384 段(text/11-ch05.txt:384,搜「P 沟道 MOSFET」)与第 392 段(text/11-ch05.txt:392,搜「相对于源极为负」)。原文:「漏极通过一个电阻器连接到低电压(0 V),源极连接到高电压(5 V)」「当施加到栅极的电压相对于源极为负时,P 沟道 MOSFET 的漏极和源极之间的电阻降低」。 ↩

  24. 出处:「第5 章 逻辑门」第 395 段(text/11-ch05.txt:395,搜「一些问题」)。原文:「处于导通状态的 MOSFET 就像一个闭合的开关,从而使电流流过上拉或下拉电阻器。当 MOSFET 处于导通状态时,流过电阻器的电流消耗功率,而这些功率只是转换为热量。」 ↩

  25. 出处:「第5 章 逻辑门」第 413 段(text/11-ch05.txt:413,搜「CMOS」)。原文:「我们可以用互补金属氧化物半导体(Complementary Metal-Oxide Semiconductor,CMOS)技术来解决这个难题……P 沟道取代 N 沟道电路中的上拉电阻器,N 沟道取代 P 沟道电路中的下拉电阻器。」 ↩

  26. 出处:「第5 章 逻辑门」第 443 段(text/11-ch05.txt:443,搜「消耗能量很少」)。原文:「消耗能量很少。由于 N 沟道和 P 沟道 MOSFET 的开关速度不同,在开关期间只有少量电流流过」「电路快得多。MOSFET 能够比电阻器更快地在输出端提供电流,为之后的 MOSFET 栅极充电。」 ↩

  27. 出处:「第5 章 逻辑门」第 453 段(text/11-ch05.txt:453,搜「A 点」)与第 454 段(text/11-ch05.txt:454,搜「少用了两个晶体管」)。原文:「从真值表中可知,A 点的信号是¬(x ∧ y)。从 A 点到输出端的电路是一个非门。A 点的结果称为 NAND 运算。它比 AND 运算少用了两个晶体管。」 ↩

  28. 出处:「第5 章 逻辑门」第 465 段(text/11-ch05.txt:465,搜「固有设计」)。原文:「晶体管的固有设计意味着大多数电路都会将信号反相。也就是说,对于大多数电路,输入端的高电压会在输出端产生低电压,反之亦然。」 ↩

  29. 出处:「第5 章 逻辑门」第 472 段(text/11-ch05.txt:472,搜「当且仅当两个操作数都为 1 时」)。原文:「NAND:双目运算符,当且仅当两个操作数都为 1 时,其结果为 0,否则为 1。」NOR 定义见第 475 段(text/11-ch05.txt:475,搜「NOR」)。 ↩

  30. 出处:「第5 章 逻辑门」第 488 段(text/11-ch05.txt:488,搜「德摩根定律」)。原文:「如真值表所示,这是与非门的另一种实现。正如你在第 4 章所学的,德摩根定律可以证实:¬(x ∧ y) = (¬x ∨ ¬y)」。 ↩

  31. 出处:「第5 章 逻辑门」第 454 段(text/11-ch05.txt:454,搜「少用了两个晶体管」)。原文:「它比 AND 运算少用了两个晶体管。我们将在 5.3 节看到此结果的含义。」 ↩

  32. 出处:「第5 章 逻辑门」第 490 段(text/11-ch05.txt:490,搜「万能门」)。原文:「与非门有一个值得注意的特性:它可以用来构建与门、或门以及非门。这意味着与非门能够实现任何布尔函数。」 ↩

  33. 出处:「第5 章 逻辑门」第 515 段(text/11-ch05.txt:515,搜「对合性」)至第 521 段(text/11-ch05.txt:521,搜「单个与非门」)。原文:「对合性指出¬(¬x) = x,所以我们可以在每条路径上添加两个非门」「我们可以用单个与非门代替最右边的两个非门和或门的组合」。 ↩

  34. 出处:「第5 章 逻辑门」第 528 段(text/11-ch05.txt:528,搜「没有得到任何好处」)。原文:「仅从图 5-23 和图 5-25 的逻辑电路图来看,在这次电路改造中我们似乎没有得到任何好处。但是从 5.3 节中可知,与非门比与门少用两个晶体管。因此,与非门的实现功耗更少,速度更快。」 ↩

  35. 出处:「第5 章 逻辑门」第 495 段(text/11-ch05.txt:495,搜「CMOS 晶体管的物理特性」)。原文:「CMOS 晶体管的物理特性使得与非门的速度更快,占用空间更少,因此几乎总是首选的解决方案。」 ↩ ↩2

  36. 出处:「第5 章 逻辑门」第 532 段(text/11-ch05.txt:532,搜「最小和」)。原文:「将“与/或/非”门的设计转换为仅使用“与非”门的设计非常简单:(1)将函数表示为乘积的最小和;(2)将乘积(AND 项)和最终总和(OR)转换为与非门;(3)为只有单个字面量的乘积添加一个与非门。」 ↩

  37. 出处:「第5 章 逻辑门」第 41 段(text/11-ch05.txt:41,搜「在本书中,你已经看到了计」)。原文:「我在这里所说的关于与非门的一切都适用于或非门。你只需应用德摩根定律求补即可。」 ↩

  38. 出处:「第5 章 逻辑门」第 543 段(text/11-ch05.txt:543,搜「低于」)。原书动手实践第 2 题:「使用与非门设计一个电路,检测两个 2 位整数 x 和 y 的“低于”条件,F(x, y) = 1。通常使用低于/高于(below/above)进行无符号整数比较,使用小于/大于(less-than/greater-than)进行有符号整数比较。」 ↩

  39. 出处:「第5 章 逻辑门」第 537 段(text/11-ch05.txt:537,搜「迭代过程」)。原文:「与软件一样,硬件设计也是一个迭代过程。大多数问题没有唯一的解决方案,你往往需要做多种设计,在可用的硬件环境中分析每一种设计。正如前面的例子所示,理论上看起来一样的两种解决方案在硬件层面可能大不相同。」 ↩

  40. 出处:「第5 章 逻辑门」第 305 段(text/11-ch05.txt:305,搜「理想化」)。原文:「本节是对计算机工程师在其设计中所包含的无源元件的理想化讨论。在现实世界中,每种元件都包括硬件设计工程师需要考虑的所有 3 种特性:电阻、电容和电感。这些次要影响不易觉察,往往会给设计带来麻烦。」 ↩ ↩2

On this page