INTRODUCTION 导论:

A. Overview 概述:

a. Definition & Scope 定义与范围:

  1. Definition 定义: Digital Logic 数字逻辑, 研究如何用离散逻辑值、逻辑门和存储元件构造能够执行运算与保存状态的数字电路
  2. Boundary 学科边界: 本页从逻辑功能与时序出发, 连接布尔代数与硬件实现;晶体管器件与制造属于电路和微电子方向, 完整处理器的数据通路见 COMPUTER ORGANIZATION 计算机组成

image.png

<aside>

Connection 学科衔接:

  1. One-Bit Addition 一位加法: 输入 A 与 B, 输出和 S 与进位 C;$S=A\oplus B$, $C=AB$;A = 1 且 B = 1 时, S = 0 且 C = 1;对应组合逻辑中的半加器
  2. From Function to State 从功能到状态: 组合电路产生结果, 寄存器在约定时钟边沿保存结果, 控制逻辑决定下一步动作 </aside>

I. DATA REPRESENTATION 数据表示:

A. Number Systems 数制:

a. Bits & Place Value 比特与位权:

  1. Bits 比特: 0 与 1 表示离散逻辑值;多位信号构成位向量, 比特串的数值由编码规则决定
  2. Binary & Hexadecimal 二进制与十六进制: $x=\sum_{i=0}^{n-1}b_i2^i$;每个十六进制位对应四个比特
  3. Width 位宽: n 位共有 $2^n$ 种编码;位宽决定可表示范围, 不直接决定数据是否有符号

<aside>

Number Conversion 数制转换:

  1. Example 示例: 1010 1100₂ = AC₁₆ = 172₁₀ </aside>

B. Integer Representation 整数表示:

a. Unsigned & Two’s Complement 无符号与补码:

  1. Unsigned 无符号: $\boxed{x=\sum_{i=0}^{n-1}b_i2^i,\quad 0\le x\le2^n-1}$ 所有位使用正位权
  2. Two’s Complement 补码: $\boxed{x=-b_{n-1}2^{n-1}+\sum_{i=0}^{n-2}b_i2^i}$ 范围为 $\boxed{-2^{n-1}\le x\le2^{n-1}-1}$
  3. Unsigned Connection 无符号联系: 设同一 n 位模式的无符号解释为 U;符号位为 0 时补码值等于 U, 为 1 时补码值等于 U − 2ⁿ;最高位负位权正是减去 2ⁿ 的结果

b. Negation & Modular Arithmetic 取负与模运算:

  1. Negation 取负: $\boxed{-x\equiv\neg x+1\pmod{2^n}}$ 对固定位宽比特模式按位取反加 1;最小负数的数学相反数超出同位宽正数范围, 保留低位后模式不变
  2. Modular Arithmetic 模运算: n 位加减法保留低 n 位时按 2ⁿ 取模;同一加法网络适用于 unsigned 与补码位运算, 结果是否超出各自范围需另行判断
  3. Mathematical Value 数学值: 模运算描述位结果, 不代表超出范围的数学整数仍可被该位宽正确表示;进位与有符号溢出见组合逻辑

c. Extension & Truncation 扩展与截断:

  1. Zero Extension 零扩展: unsigned 从 n 位扩至 m 位, m > n, 在高位补 0, 保持数值
  2. Sign Extension 符号扩展: 补码扩宽时复制原符号位;仅补 0 会改变原负值的解释
  3. Unsigned Truncation 无符号截断: 保留低 n 位时, 只有所有丢弃高位均为 0 才保持原无符号数值
  4. Signed Truncation 补码截断: 只有所有丢弃高位均等于保留下来的新符号位才保持补码数值;等价于原整数仍落在新位宽可表示范围

<aside>

Complement 补码示例:

4 bit Unsigned 补码
0111 7 7
1000 8 −8
1111 15 −1
  1. Sign Extension 符号扩展: 1011 为四位补码 −5;扩展到八位得到 1111 1011, 仍为 −5;零扩展 0000 1011 则为 11
  2. Negation Example 取负示例: 8 位 5 为 0000 0101, 取反为 1111 1010, 加 1 得 1111 1011, 补码解释为 −5
  3. Truncation Example 截断示例: 八位补码 0001 1011 为 27;截为四位 1011, 无符号解释为 11、补码解释为 −5, 均不能保持原值
  4. Wraparound 回绕: 四位 1111 + 0001 保留低四位得到 0000;无符号解释为 15 + 1 回绕至 0, 补码解释为 −1 + 1 = 0 </aside>

<aside>

Safe Truncation 安全截断对照:

  1. Signed Safe 补码安全: 八位 1111 1011 即 −5 截为四位 1011, 丢弃位全为 1 且新符号位也为 1, 数值保持
  2. Signed Unsafe 补码不安全: 八位 0000 1000 即 8 截为四位 1000, 丢弃位为 0 而新符号位为 1, 变为 −8;若解释为 unsigned, 同一截断仍保持 8
  3. Minimum Value 最小负数: 四位 −8 为 1000, 取反加 1 仍得 1000;位运算完成, 但 +8 无法用四位补码表示 </aside>

C. Binary Codes 二进制编码:

  1. BCD 二进制编码十进制: 每个十进制数字独立用四位表示;单个 BCD 数字不使用 1010–1111
  2. Gray Code 格雷码: 相邻编码只改变一位;用于卡诺图排序及部分跨域指针设计, 不能单独保证任意多位信号跨域安全
  3. One-Hot 独热编码: 有效状态通常只有一位为 1;用更多寄存器位换取较直接的译码, 全零或多位为 1 的处理需明确定义
  4. System Connection 系统衔接: 本章讲基本表示规则;浮点、字节序、对齐及处理器访存解释见 COMPUTER ORGANIZATION 计算机组成
  5. Binary-to-Gray 二进制转格雷码: $\boxed{g=b\oplus(b\gg1)}$ 此处使用逻辑右移;最高 Gray 位等于最高二进制位, 其余 Gray 位为相邻二进制位的 XOR;反向转换从最高位向低位累计 XOR

<aside>

Codes 编码示例:

编码 示例
BCD 十进制 25 → 0010 0101;普通二进制为 0001 1001
Gray 两位序列 00 → 01 → 11 → 10 → 00, 每步只变一位
One-Hot 四状态 0001、0010、0100、1000;0000 与 0011 需定义处理方式
</aside>

<aside>

Gray Conversion 格雷码转换:

  1. Forward 正向: 四位二进制 1011 逻辑右移得 0101, XOR 得 Gray 1110
  2. Inverse 反向: Gray 1110 从最高位累计 XOR 得 1、0、1、1, 恢复二进制 1011
  3. Scope 适用范围: 相邻计数值只变一位;若源端跨过多个数值、位到达偏差失控或直接传任意载荷, 不能仅凭 Gray 编码声称跨域安全 </aside>

II. BOOLEAN ALGEBRA 布尔代数:

III. COMBINATIONAL LOGIC 组合逻辑:

IV. SEQUENTIAL LOGIC 时序逻辑: