Skip to content

数字电路笔记

资料下载

Markdown源码版本

PDF版本

完整笔记

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

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

推导过程

  1. 基本定律

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

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

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

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

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

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

    • 简化定律1A+AB=A+B 可以从 A+AB=(A+A)(A+B)=1(A+B)=A+B 推导得出。
    • 简化定律2A(A+B)=AB 可以从 A(A+B)=AA+AB=0+AB=AB 推导得出。
  8. 共识定律

    • 共识定律(A+B)(A+C)=(A+B)(A+C)(B+C) 可以从 (A+B)(A+C)=(A+B)(A+C)(B+C) 推导得出,因为 (A+B)(A+C)(B+C)
  9. 反演定律

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

二、基本门电路

1. 非门

Y=A

2. 与门

Y=AB

真值表:

输入 A输入 B输出 Y
000
010
100
111

3. 或门

Y=A+B

真值表:

输入 A输入 B输出 Y
000
011
101
111

4. 与非门

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

Y=AB

真值表:

输入 A输入 B输出 Y
001
011
101
110

5. 或非门

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

Y=A+B

真值表:

输入 A输入 B输出 Y
001
010
100
110

6. 异或门

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

逻辑表达式:

Y=AB

真值表:

输入 A输入 B输出 Y
000
011
101
110

三、编码

1. 原码、反码和补码

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

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

原码

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

反码

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

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

补码

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

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

总结表格 (以 ±12 为例)

原码反码补码
+12000011000000110000001100
-12100011001111001111110100

2. BCD 码

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

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

BCD 码对照表

十进制BCD 码
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001

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

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

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

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


五、触发器

1. RS 触发器

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

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

功能表

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

SRQn+1功能
00Qn保持
010复位/置0
101置位/置1
11?禁止/不定

特性方程

Qn+1=S+RQn(约束条件: SR=0)

激励表

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

QnQn+1SR
000X
0110
1001
11X0

2. JK 触发器

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

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

功能表

JKQn+1功能
00Qn保持
010复0
101置1
11Qn**翻转 **

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

特性方程

Qn+1=JQn+KQn

激励表

QnQn+1JK
000X
011X
10X1
11X0

3. D 触发器

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

  • 输入: D (Data)
  • 输出: Q, Q

功能表

DQn+1功能
00置0
11置1

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

**特性方程 **

Qn+1=D

**激励表 **

QnQn+1D
000
011
100
111

4. T 触发器

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

  • 输入: T
  • 输出: Q, Q

功能表

TQn+1功能
0Qn保持
1Qn翻转

特性方程

Qn+1=TQn=TQn+TQn

激励表

QnQn+1T
000
011
101
110

上次更新于: