Files
handsomezhuzhu.github.io/docs/sop/notes/digital-circuit-notes.md
2025-09-28 23:12:40 +08:00

16 KiB
Raw Blame History

title, date, descriptionHTML, tags, sidebar, readingTime, hidden, recommend
title date descriptionHTML tags sidebar readingTime hidden recommend
数字电路笔记 2025-01-20 15:00:00 <span style="color:var(--description-font-color);">纯情男大自用数字电路基础笔记</span>
笔记
数字电路
true true false true

数字电路笔记

资料下载

Markdown源码版本

PDF版本

完整笔记

一、逻辑代数定律和计算规则

定律/规则名称 表达式 解释
恒等律 $A + 0 = A$
A \cdot 1 = A
任何变量与0相加或与1相乘等于自身
零律 $A + 1 = 1$
A \cdot 0 = 0
任何变量与1相加或与0相乘等于1或0
幂等律 $A + A = A$
A \cdot A = A
任何变量与自身相加或相乘等于自身
互补律 $A + \overline{A} = 1$
A \cdot \overline{A} = 0
任何变量与其补码相加等于1相乘等于0
交换律
加法交换律 A + B = B + A 加法运算的交换律
乘法交换律 A \cdot B = B \cdot A 乘法运算的交换律
结合律
加法结合律 (A + B) + C = A + (B + C) 加法运算的结合律
乘法结合律 (A \cdot B) \cdot C = A \cdot (B \cdot C) 乘法运算的结合律
分配律
乘法分配律 A \cdot (B + C) = A \cdot B + A \cdot C 乘法对加法的分配律
加法分配律 A + (B \cdot C) = (A + B) \cdot (A + C) 加法对乘法的分配律
吸收律
吸收律1 A + A \cdot B = A 吸收律的第一种形式
吸收律2 A \cdot (A + B) = A 吸收律的第二种形式
德摩根定律
德摩根定律1 \overline{A + B} = \overline{A} \cdot \overline{B} 逻辑加法的德摩根定律
德摩根定律2 \overline{A \cdot B} = \overline{A} + \overline{B} 逻辑乘法的德摩根定律
简化定律
简化定律1 A + \overline{A} \cdot B = A + B 简化逻辑表达式
简化定律2 A \cdot (\overline{A} + B) = A \cdot B 简化逻辑表达式
共识定律
共识定律 (积之和形式) AB + \overline{A}C + BC = AB + \overline{A}C 较难,常用于逻辑化简。项 BCABAC 的共识项,是冗余的。
共识定律 (和之积形式) (A+B)(\overline{A}+C)(B+C) = (A+B)(\overline{A}+C) 较难,常用于逻辑化简。项 (B+C)(A+B)(A+C) 的共识项,是冗余的。
反演定律
反演定律 A = \overline{\overline{A}} 变量的双重否定等于自身

推导过程

  1. 基本定律

    • 恒等律A + 0 = AA \cdot 1 = A 是逻辑代数的基本定义。
    • 零律A + 1 = 1A \cdot 0 = 0 也是逻辑代数的基本定义。
    • 幂等律A + A = AA \cdot A = A 是因为逻辑加法和乘法运算的特性。
    • 互补律A + \overline{A} = 1A \cdot \overline{A} = 0 是逻辑变量和其补码的定义。
  2. 交换律

    • 加法交换律A + B = B + A 是逻辑加法的交换特性。
    • 乘法交换律A \cdot B = B \cdot A 是逻辑乘法的交换特性。
  3. 结合律

    • 加法结合律(A + B) + C = A + (B + C) 是逻辑加法的结合特性。
    • 乘法结合律(A \cdot B) \cdot C = A \cdot (B \cdot C) 是逻辑乘法的结合特性。
  4. 分配律

    • 乘法分配律A \cdot (B + C) = A \cdot B + A \cdot C 是逻辑乘法对加法的分配特性。
    • 加法分配律A + (B \cdot C) = (A + B) \cdot (A + C) 是逻辑加法对乘法的分配特性。
  5. 吸收律

    • 吸收律1A + A \cdot B = A 可以从 A + A \cdot B = A \cdot (1 + B) = A \cdot 1 = A 推导得出。
    • 吸收律2A \cdot (A + B) = A 可以从 A \cdot (A + B) = A \cdot A + A \cdot B = A + A \cdot B = A 推导得出。
  6. 德摩根定律

    • 德摩根定律1\overline{A + B} = \overline{A} \cdot \overline{B} 是逻辑加法的德摩根定律。
    • 德摩根定律2\overline{A \cdot B} = \overline{A} + \overline{B} 是逻辑乘法的德摩根定律。
  7. 简化定律

    • 简化定律1A + \overline{A} \cdot B = A + B 可以从 A + \overline{A} \cdot B = (A + \overline{A}) \cdot (A + B) = 1 \cdot (A + B) = A + B 推导得出。
    • 简化定律2A \cdot (\overline{A} + B) = A \cdot B 可以从 A \cdot (\overline{A} + B) = A \cdot \overline{A} + A \cdot B = 0 + A \cdot B = A \cdot B 推导得出。
  8. 共识定律

    • 共识定律(A + B) \cdot (\overline{A} + C) = (A + B) \cdot (\overline{A} + C) \cdot (B + C) 可以从 (A + B) \cdot (\overline{A} + C) = (A + B) \cdot (\overline{A} + C) \cdot (B + C) 推导得出,因为 $(A + B) \cdot (\overline{A} + C) \leq (B + C)$。
  9. 反演定律

    • 反演定律A = \overline{\overline{A}} 是逻辑变量的双重否定特性。

二、基本门电路

1. 非门


Y = \overline{A}

2. 与门


Y = A \cdot B

真值表:

输入 A 输入 B 输出 Y
0 0 0
0 1 0
1 0 0
1 1 1

3. 或门


Y = A + B

真值表:

输入 A 输入 B 输出 Y
0 0 0
0 1 1
1 0 1
1 1 1

4. 与非门

与非门是“与门”和“非门”的结合。


Y = \overline{A \cdot B}

真值表:

输入 A 输入 B 输出 Y
0 0 1
0 1 1
1 0 1
1 1 0

5. 或非门

或非门是“或门”和“非门”的结合。


Y = \overline{A + B}

真值表:

输入 A 输入 B 输出 Y
0 0 1
0 1 0
1 0 0
1 1 0

6. 异或门

当两个输入不相同时输出为高电平1当两个输入相同时输出为低电平0。这也被称为“半加器”的求和逻辑。

逻辑表达式:


Y = A \oplus B

真值表:

输入 A 输入 B 输出 Y
0 0 0
0 1 1
1 0 1
1 1 0

三、编码

1. 原码、反码和补码

为了在二进制系统中表示正负数,我们通常会使用最高位作为符号位

  • 符号位为 0 代表正数
  • 符号位为 1 代表负数

原码

  • 规则: 符号位 + 数值的绝对值的二进制表示。
  • 正数: 符号位为0其余位表示数值。
    • 例如,+12 的原码是 00001100
  • 负数: 符号位为1其余位表示数值。
    • 例如,-12 的原码是 10001100
  • 缺点:
    1. 零的表示不唯一:+000000000-010000000
    2. 进行加减法运算时,需要单独处理符号位,硬件实现复杂。

反码

反码的出现是为了简化减法运算。

  • 规则:
    • 正数的反码与其原码相同
    • 负数的反码是在其原码的基础上,符号位不变,其余各位按位取反
  • 示例:
    • +12 的原码是 00001100,其反码也是 00001100
    • -12 的原码是 10001100,其反码是 11110011 (符号位1不变后面7位 0001100 按位取反得到 1110011)。
  • 缺点:
    • 仍然存在“双零”问题:+0 的反码是 00000000-0 的反码是 11111111
    • 跨零运算会产生循环进位问题。

补码

补码是现代计算机系统中最常用的有符号数表示法,它解决了原码和反码的缺点。

  • 规则:
    • 正数的补码与其原码相同
    • 负数的补码是其反码加 1
  • 求负数补码的方式:
    • 从其原码的最低位(最右边)向左找,找到的第一个 1 保持不变,这个 1 左边的所有位不含符号位按位取反符号位仍为1。
  • 示例:
    • +12 的补码是 00001100
    • -12 的补码求法:
      1. 原码: 10001100
      2. 反码: 11110011
      3. 加 1: 11110011 + 1 = 11110100
  • 优点:
    1. 零的表示唯一: 00000000
    2. 简化运算: 可以将减法运算转换为加法运算。例如,计算 A - B 等同于计算 A + (-B) 的补码。
    3. 对于一个 n 位的补码系统,其表示范围为 $[-2^{n-1}, 2^{n-1}-1]$。例如8位补码的范围是 $[-128, 127]$。

总结表格 (以 ±12 为例)

原码 反码 补码
+12 00001100 00001100 00001100
-12 10001100 11110011 11110100

2. BCD 码

BCD码是用二进制来表示十进制数的一种编码方式。它与直接将十进制数转换为二进制数不同。

  • 规则: 用 4 位二进制数来表示一位十进制数0-9。最常用的是 8421 BCD 码,其中各位的权值从高到低分别是 8、4、2、1。
  • 特点:
    • 它介于二进制和十进制之间,便于人机交互(如数码管显示、计算器)。
    • 运算比纯二进制复杂,但比直接处理十进制字符简单。
    • 由于用4位二进制表示一位十进制数所以 10101111 这 6 个码是无效或非法的。

BCD 码对照表

十进制 BCD 码
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001

示例: 将十进制数 129 转换为 BCD 码。

  1. 将每一位十进制数分开:129
  2. 将每一位分别转换为对应的4位BCD码
    • 1 \rightarrow 0001
    • 2 \rightarrow 0010
    • 9 \rightarrow 1001
  3. 将它们组合起来:
    
    (129)_{10} = (0001 \ 0010 \ 1001)_{\text{BCD}}
    

对比: 如果将 (129)₁₀ 直接转换为纯二进制,结果是 10000001。这与它的 BCD 码是完全不同的。

四、加法器、编码器、译码器、选择器、比较器


五、触发器

1. RS 触发器

最基本的触发器,但存在一个不确定状态,在实际应用中较少直接使用。

  • 输入: S (Set, 置位), R (Reset, 复位)
  • 输出: Q (状态输出), \overline{Q} (反向输出)

功能表

这张表描述了在不同输入下,下一个状态 Q_{n+1} 是什么。

S R Q_{n+1} 功能
0 0 Q_n 保持
0 1 0 复位/置0
1 0 1 置位/置1
1 1 ? 禁止/不定

特性方程


Q_{n+1} = S + \overline{R}Q_n \quad (\text{约束条件: } S \cdot R = 0)

激励表

这张表在电路设计时非常有用,它回答了“为了让状态从 Q_n 变为 $Q_{n+1}$,输入 SR 应该是什么”。X表示Don't Care即0或1均可

Q_n Q_{n+1} S R
0 0 0 X
0 1 1 0
1 0 0 1
1 1 X 0

2. JK 触发器

JK 触发器是 RS 触发器的改进版,它解决了 RS 触发器的“禁止”状态问题,是最通用的触发器。

  • 输入: J (功能类似 S), K (功能类似 R)
  • 输出: Q, \overline{Q}

功能表

J K Q_{n+1} 功能
0 0 Q_n 保持
0 1 0 复0
1 0 1 置1
1 1 \overline{Q_n} **翻转 **

JK触发器将RS触发器的禁止状态1,1输入变成了一个非常有用的翻转功能。

特性方程


Q_{n+1} = J\overline{Q_n} + \overline{K}Q_n

激励表

Q_n Q_{n+1} J K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0

3. D 触发器

D 触发器的功能非常直接:在时钟脉冲到来时,将输入 D 的值传递给输出 $Q$。它常被用作数据锁存器或移位寄存器的基本单元。

  • 输入: D (Data)
  • 输出: Q, \overline{Q}

功能表

D Q_{n+1} 功能
0 0 置0
1 1 置1

无论当前状态 Q_n 是什么,下一个状态 Q_{n+1} 都等于时钟边沿到来时的 D 输入值。

**特性方程 **


Q_{n+1} = D

**激励表 **

Q_n Q_{n+1} D
0 0 0
0 1 1
1 0 0
1 1 1

4. T 触发器

T 触发器是一个翻转触发器。当输入 T=1 时,状态翻转;当 T=0 时,状态保持不变。它常用于构建计数器。

  • 输入: T
  • 输出: Q, \overline{Q}

功能表

T Q_{n+1} 功能
0 Q_n 保持
1 \overline{Q_n} 翻转

特性方程


Q_{n+1} = T \oplus Q_n = T\overline{Q_n} + \overline{T}Q_n

激励表

Q_n Q_{n+1} T
0 0 0
0 1 1
1 0 1
1 1 0