附录 A 逻辑设计基础 (The Basics of Logic Design)

      +

      核心结论

      • 门电路(§A.2):AND / OR / NOT / NAND / NOR / XOR;真值表与逻辑方程等价;任何组合逻辑都可由 NAND 实现。

      • 组合逻辑(§A.3):输出仅依赖当前输入;用真值表 / 卡诺图 / 硬件描述语言(HDL)实现。

      • 算术逻辑单元 (ALU)(§A.5):组合逻辑的核心——加 / 减 / 与 / 或 / 比较;LEGv8 ALU 是 64-bit 逐位运算。

      • 超前进位加法器(§A.6):用并行电路减少进位传播延迟;O(log n) 而非 O(n)。

      • 触发器 / 锁存器(§A.8):时序元件的核心——存储 1 bit;D 触发器最常用。

      • SRAM / DRAM(§A.9):6T SRAM cell / 1T DRAM cell;SRAM 快但贵,DRAM 慢但密。

      • 有限状态机 (FSM)(§A.10):时序逻辑的标准模型——状态 + 输入 → 输出 + 下一状态;Mealy / Moore 两种。

      • 时序方法学(§A.11):同步设计(最常用)/ 异步设计(罕见);时钟周期约束。

      本章主旨

      附录 A 是"硬件基础"——把第 4 章 CPU 微架构的"概念"映射到"电路实现"。理解门电路 + 组合逻辑 + 时序元件(触发器 / 锁存器)才能理解 CPU 如何在硅片上实现。本附录是硬件工程师的速成课;软件读者可只关注 §A.5 ALU 与 §A.8 触发器。

      一、核心概念

      本章围绕 8 个核心概念展开:门电路 → 组合逻辑 → HDL → ALU → 超前进位 → 时钟 → 触发器 / 锁存器 → SRAM / DRAM → FSM → 时序方法学。

      概念 定义 + 重要性 实现提示

      门电路

      AND / OR / NOT / NAND / NOR / XOR;真值表与逻辑方程等价;NAND 是 universal gate。

      §A.2;所有数字电路的基本元件。

      组合逻辑

      输出仅依赖当前输入;用真值表 / 卡诺图 / HDL 描述。

      §A.3;CPU 的 ALU / 解码器都是组合逻辑。

      HDL 硬件描述语言

      Verilog / VHDL / SystemVerilog;用代码描述硬件,便于综合。

      §A.4;现代硬件设计的标准工具。

      ALU

      加 / 减 / 与 / 或 / 移位 / 比较;LEGv8 ALU 是 64-bit 逐位运算单元。

      §A.5;CPU 的核心组合逻辑。

      超前进位加法器

      并行电路减少进位延迟;O(log n) 而非 O(n);现代 CPU 标准。

      §A.6;与串行进位加法器对比。

      时钟与同步

      时钟同步所有时序元件;同步设计简化时序分析。

      §A.7、§A.11;现代硬件几乎全同步。

      触发器 / 锁存器

      存储 1 bit;D 触发器最常用;建立时间 / 保持时间约束。

      §A.8;寄存器 / 内存 / 状态机的基本元件。

      SRAM / DRAM

      SRAM 用 6T cell(快、贵、不需刷新);DRAM 用 1T cell(慢、便宜、需刷新)。

      §A.9;现代内存层级的基础。

      有限状态机 (FSM)

      状态 + 输入 → 输出 + 下一状态;Mealy(输出依赖输入)/ Moore(输出仅依赖状态)。

      §A.10;CPU 控制单元、协议栈、自动机都用 FSM。

      二、详细笔记

      2.1 门电路与组合逻辑 (Gates & Combinational Logic)

      What:门是数字电路的基本元件;组合逻辑由门组合而成。

      Why:所有数字硬件都建立在门与组合逻辑之上;理解后才能看懂 CPU / 内存 / 总线如何工作。

      How

      基本门(§A.2):

      • AND:所有输入为 1 输出 1。

      • OR:任一输入为 1 输出 1。

      • NOT:输入反向。

      • NAND:AND + NOT;universal gate(任何函数可只用 NAND 实现)。

      • NOR:OR + NOT;universal gate。

      • XOR:输入不同时输出 1;加法器核心。

      组合逻辑(§A.3):输出 = f(输入),无记忆。

      NAND 的 universal 性
      • 任何组合逻辑可只用 NAND 实现(包括 NOT / AND / OR)。

      • 工程意义:芯片制造只需一种门(降低复杂度)。

      • Intel CPU 的核心逻辑几乎全是 NAND(CMOS 工艺)。

      When:硬件设计;理解 CPU 内部电路;debug 电路 bug。

      Examplea XOR b = (a AND NOT b) OR (NOT a AND b) ——2 级门电路。

      2.2 ALU 与超前进位 (ALU & Carry Lookahead)

      What:ALU 是 CPU 的"心脏"——执行所有算术与逻辑;超前进位加速加法。

      Why:ALU 设计决定 CPU 性能;理解才能看懂延迟 / 吞吐率权衡。

      How

      1-bit ALU(§A.5):加 / 减 / 与 / 或 输入各 1 bit;进位传下一位。

      LEGv8 64-bit ALU:64 个 1-bit ALU 串接;并行做"加 + 与 + 或";结果由控制信号选择。

      超前进位加法器(§A.6):

      \[C_1 = G_0 + P_0 C_0 \quad C_i = G_{i-1} + P_{i-1} G_{i-2} + P_{i-1} P_{i-2} G_{i-3} + \ldots \end{bmatrix>\]

      其中 G_i = A_i B_i(生成进位)、P_i = A_i + B_i(传播进位)。所有进位并行计算,O(log n) 延迟。

      串行 vs 超前进位
      • 串行:O(n) 延迟(每级等前一级进位);n = 64 ⇒ 64 级延迟。

      • 超前进位:O(log n) 延迟;n = 64 ⇒ 6 级延迟。

      • 现代 CPU:两者混合——CLA 组内 + 串行组间。

      When:CPU 微架构设计;性能分析(加法延迟);理解 pipeline EX 段。

      Example:Intel Core i7 加法器延迟 ~3 个周期(深度 ~30 级);3D 渲染中点积、距离计算都用加法。

      2.3 时钟与触发器 (Clocks & Flip-Flops)

      What:时钟同步所有时序元件;触发器存储 1 bit。

      Why:现代硬件几乎全同步;理解时钟才能理解时序约束(setup / hold)。

      How

      时钟(§A.7):

      • 周期 T:相邻两个上升沿(或下降沿)的时间间隔。

      • 频率 f = 1/T:现代 CPU 3-5 GHz(T ≈ 0.2-0.3 ns)。

      • 占空比:高电平时间 / T。

      D 触发器(§A.8):在时钟上升沿采样 D,输出到 Q。

      时序约束(§A.11):

      • Setup time:时钟沿前数据必须稳定的最小时间。

      • Hold time:时钟沿后数据必须保持的最小时间。

      • 违反约束 → 亚稳态(metastability)→ 不可预测结果。

      时钟频率的物理限制
      • 触发器 setup + hold 时间约束 + 组合逻辑延迟 = 最小时钟周期。

      • T_min = T_setup + T_combinational + T_hold + T_clock_skew。

      • 频率提升 = 减小 T_combinational——更深的流水线 / 更简单的逻辑。

      When:硬件设计;时序分析(静态时序分析工具);debug 时序违例。

      Example:Intel Core i9 频率 5.5 GHz ⇒ T ≈ 0.18 ns;触发器 setup ~50 ps;剩余 ~130 ps 给组合逻辑。

      2.4 SRAM / DRAM / FSM (Memory & State Machines)

      What:SRAM / DRAM 是内存基础;FSM 是时序逻辑模型。

      Why:现代内存层级用 SRAM / DRAM;CPU 控制单元、协议栈、嵌入式都用 FSM。

      How

      SRAM(§A.9):

      • 6T cell:2 交叉耦合反相器 + 2 访问晶体管。

      • 读 / 写无需刷新;速度 ~1 ns;典型 L1 / L2 cache。

      DRAM:

      • 1T cell:1 晶体管 + 1 电容;密度高但需周期性刷新。

      • 速度 ~10-100 ns;典型主内存。

      有限状态机(§A.10):

      • Mealy:输出 = f(状态, 输入)。

      • Moore:输出 = f(状态)。

      SRAM vs DRAM 权衡
      • SRAM:6T cell、面积大、贵、稳态存储、不需刷新;用于 cache。

      • DRAM:1T cell、面积小、便宜、需要周期性刷新(每 64 ms);用于主内存。

      • 现代:DDR5 / LPDDR5 是 DRAM 变体,速度数十 GB/s。

      When:硬件设计;选型(cache 用 SRAM,主内存用 DRAM);CPU 控制单元。

      Example:Apple M1 的 L1 cache ~32 KB SRAM / 核;统一内存 ~16 GB LPDDR5 DRAM。

      三、关键图表

      视觉图表

      图 A-1
      Figure 1. 图 A-1:6 种基本门电路
      图 A-2
      Figure 2. 图 A-2:1-bit ALU
      图 A-3
      Figure 3. 图 A-3:LEGv8 64-bit ALU
      图 A-4
      Figure 4. 图 A-4:超前进位加法器
      图 A-5
      Figure 5. 图 A-5:D 触发器
      图 A-6
      Figure 6. 图 A-6:6T SRAM cell

      非可视化条目

      非可视化条目(表 / 算法)
      编号 内容摘要

      表 A.1

      6 种门电路的真值表。

      表 A.2

      HDL(Verilog / VHDL)语法速查。

      式 A-1 至 A-8

      超前进位加法器公式、setup / hold 时间。

      列表 A.1-A.x

      Verilog HDL 示例:1-bit ALU、寄存器、FSM。

      核心公式对照表

      核心公式对照表
      概念 公式

      NAND 通用性

      \(\text{AND} = \text{NOT}(\text{NAND}(a,b)),\quad \text{NOT} = \text{NAND}(a,a)\)

      超前进位

      \(C_i = G_i + P_i G_{i-1} + P_i P_{i-1} G_{i-2} + \ldots\)

      时钟周期下限

      \(T_{\min} = T_{\text{setup}} + T_{\text{combinational}} + T_{\text{hold}} + T_{\text{skew}}\)

      SRAM 单元

      \(6 \text{ transistors / cell}\)

      DRAM 单元

      \(1 \text{ transistor + 1 capacitor / cell}\)

      四、思维导图

      mindmap
        root((附录 A 逻辑设计基础))
          门电路
            ANDORNANDXOR
            真值表
            universal gate
          组合逻辑
            输出依赖输入
            卡诺图
            HDL描述
          ALU
            加减与或
            LEGv8 64bit
            超前进位
          时钟
            周期频率
            占空比
            同步设计
          触发器
            D触发器
            setuphold
            亚稳态
          SRAMDRAM
            6Tvs1T
            不刷新vs刷新
            cachevs主存
          FSM
            MealyMoore
            状态转换
            CPU控制

      五、重点与易错点

      1. NAND 是 universal gate:任何组合逻辑都可用 NAND 实现;CPU 几乎只用 CMOS NAND。

      2. 超前进位 O(log n):64-bit 加法器从 64 级延迟降到 6 级;现代 CPU 都用 CLA 或类似。

      3. Setup / hold 违例 = 亚稳态:不可预测结果;高频电路需要严格时序约束。

        • SRAM 不需刷新、DRAM 需刷新:SRAM 快但贵;DRAM 慢但密。

        • Mealy vs Moore FSM:Mealy 输出依赖输入(响应快但有 glitch);Moore 输出仅依赖状态(稳定但延迟一拍)。

        • 同步设计 = 单一全局时钟:现代硬件几乎全同步;异步设计仅在特殊场景(高速 I/O)。

        • 触发器是 CPU 的"记忆":没有触发器就没有状态;所有寄存器 / 内存都基于触发器。

        • 硬件描述语言 (HDL) 是硬件工程师的"编程语言":Verilog / VHDL 把硬件描述成代码,综合成电路。

        • 跨章衔接:第 4 章 CPU 微架构用本附录的门 / ALU / 触发器实现;附录 C 把 HDL 用于控制单元实现。