数字电路系统笔记

1. 数字电路基础

1.1 数字信号与模拟信号

  • 模拟信号:连续变化的信号,如温度、电压、声音等自然现象
  • 数字信号:离散的信号,只有两种状态(高电平/低电平、1/0)
  • 数字电路优势:抗干扰能力强、可靠性高、易于集成、便于存储和处理

1.2 数字电路分类

  • 组合逻辑电路:输出仅取决于当前输入,无记忆功能
  • 时序逻辑电路:输出取决于当前输入和历史状态,有记忆功能

2. 数制与编码

2.1 数制的基本概念

2.1.1 数制的定义

数制是用一组固定的数码和统一的规则来表示数值的方法。在数字电路中,常用的数制包括十进制、二进制、八进制和十六进制。

2.1.2 数制的三要素
  • 数码:数制中表示基本数值大小的不同数字符号
  • 基数:数制所使用数码的个数,用R表示
  • 位权:数制中某一位上的1所表示数值的大小,等于基数的若干次幂
2.1.3 常用数制
数制 基数® 数字符号 位权 表示符号 示例
十进制 10 0,1,2,3,4,5,6,7,8,9 10^i D (123.45)10
二进制 2 0,1 2^i B (1111011.101)2
八进制 8 0,1,2,3,4,5,6,7 8^i O (173.5)8
十六进制 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 16^i H (7B.D)16

2.2 数制转换

2.2.1 二进制转十进制

方法:按权展开求和
公式推导
对于任意二进制数 (dn d{n-1} ots d1 d_0 . d{-1} d*{-2} ots d*{-m})2 ,其十进制值为:
(B)_2 = d_n imes 2^n + d
{n-1} imes 2^{n-1} + ots + d0 imes 2^0 + d{-1} imes 2^{-1} + ots + d*{-m} imes 2^{-m} = um*{i=-m}^{n} d_i imes 2^i

示例:将二进制数 (1011.101)2 转换为十进制
egin{align*}
(1011.101)_2 &= 1×2^3 + 0×2^2 + 1×2^1 + 1×2^0 + 1×2^{-1} + 0×2^{-2} + 1×2^{-3}
&= 8 + 0 + 2 + 1 + 0.5 + 0 + 0.125
&= (11.625)
{10}
nd{align*}

2.2.2 十进制转二进制
2.2.2.1 整数部分转换

方法:除2取余,逆序排列
原理:十进制整数 N 可以表示为二进制数 (bn b{n-1} ots b1 b_0)_2 ,即:
N = b_n imes 2^n + b
{n-1} imes 2^{n-1} + ots + b_1 imes 2^1 + b_0 imes 2^0
两边同时除以2,商为 N_1 ,余数为 b_0 :
N = 2 imes N_1 + b_0
继续将 N_1 除以2,得到商 N_2 和余数 b_1 ,依此类推,直到商为0。

示例:将十进制整数 (23)_{10} 转换为二进制

除法运算 余数 b_i 位权
23 ÷ 2 11 1 ( b_0 ) 2^0
11 ÷ 2 5 1 ( b_1 ) 2^1
5 ÷ 2 2 1 ( b_2 ) 2^2
2 ÷ 2 1 0 ( b_3 ) 2^3
1 ÷ 2 0 1 ( b_4 ) 2^4
  • 逆序排列余数: 10111
  • 结果: (23)_{10} = (10111)_2
2.2.2.2 小数部分转换

方法:乘2取整,顺序排列
原理:十进制小数 F 可以表示为二进制小数 (0.b*{-1} b*{-2} ots b*{-m})_2 ,即:
F = b*{-1} imes 2^{-1} + b*{-2} imes 2^{-2} + ots + b*{-m} imes 2^{-m}
两边同时乘以2,整数部分为 b*{-1} ,小数部分为 F_1 :
2F = b*{-1} + F1
继续将 F_1 乘以2,得到整数部分 b
{-2} 和小数部分 F_2 ,依此类推,直到小数部分为0或达到所需精度。

示例:将十进制小数 (0.625)_{10} 转换为二进制

乘法运算 结果 整数部分 b_{-i} 位权
0.625 × 2 1.25 1 ( b*{-1} ) 2^{-1}
0.25 × 2 0.5 0 ( b*{-2} ) 2^{-2}
0.5 × 2 1.0 1 ( b_{-3} ) 2^{-3}
  • 顺序排列整数部分: 0.101
  • 结果: (0.625)_{10} = (0.101)_2
2.2.2.3 完整示例

将十进制数 (23.625)_{10} 转换为二进制

  • 整数部分:23 → 10111
  • 小数部分:0.625 → 0.101
  • 最终结果: (23.625)_{10} = (10111.101)_2
2.2.3 二进制与八进制互转
2.2.3.1 二进制转八进制

方法:以小数点为界,每3位一组,不足补0
原理:因为 2^3 = 8 ,所以3位二进制数恰好对应1位八进制数
步骤

  1. 整数部分:从右向左每3位一组,不足左边补0
  2. 小数部分:从左向右每3位一组,不足右边补0
  3. 每组3位二进制数转换为1位八进制数

示例:将二进制数 (110010.1101)_2 转换为八进制

  • 分组: (110010.110100)_2 (整数部分从右向左,小数部分从左向右)
  • 转换: 110→6, 010→2; 110→6, 100→4
  • 结果: (62.64)_8
2.2.3.2 八进制转二进制

方法:每位八进制数转换为3位二进制数
示例:将八进制数 (62.64)_8 转换为二进制

  • 6→110, 2→010; 6→110, 4→100
  • 结果: (110010.110100)_2 = (110010.1101)_2 (去掉末尾多余的0)
2.2.4 二进制与十六进制互转
2.2.4.1 二进制转十六进制

方法:以小数点为界,每4位一组,不足补0
原理:因为 2^4 = 16 ,所以4位二进制数恰好对应1位十六进制数
步骤

  1. 整数部分:从右向左每4位一组,不足左边补0
  2. 小数部分:从左向右每4位一组,不足右边补0
  3. 每组4位二进制数转换为1位十六进制数

示例:将二进制数 (1100001.1101)_2 转换为十六进制

  • 分组: (01100001.1101)_2 (整数部分左边补0,小数部分右边补0)
  • 转换: 0110→6, 0001→1; 1101→D
  • 结果: (61.D)_{16}
2.2.4.2 十六进制转二进制

方法:每位十六进制数转换为4位二进制数
示例:将十六进制数 (61.D)_{16} 转换为二进制

  • 6→0110, 1→0001; D→1101
  • 结果: (01100001.1101)_2 = (1100001.1101)_2 (去掉整数部分左边多余的0)
2.2.5 十进制与八进制/十六进制互转

方法:以二进制为中间桥梁
步骤

  1. 十进制 → 二进制 → 八进制/十六进制
  2. 八进制/十六进制 → 二进制 → 十进制

2.3 二进制编码

2.3.1 数值编码
2.3.1.1 原码、反码和补码

原码

  • 最高位为符号位(0表示正数,1表示负数)
  • 数值位为二进制绝对值
  • 示例:+5的原码为00000101,-5的原码为10000101

反码

  • 正数的反码与原码相同
  • 负数的反码:符号位不变,数值位取反
  • 示例:+5的反码为00000101,-5的反码为11111010

补码

  • 正数的补码与原码相同
  • 负数的补码:反码加1
  • 示例:+5的补码为00000101,-5的补码为11111011
  • 补码的优点:简化运算,减法可转换为加法
2.3.1.2 BCD码(二-十进制编码)

定义:用4位二进制数表示1位十进制数

8421码

  • 最常用的BCD码
  • 各位的权值分别为8、4、2、1
  • 示例:(529)10 = (0101 0010 1001)8421BCD

余3码

  • 8421码加3得到
  • 具有自补特性,便于减法运算
  • 示例:(5)10 = (0101)8421 + 0011 = (1000)余3

2421码

  • 各位的权值分别为2、4、2、1
  • 示例:(5)10 = (1011)2421(1×2 + 0×4 + 1×2 + 1×1 = 5)
2.3.2 可靠性编码
2.3.2.1 格雷码

定义:相邻码组只有1位不同的编码

特点

  • 相邻码组之间只有1位变化,减少了误码率
  • 常用于编码器、译码器和计数器等电路
  • 具有反射特性,便于生成

生成方法

  • 二进制数转换为格雷码:
    1. 最高位保持不变
    2. 从左到右,每一位二进制数与前一位二进制数异或,得到对应的格雷码位

示例:二进制数 (1011)_2 转换为格雷码

  • 二进制:1 0 1 1
  • 格雷码:1 1 1 0 (1, 1⊕0=1, 0⊕1=1, 1⊕1=0)
2.3.2.2 奇偶校验码

定义:在原码基础上增加1位校验位,使整个码组中1的个数为奇数(奇校验)或偶数(偶校验)

特点

  • 只能检测出奇数位错误,不能检测出偶数位错误
  • 不能确定错误位置
  • 实现简单,成本低

示例

  • 原码:1011
  • 奇校验:10110(1的个数为3,奇数)
  • 偶校验:10111(1的个数为4,偶数)
2.3.3 字符编码
2.3.3.1 ASCII码

定义:美国信息交换标准代码

  • 7位二进制编码,共128个字符
  • 包括控制字符(32个)和可打印字符(96个)

示例

  • 数字0:0110000
  • 大写字母A:1000001
  • 小写字母a:1100001
2.3.3.2 Unicode

定义:统一码,用于表示全球各种文字符号

  • 16位编码,共65536个字符
  • 兼容ASCII码
  • 支持多种语言,包括中文、日文、韩文等

UTF-8

  • Unicode的一种可变长度字符编码
  • 1-4字节表示一个字符
  • 兼容ASCII码(单字节)

2.4 数制与编码的应用

2.4.1 计算机存储
  • 计算机内部采用二进制存储数据和指令
  • 内存地址通常用十六进制表示(如0x7FFF)
  • 文件大小用二进制单位(KB, MB, GB)表示,其中1KB=1024B
2.4.2 通信系统
  • 数字通信中采用二进制编码(如ASCII, Unicode)
  • 数据传输速率用比特率(bps)表示
  • 差错控制编码(如奇偶校验码、CRC码)用于提高通信可靠性
2.4.3 数字电路设计
  • 逻辑电路的输入输出用二进制表示
  • 电路设计中常用十六进制表示状态编码
  • 可靠性编码(如格雷码)用于减少电路错误

2.5 常见问题与易错点

2.5.1 二进制小数转换精度问题

问题:某些十进制小数无法用有限位二进制小数精确表示
: (0.1)_{10} = (0.0001100110011ots)_2 (无限循环)
解决方法:根据实际需要保留适当位数,常用4-8位二进制小数

2.5.2 分组方向错误

问题:二进制转八进制/十六进制时,分组方向错误
注意事项

  • 整数部分:从右向左分组
  • 小数部分:从左向右分组
2.5.3 符号位处理

问题:负数转换时符号位处理不当
解决方法:采用补码表示,最高位为符号位(0表示正数,1表示负数)

2.5.4 十六进制字母大小写混淆

问题:十六进制中的A-F与a-f混淆
注意事项:十六进制中字母大小写等价,但通常大写表示

2.6 数制转换总结

转换类型 方法 关键要点
二进制→十进制 按权展开求和 注意位权的正负
十进制→二进制 整数:除2取余,逆序排列
小数:乘2取整,顺序排列
小数部分可能无限循环
二进制→八进制 每3位一组转换 整数左边补0,小数右边补0
八进制→二进制 每位转3位二进制 去掉多余的0
二进制→十六进制 每4位一组转换 整数左边补0,小数右边补0
十六进制→二进制 每位转4位二进制 去掉多余的0
十进制→八进制/十六进制 二进制为中间桥梁 先转二进制,再转目标数制

3. 布尔代数

3.1 布尔代数的基本概念

3.1.1 布尔代数的定义

布尔代数是由英国数学家乔治·布尔(George Boole)于1847年提出的一种代数系统,用于描述逻辑关系和逻辑运算。它是数字电路设计的数学基础。

3.1.2 逻辑变量
  • 定义:只取两种值(0和1)的变量
  • 物理意义:在数字电路中,0通常表示低电平,1表示高电平
3.1.3 逻辑函数
  • 定义:输入逻辑变量和输出逻辑变量之间的对应关系
  • 表示方法:逻辑表达式、真值表、卡诺图、波形图、逻辑电路图

3.2 基本逻辑运算

3.2.1 与运算(AND)
  • 定义:当且仅当所有输入都为1时,输出才为1
  • 逻辑表达式:Y = A · B 或 Y = AB
  • 真值表
    A B Y = AB
    0 0 0
    0 1 0
    1 0 0
    1 1 1
  • 运算规则:0·0=0, 0·1=0, 1·0=0, 1·1=1
3.2.2 或运算(OR)
  • 定义:只要有一个输入为1,输出就为1
  • 逻辑表达式:Y = A + B
  • 真值表
    A B Y = A + B
    0 0 0
    0 1 1
    1 0 1
    1 1 1
  • 运算规则:0+0=0, 0+1=1, 1+0=1, 1+1=1
3.2.3 非运算(NOT)
  • 定义:输入为0时输出为1,输入为1时输出为0
  • 逻辑表达式:Y = Ā 或 Y = ¬A
  • 真值表
    A Y = ¬A
    0 1
    1 0
  • 运算规则:¬0=1, ¬1=0

3.3 复合逻辑运算

3.3.1 与非运算(NAND)
  • 定义:与运算后取反
  • 逻辑表达式:Y = ¬(A · B) 或 Y = A ↑ B
  • 真值表
    A B Y = ¬(AB)
    0 0 1
    0 1 1
    1 0 1
    1 1 0
3.3.2 或非运算(NOR)
  • 定义:或运算后取反
  • 逻辑表达式:Y = ¬(A + B) 或 Y = A ↓ B
  • 真值表
    A B Y = ¬(A + B)
    0 0 1
    0 1 0
    1 0 0
    1 1 0
3.3.3 异或运算(XOR)
  • 定义:输入相异时输出为1,输入相同时输出为0
  • 逻辑表达式:Y = A ⊕ B = A·¬B + ¬A·B
  • 真值表
    A B Y = A ⊕ B
    0 0 0
    0 1 1
    1 0 1
    1 1 0
3.3.4 同或运算(XNOR)
  • 定义:输入相同时输出为1,输入相异时输出为0
  • 逻辑表达式:Y = A ⊙ B = A·B + ¬A·¬B = ¬(A ⊕ B)
  • 真值表
    A B Y = A ⊙ B
    0 0 1
    0 1 0
    1 0 0
    1 1 1

3.4 布尔代数的基本定律和规则

3.4.1 基本定律
定律名称 表达式 证明(以与运算为例)
交换律 A + B = B + A
A · B = B · A
真值表验证:所有输入组合的输出相同
结合律 (A + B) + C = A + (B + C)
(A · B) · C = A · (B · C)
真值表验证:所有输入组合的输出相同
分配律 A · (B + C) = A · B + A · C
A + B · C = (A + B) · (A + C)
以第二式为例:
(A + B) · (A + C) = A·A + A·C + B·A + B·C = A + A·C + A·B + B·C = A(1 + C + B) + B·C = A + B·C
吸收律 A + A · B = A
A · (A + B) = A
以第一式为例:A + A·B = A(1 + B) = A·1 = A
摩根定律 ¬(A + B) = ¬A · ¬B
¬(A · B) = ¬A + ¬B
真值表验证:所有输入组合的输出相同
0-1律 A + 0 = A
A + 1 = 1
A · 0 = 0
A · 1 = A
逻辑运算规则直接推导
互补律 A + ¬A = 1
A · ¬A = 0
逻辑运算规则直接推导
重叠律 A + A = A
A · A = A
以第一式为例:A + A = A(1 + 1) = A·1 = A
对合律 ¬(¬A) = A 逻辑运算规则直接推导
反演律 与摩根定律相同 -
3.4.2 重要规则
3.4.2.1 代入规则
  • 定义:在任何一个含有变量A的逻辑等式中,若以另外一个逻辑式代入式中所有A的位置,则等式仍然成立
  • 应用:扩展基本定律的应用范围
  • 示例:已知¬(A + B) = ¬A · ¬B,若令B = B + C,则¬(A + B + C) = ¬A · ¬(B + C) = ¬A · ¬B · ¬C
3.4.2.2 反演规则
  • 定义:对于任意一个逻辑表达式Y,若将其中所有的·换成+,+换成·,0换成1,1换成0,原变量换成反变量,反变量换成原变量,则得到的结果就是¬Y
  • 注意事项
    1. 保持原表达式的运算顺序(先括号,再与,最后或)
    2. 只变换单个变量的反,不变换复合变量的反
  • 示例:Y = A · ¬B + C · D,则¬Y = (¬A + B) · (¬C + ¬D)
3.4.2.3 对偶规则
  • 定义:对于任意一个逻辑表达式Y,若将其中所有的·换成+,+换成·,0换成1,1换成0,则得到的结果就是Y的对偶式Y’
  • 性质:若两个逻辑式相等,则它们的对偶式也相等
  • 应用:简化定律的证明
  • 示例:Y = A + B · C,则Y’ = A · (B + C)

3.5 逻辑函数的标准形式

3.5.1 最小项
  • 定义:在n变量逻辑函数中,包含全部n个变量的乘积项,每个变量以原变量或反变量的形式出现且仅出现一次
  • 性质
    1. 对于任意一个最小项,只有一组变量取值使它的值为1
    2. 任意两个不同最小项的乘积为0
    3. 全体最小项的和为1
  • 编号:最小项通常用mᵢ表示,i是该最小项对应的二进制数的十进制值
  • 示例:三变量最小项A·¬B·C对应二进制数101,十进制值5,所以记为m₅
3.5.2 最大项
  • 定义:在n变量逻辑函数中,包含全部n个变量的或项,每个变量以原变量或反变量的形式出现且仅出现一次
  • 性质
    1. 对于任意一个最大项,只有一组变量取值使它的值为0
    2. 任意两个不同最大项的和为1
    3. 全体最大项的乘积为0
  • 编号:最大项通常用Mᵢ表示,i是该最大项对应的二进制数的十进制值
  • 示例:三变量最大项A + ¬B + C对应二进制数010,十进制值2,所以记为M₂
3.5.3 最小项之和形式
  • 定义:由若干个最小项相或构成的逻辑表达式
  • 转换方法
    1. 写出逻辑函数的真值表
    2. 找出所有使输出为1的变量取值组合
    3. 每个组合对应一个最小项,将这些最小项相或
  • 示例:Y = A + B · C的最小项之和形式为Y = m₃ + m₅ + m₆ + m₇
3.5.4 最大项之积形式
  • 定义:由若干个最大项相与构成的逻辑表达式
  • 转换方法
    1. 写出逻辑函数的真值表
    2. 找出所有使输出为0的变量取值组合
    3. 每个组合对应一个最大项,将这些最大项相与
  • 示例:Y = A + B · C的最大项之积形式为Y = M₀ · M₁ · M₂ · M₄

3.6 逻辑函数化简

3.6.1 化简的意义和标准
3.6.1.1 化简的意义
  • 减少逻辑门的数量,降低成本
  • 提高电路的可靠性
  • 减少电路的延迟,提高速度
3.6.1.2 化简的标准
  • 与或式:包含的乘积项最少,每个乘积项中的变量个数最少
  • 或与式:包含的或项最少,每个或项中的变量个数最少
3.6.2 公式化简法
3.6.2.1 常用方法

1. 并项法

  • 原理:利用A + ¬A = 1,将两个乘积项合并为一个乘积项
  • 示例:Y = A·B·¬C + A·B·C = A·B(¬C + C) = A·B

2. 吸收法

  • 原理:利用A + A·B = A,消去多余的乘积项
  • 示例:Y = A·B + A·B·¬C + A·B·D = A·B(1 + ¬C + D) = A·B

3. 消去法

  • 原理:利用A + ¬A·B = A + B,消去多余的变量
  • 示例:Y = A·B + ¬A·C + B·C = A·B + ¬A·C + B·C(A + ¬A) = A·B + ¬A·C + A·B·C + ¬A·B·C = A·B(1 + C) + ¬A·C(1 + B) = A·B + ¬A·C

4. 配项法

  • 原理:利用A = A(B + ¬B),将一个乘积项拆分为两个乘积项,然后再与其他项合并
  • 示例:Y = A·¬B + B·¬C + ¬B·C + ¬A·B = A·¬B + B·¬C + ¬B·C(A + ¬A) + ¬A·B(C + ¬C) = A·¬B + B·¬C + A·¬B·C + ¬A·¬B·C + ¬A·B·C + ¬A·B·¬C = A·¬B(1 + C) + B·¬C(1 + ¬A) + ¬A·C(¬B + B) = A·¬B + B·¬C + ¬A·C
3.6.2.2 化简示例

示例1:化简Y = A·B + A·¬B + ¬A·B + ¬A·¬B

  • 解法1:Y = A(B + ¬B) + ¬A(B + ¬B) = A·1 + ¬A·1 = A + ¬A = 1
  • 解法2:Y = B(A + ¬A) + ¬B(A + ¬A) = B·1 + ¬B·1 = B + ¬B = 1

示例2:化简Y = A·B + A·¬C + ¬B·C + ¬A·C

  • 解法:Y = A·B + C(¬A + ¬B) + A·¬C = A·B + C·¬(A·B) + A·¬C = A·B + C + A·¬C = A(B + ¬C) + C = A + C
3.6.3 卡诺图化简法
3.6.3.1 卡诺图的结构
  • 定义:卡诺图是一种由2ⁿ个小方格组成的图形,每个小方格代表一个最小项
  • 特点:相邻的小方格只有1位变量不同(几何相邻和逻辑相邻)
  • 结构
    • 2变量卡诺图:4个小方格,变量A和B
    • 3变量卡诺图:8个小方格,变量A、B和C
    • 4变量卡诺图:16个小方格,变量A、B、C和D
3.6.3.2 卡诺图的绘制
  • 步骤
    1. 根据变量数确定卡诺图的大小
    2. 标注每个小方格的变量取值
    3. 标注每个小方格对应的最小项编号

2变量卡诺图

B=0 B=1
A=0 m₀ m₁
A=1 m₂ m₃

3变量卡诺图

BC=00 BC=01 BC=11 BC=10
A=0 m₀ m₁ m₃ m₂
A=1 m₄ m₅ m₇ m₆

4变量卡诺图

BC=00 BC=01 BC=11 BC=10
AD=00 m₀ m₁ m₃ m₂
AD=01 m₄ m₅ m₇ m₆
AD=11 m₁2 m₁3 m₁5 m₁4
AD=10 m₈ m₉ m₁1 m₁0
3.6.3.3 逻辑函数到卡诺图的转换
  • 步骤
    1. 将逻辑函数转换为最小项之和形式
    2. 在卡诺图中,将对应于最小项的小方格填1,其余填0

示例:Y = A·B + A·¬C + ¬B·C的卡诺图

  • 首先转换为最小项之和形式:Y = m₃ + m₅ + m₆ + m₇
  • 然后在3变量卡诺图中填1:
    BC=00 BC=01 BC=11 BC=10
    A=0 0 0 1 (m₃) 0
    A=1 0 1 (m₅) 1 (m₇) 1 (m₆)
3.6.3.4 卡诺图化简的步骤

步骤1:绘制逻辑函数的卡诺图
步骤2:将相邻的1方格分组(2ⁿ个)

  • 相邻包括:上下相邻、左右相邻、四角相邻、对折相邻
  • 每组的大小必须是2ⁿ(1, 2, 4, 8, 16…)
  • 尽可能使每组包含更多的1方格
  • 每个1方格可以属于多个组,但至少属于一个组
    步骤3:写出每组对应的乘积项
  • 每组中,若变量的取值相同,则保留该变量;若取值不同,则消去该变量
    步骤4:将所有乘积项相或,得到最简与或式
3.6.3.5 卡诺图化简示例

示例1:化简Y = ∑m(0, 2, 4, 6)(3变量)

  • 卡诺图:
    BC=00 BC=01 BC=11 BC=10
    A=0 1 (m₀) 0 0 1 (m₂)
    A=1 1 (m₄) 0 0 1 (m₆)
  • 分组:m₀, m₂, m₄, m₆组成一个4方格组
  • 乘积项:¬B(A和C的取值不同,被消去)
  • 结果:Y = ¬B

示例2:化简Y = ∑m(0, 1, 2, 3, 4, 5, 6, 7)(3变量)

  • 卡诺图:所有小方格都填1
  • 乘积项:1
  • 结果:Y = 1

示例3:化简Y = ∑m(1, 3, 5, 7, 9, 11, 13, 15)(4变量)

  • 卡诺图:所有奇数编号的小方格都填1
  • 分组:可以组成两个8方格组,或四个4方格组,或八个2方格组
  • 乘积项:D(A、B、C的取值不同,被消去)
  • 结果:Y = D

示例4:化简Y = ∑m(0, 1, 3, 4, 6, 7)(3变量)

  • 卡诺图:
    BC=00 BC=01 BC=11 BC=10
    A=0 1 (m₀) 1 (m₁) 1 (m₃) 0
    A=1 1 (m₄) 0 1 (m₇) 1 (m₆)
  • 分组:
    1. m₀, m₁:乘积项¬A·¬C
    2. m₃, m₇:乘积项B·C
    3. m₄, m₆:乘积项A·¬B
  • 结果:Y = ¬A·¬C + B·C + A·¬B
3.6.4 具有无关项的逻辑函数化简
3.6.4.1 无关项的概念
  • 定义:在逻辑函数中,某些输入组合不会出现,或者出现后对输出没有影响,这些输入组合对应的最小项称为无关项
  • 表示方法:用dᵢ表示,在卡诺图中用×或φ表示
3.6.4.2 无关项的应用
  • 在化简逻辑函数时,无关项可以根据需要视为1或0,以获得更简单的化简结果
3.6.4.3 化简示例

示例:化简Y = ∑m(1, 3, 5, 7, 9) + ∑d(10, 11, 12, 13, 14, 15)(4变量)

  • 卡诺图:
    BC=00 BC=01 BC=11 BC=10
    AD=00 0 1 (m₁) 1 (m₃) 0
    AD=01 0 1 (m₅) 1 (m₇) 0
    AD=11 × (d₁₂) × (d₁₃) × (d₁₅) × (d₁₄)
    AD=10 1 (m₉) × (d₉) × (d₁₁) × (d₁₀)
  • 分组:将m₁, m₃, m₅, m₇, m₉和d₁₀, d₁₁, d₁₃, d₁₅组成一个8方格组
  • 乘积项:D
  • 结果:Y = D

3.7 多输出逻辑函数化简

3.7.1 基本概念
  • 定义:具有多个输出的逻辑函数
  • 化简目标:不仅要使每个输出的逻辑表达式最简,还要使整个电路最简
3.7.2 化简方法
  • 步骤
    1. 分别化简每个输出的逻辑函数
    2. 寻找公共乘积项,尽可能共享逻辑门
    3. 综合考虑,选择最优方案
3.7.3 化简示例

示例:化简以下多输出逻辑函数
Y₁ = ∑m(1, 2, 3, 4, 5, 6, 7)
Y₂ = ∑m(0, 1, 2, 3)

解法

  • 单独化简:
    Y₁ = A + B + C
    Y₂ = ¬A·¬B + ¬A·C
  • 共享乘积项:
    观察到Y₂中的¬A·¬B和¬A·C可以与Y₁共享
    最终化简:
    Y₁ = A + (¬A·¬B + ¬A·C) = A + ¬A(B + C) = A + B + C
    Y₂ = ¬A·¬B + ¬A·C

3.8 常见问题与易错点

3.8.1 公式化简的常见错误
  • 错误1:误用分配律

    • 错误:A + B·C = (A + B)·C
    • 正确:A + B·C = (A + B)·(A + C)
  • 错误2:忘记反演规则的运算顺序

    • 错误:¬(A + B·C) = ¬A·¬B + ¬C
    • 正确:¬(A + B·C) = ¬A·(¬B + ¬C)
3.8.2 卡诺图化简的常见错误
  • 错误1:分组大小不是2ⁿ

    • 例如:将3个1方格分为一组
  • 错误2:分组不包含所有1方格

    • 例如:遗漏某些1方格
  • 错误3:没有选择最大的分组

    • 例如:将4个1方格分为两个2方格组,而不是一个4方格组
  • 错误4:没有考虑相邻的边界

    • 例如:卡诺图的左右边界是相邻的,上下边界也是相邻的

3.9 布尔代数的应用

3.9.1 逻辑电路设计
  • 布尔代数是逻辑电路设计的数学基础
  • 通过化简逻辑函数,可以得到更简单的逻辑电路
3.9.2 计算机科学
  • 布尔代数用于计算机的逻辑设计
  • 用于数据库查询优化
  • 用于搜索引擎的布尔检索
3.9.3 其他领域
  • 用于控制系统的逻辑设计
  • 用于人工智能的逻辑推理
  • 用于密码学的加密算法

4. 逻辑门电路

4.1 逻辑门的基本概念

4.1.1 逻辑门的定义

逻辑门是实现基本逻辑运算的电路单元,它是数字电路的基本构建块。逻辑门的输入和输出都是离散的电平信号,通常用0和1表示。

4.1.2 逻辑门的分类
  • 基本逻辑门:实现基本逻辑运算(与、或、非)
  • 复合逻辑门:由基本逻辑门组合而成(与非、或非、异或、同或等)
  • 按工艺分类:TTL门、CMOS门、ECL门等

4.2 基本逻辑门

4.2.1 与门
4.2.1.1 逻辑功能
  • 定义:当且仅当所有输入都为1时,输出才为1
  • 逻辑表达式:Y = A · B 或 Y = AB
  • 真值表
    A B Y = AB
    0 0 0
    0 1 0
    1 0 0
    1 1 1
  • 逻辑符号
    • 国标符号:&
    • 美国符号:∧
4.2.1.2 内部结构

二极管与门

  • 结构:由两个二极管和一个电阻组成
  • 工作原理
    • 当A、B都为高电平时,两个二极管都截止,输出Y为高电平
    • 当A或B为低电平时,对应的二极管导通,输出Y为低电平

晶体管与门

  • 结构:由两个晶体管和若干电阻组成
  • 工作原理
    • 当A、B都为高电平时,两个晶体管都导通,输出Y为高电平
    • 当A或B为低电平时,对应的晶体管截止,输出Y为低电平
4.2.2 或门
4.2.2.1 逻辑功能
  • 定义:只要有一个输入为1,输出就为1
  • 逻辑表达式:Y = A + B
  • 真值表
    A B Y = A + B
    0 0 0
    0 1 1
    1 0 1
    1 1 1
  • 逻辑符号
    • 国标符号:≥1
    • 美国符号:∨
4.2.2.2 内部结构

二极管或门

  • 结构:由两个二极管和一个电阻组成
  • 工作原理
    • 当A或B为高电平时,对应的二极管导通,输出Y为高电平
    • 当A、B都为低电平时,两个二极管都截止,输出Y为低电平

晶体管或门

  • 结构:由两个晶体管和若干电阻组成
  • 工作原理
    • 当A或B为高电平时,对应的晶体管导通,输出Y为高电平
    • 当A、B都为低电平时,两个晶体管都截止,输出Y为低电平
4.2.3 非门
4.2.3.1 逻辑功能
  • 定义:输入为0时输出为1,输入为1时输出为0
  • 逻辑表达式:Y = ¬A 或 Y = Ā
  • 真值表
    A Y = ¬A
    0 1
    1 0
  • 逻辑符号
    • 国标符号:1
    • 美国符号:¬
4.2.3.2 内部结构

晶体管非门

  • 结构:由一个晶体管和两个电阻组成
  • 工作原理
    • 当A为高电平时,晶体管导通,输出Y为低电平
    • 当A为低电平时,晶体管截止,输出Y为高电平

4.3 复合逻辑门

4.3.1 与非门
4.3.1.1 逻辑功能
  • 定义:与运算后取反
  • 逻辑表达式:Y = ¬(A · B) 或 Y = A ↑ B
  • 真值表
    A B Y = ¬(AB)
    0 0 1
    0 1 1
    1 0 1
    1 1 0
  • 逻辑符号
    • 国标符号:&(带小圆圈)
    • 美国符号:NAND
4.3.1.2 特点与应用
  • 与非门是通用门,可以组合成任何其他逻辑门
  • 应用广泛,常用于数字电路的基本构建
4.3.2 或非门
4.3.2.1 逻辑功能
  • 定义:或运算后取反
  • 逻辑表达式:Y = ¬(A + B) 或 Y = A ↓ B
  • 真值表
    A B Y = ¬(A + B)
    0 0 1
    0 1 0
    1 0 0
    1 1 0
  • 逻辑符号
    • 国标符号:≥1(带小圆圈)
    • 美国符号:NOR
4.3.2.2 特点与应用
  • 或非门也是通用门,可以组合成任何其他逻辑门
  • 常用于CMOS电路中,因为CMOS或非门的结构更简单
4.3.3 异或门
4.3.3.1 逻辑功能
  • 定义:输入相异时输出为1,输入相同时输出为0
  • 逻辑表达式:Y = A ⊕ B = A·¬B + ¬A·B
  • 真值表
    A B Y = A ⊕ B
    0 0 0
    0 1 1
    1 0 1
    1 1 0
  • 逻辑符号
    • 国标符号:=1
    • 美国符号:XOR
4.3.3.2 特点与应用
  • 异或门具有对称性,A ⊕ B = B ⊕ A
  • 应用:加法器、比较器、奇偶校验等
4.3.4 同或门
4.3.4.1 逻辑功能
  • 定义:输入相同时输出为1,输入相异时输出为0
  • 逻辑表达式:Y = A ⊙ B = A·B + ¬A·¬B = ¬(A ⊕ B)
  • 真值表
    A B Y = A ⊙ B
    0 0 1
    0 1 0
    1 0 0
    1 1 1
  • 逻辑符号
    • 国标符号:=
    • 美国符号:XNOR
4.3.4.2 特点与应用
  • 同或门是异或门的反函数
  • 应用:比较器、奇偶校验等

4.4 逻辑门的电气特性

4.4.1 输入输出电平

TTL门电路

  • 高电平范围:2.0V ~ 5.0V(通常用3.6V表示)
  • 低电平范围:0V ~ 0.8V(通常用0.3V表示)
  • 阈值电压:约1.4V

CMOS门电路

  • 高电平范围:0.7VDD ~ VDD
  • 低电平范围:0V ~ 0.3VDD
  • 阈值电压:约0.5VDD
4.4.2 扇入与扇出
  • 扇入:逻辑门能够接收的输入信号数量
  • 扇出:逻辑门能够驱动的同类逻辑门的数量
    • TTL门:通常扇出为10
    • CMOS门:扇出很大,取决于输出电流能力
4.4.3 传输延迟
  • 定义:输入信号变化到输出信号变化的时间延迟
  • 表示方法:tpHL(高电平到低电平的延迟)、tpLH(低电平到高电平的延迟)
  • 典型值
    • TTL门:约10ns
    • CMOS门:约100ns(低速)到1ns(高速)
4.4.4 功耗
  • TTL门:静态功耗约10mW/门
  • CMOS门:静态功耗极低(约nW/门),动态功耗与频率成正比

4.5 不同工艺的逻辑门

4.5.1 TTL门电路
4.5.1.1 基本结构
  • 定义:晶体管-晶体管逻辑门
  • 结构:由双极型晶体管组成
  • 特点:速度快、驱动能力强、功耗较高
4.5.1.2 典型TTL门

74LS00:四2输入与非门

  • 引脚图:14引脚DIP封装
  • 功能:包含4个独立的2输入与非门
  • 应用:数字电路的基本构建块

74LS04:六反相器

  • 功能:包含6个独立的非门
  • 应用:信号取反、电平转换
4.5.2 CMOS门电路
4.5.2.1 基本结构
  • 定义:互补金属氧化物半导体逻辑门
  • 结构:由PMOS晶体管和NMOS晶体管组成互补对
  • 特点:功耗低、集成度高、抗干扰能力强、速度较慢(相对TTL)
4.5.2.2 典型CMOS门

CD4001:四2输入或非门

  • 引脚图:14引脚DIP封装
  • 功能:包含4个独立的2输入或非门
  • 应用:低功耗数字电路

CD4069:六反相器

  • 功能:包含6个独立的非门
  • 应用:低功耗信号处理
4.5.3 TTL与CMOS的接口
4.5.3.1 TTL驱动CMOS
  • 问题:TTL输出高电平(约3.6V)可能低于CMOS输入高电平要求(0.7VDD,当VDD=5V时为3.5V)
  • 解决方法
    • 使用上拉电阻(将TTL输出端通过电阻接至VDD)
    • 使用专用的电平转换芯片
4.5.3.2 CMOS驱动TTL
  • 问题:CMOS输出电流可能不足以驱动TTL门
  • 解决方法
    • 使用缓冲器(如CD4049、CD4050)
    • 使用专用的电平转换芯片

4.6 逻辑门的表示方法

4.6.1 逻辑符号
  • 国标符号:GB/T 4728标准
  • IEC符号:国际电工委员会标准
  • 美国符号:ANSI/IEEE标准
4.6.2 真值表
  • 定义:列出所有输入组合对应的输出
  • 特点:直观、全面,但对于多输入门,表格会变得很大
4.6.3 逻辑表达式
  • 定义:用布尔代数表示输入输出关系
  • 特点:简洁、便于化简,但不够直观
4.6.4 波形图
  • 定义:时间域的输入输出关系
  • 特点:直观展示信号的时序关系
4.6.5 卡诺图
  • 定义:图形化表示逻辑函数
  • 特点:便于化简逻辑函数

4.7 逻辑门的应用案例

4.7.1 用与非门实现其他逻辑门

与门:Y = ¬(¬(A · B))
或门:Y = ¬(¬A · ¬B) (摩根定律)
非门:Y = ¬(A · A)
或非门:Y = ¬(¬(¬A · ¬B))
异或门:Y = ¬(¬(A · ¬B) · ¬(¬A · B))

4.7.2 三人表决器
  • 功能:三人投票,多数同意则通过
  • 输入:A、B、C(1表示同意,0表示不同意)
  • 输出:Y(1表示通过,0表示不通过)
  • 逻辑表达式:Y = AB + AC + BC
  • 电路实现:可以用3个与门和1个或门实现,或用与非门实现
4.7.3 奇偶校验器
  • 功能:检测数据中1的个数是奇数还是偶数
  • 输入:n位数据
  • 输出:1位校验位
  • 实现:使用异或门级联,n位数据需要n-1个异或门

4.8 逻辑门的测试

4.8.1 静态测试
  • 方法:将输入接固定电平,测量输出电平
  • 工具:万用表、逻辑笔
  • 步骤
    1. 检查电源和接地
    2. 依次测试所有输入组合
    3. 验证输出是否符合真值表
4.8.2 动态测试
  • 方法:输入脉冲信号,观察输出波形
  • 工具:示波器、信号发生器
  • 步骤
    1. 输入合适频率的脉冲信号
    2. 观察输出波形的形状和延迟
    3. 验证时序关系是否正确

4.9 常见问题与易错点

4.9.1 未使用的输入处理
  • TTL门:未使用的输入不能悬空,应接高电平(通过电阻接VCC)或低电平
  • CMOS门:未使用的输入不能悬空,应接高电平(VDD)或低电平(GND),否则会导致功耗增加和逻辑错误
4.9.2 电源和接地
  • 问题:电源和接地连接不良会导致逻辑错误和噪声
  • 解决方法:确保电源和接地连接可靠,使用去耦电容
4.9.3 信号传输延迟
  • 问题:长导线或高速电路中,信号传输延迟可能导致时序问题
  • 解决方法:使用短导线、匹配阻抗、调整时序
4.9.4 噪声干扰
  • 问题:外部噪声可能导致逻辑门误触发
  • 解决方法:使用屏蔽线、滤波电容、合理布线

4.10 逻辑门的发展趋势

  • 高速化:提高逻辑门的工作频率
  • 低功耗:降低逻辑门的功耗,适应移动设备需求
  • 高集成度:在单个芯片上集成更多的逻辑门
  • 混合工艺:结合不同工艺的优点,如BiCMOS(结合BJT和CMOS)

5. 组合逻辑电路

5.1 组合逻辑电路的基本概念

5.1.1 定义与特点
  • 定义:输出仅取决于当前输入,与历史状态无关的逻辑电路
  • 特点
    1. 无记忆功能,输出状态只与当前输入状态有关
    2. 由逻辑门组成,不含存储元件
    3. 输入输出之间存在直接的逻辑关系
    4. 响应速度快,无反馈回路
5.1.2 一般结构
输入信号 → 组合逻辑电路 → 输出信号
5.1.3 表示方法
  • 逻辑电路图
  • 真值表
  • 逻辑表达式
  • 卡诺图
  • 波形图

5.2 组合逻辑电路分析

5.2.1 分析目的

确定给定电路的逻辑功能,了解其输入输出关系

5.2.2 详细分析步骤

步骤1:确定输入输出变量

  • 观察电路图,确定输入变量(通常为A、B、C等)
  • 确定输出变量(通常为Y、Z等)

步骤2:写出逻辑表达式

  • 从输入到输出,逐级写出每个门的输出表达式
  • 最终得到输出与输入的逻辑表达式

步骤3:化简逻辑表达式

  • 利用布尔代数或卡诺图化简逻辑表达式
  • 得到最简与或式或其他形式

步骤4:列出真值表

  • 根据化简后的逻辑表达式,列出所有输入组合对应的输出
  • 通常输入变量按二进制顺序排列

步骤5:分析逻辑功能

  • 根据真值表或化简后的表达式,分析电路的逻辑功能
  • 用文字描述电路的功能
5.2.3 分析示例

示例:分析下图所示的组合逻辑电路

A ---|\
     | & ---|\
B ---|/     |\
            | & --- Y
C ---|\     |/
     | & ---|
D ---|/

分析过程

  1. 确定输入输出:输入为A、B、C、D,输出为Y

  2. 写出逻辑表达式

    • 第一个与门:Y1 = AB
    • 第二个与门:Y2 = CD
    • 第三个与门:Y = Y1 · Y2 = AB · CD
  3. 化简表达式:已为最简形式

  4. 列出真值表

    A B C D Y
    0 0 0 0 0
    0 0 0 1 0
    0 0 1 0 0
    0 0 1 1 0
    0 1 0 0 0
    0 1 0 1 0
    0 1 1 0 0
    0 1 1 1 0
    1 0 0 0 0
    1 0 0 1 0
    1 0 1 0 0
    1 0 1 1 0
    1 1 0 0 0
    1 1 0 1 0
    1 1 1 0 0
    1 1 1 1 1
  5. 分析逻辑功能:当且仅当A、B、C、D都为1时,输出Y才为1,因此该电路是一个4输入与门

5.3 组合逻辑电路设计

5.3.1 设计目的

根据逻辑需求,设计出实现该功能的组合逻辑电路

5.3.2 详细设计步骤

步骤1:分析逻辑需求

  • 明确电路的输入和输出
  • 确定输入输出的逻辑关系
  • 定义输入输出变量(用字母表示)

步骤2:列出真值表

  • 根据逻辑需求,列出所有输入组合对应的输出
  • 输入变量按二进制顺序排列
  • 输出变量根据逻辑关系填写

步骤3:写出逻辑表达式

  • 根据真值表,写出输出变量的最小项之和表达式
  • 形式:Y = Σm(…) (m为最小项编号)

步骤4:化简逻辑表达式

  • 利用布尔代数或卡诺图化简逻辑表达式
  • 得到最简与或式或其他所需形式

步骤5:选择逻辑门类型

  • 根据化简后的表达式,选择合适的逻辑门类型(与门、或门、与非门等)
  • 考虑电路的复杂度、成本、速度等因素

步骤6:画出逻辑电路图

  • 根据化简后的表达式和所选逻辑门,画出逻辑电路图
  • 注意门的扇入扇出限制
  • 合理布局,使电路清晰易懂
5.3.3 设计示例

示例:设计一个半加器电路

设计过程

  1. 分析逻辑需求

    • 半加器是实现两个1位二进制数相加的电路
    • 输入:A、B(两个加数)
    • 输出:S(和)、C(进位)
  2. 列出真值表

    A B S C
    0 0 0 0
    0 1 1 0
    1 0 1 0
    1 1 0 1
  3. 写出逻辑表达式

    • S = Σm(1, 2) = A¬B + ¬AB = A ⊕ B
    • C = Σm(3) = AB
  4. 化简表达式:已为最简形式

  5. 选择逻辑门

    • 和S:异或门
    • 进位C:与门
  6. 画出逻辑电路图

    A ---|\
         | ⊕ --- S
    B ---|/
    
    A ---|\
         | & --- C
    B ---|/
    

5.4 常用组合逻辑电路

5.4.1 编码器
5.4.1.1 基本概念
  • 功能:将输入的高电平信号转换为对应的二进制代码
  • 分类
    • 普通编码器:任何时刻只有一个输入有效
    • 优先编码器:允许多个输入同时有效,只对优先级最高的输入进行编码
5.4.1.2 普通编码器

2-1线编码器

  • 输入:2个(I0, I1)
  • 输出:1位二进制代码(Y)
  • 真值表:
    I0 I1 Y
    1 0 0
    0 1 1
  • 逻辑表达式:Y = I1

8-3线编码器

  • 输入:8个(I0-I7)
  • 输出:3位二进制代码(Y2, Y1, Y0)
  • 逻辑表达式:
    Y2 = I4 + I5 + I6 + I7
    Y1 = I2 + I3 + I6 + I7
    Y0 = I1 + I3 + I5 + I7
5.4.1.3 优先编码器

8-3线优先编码器(74LS148)

  • 功能:8个输入(I0-I7),3个输出(Y2-Y0)
  • 优先级:I7 > I6 > … > I0
  • 使能端
    • EI:输入使能(低电平有效)
    • EO:输出使能(低电平有效)
    • GS:编码状态标志(低电平有效,表示有编码输出)
  • 真值表(部分):
    EI I7 I6 I5 I4 I3 I2 I1 I0 Y2 Y1 Y0 GS EO
    1 x x x x x x x x 1 1 1 1 1
    0 0 0 0 0 0 0 0 0 1 1 1 1 0
    0 0 0 0 0 0 0 0 1 1 1 0 0 1
    0 0 0 0 0 0 0 1 x 1 0 1 0 1
    0 1 x x x x x x x 0 0 0 0 1
5.4.1.4 应用案例

键盘编码器

  • 将键盘的按键信号转换为对应的ASCII码
  • 通常使用优先编码器,处理按键同时按下的情况
5.4.2 译码器
5.4.2.1 基本概念
  • 功能:将输入的二进制代码转换为对应的输出信号
  • 分类
    • 二进制译码器:将n位二进制代码译为2ⁿ个输出
    • BCD译码器:将BCD码译为10个输出
    • 显示译码器:将二进制代码译为七段数码管的驱动信号
5.4.2.2 3-8线译码器(74LS138)

功能:将3位二进制代码译为8个输出

引脚功能

  • 输入:
    • A0-A2:3位二进制输入
    • G1, G2A, G2B:使能端(G1高电平有效,G2A、G2B低电平有效)
  • 输出:
    • Y0-Y7:8个输出(低电平有效)

真值表(部分):

G1 G2A G2B A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 x x x x x 1 1 1 1 1 1 1 1
x 1 x x x x 1 1 1 1 1 1 1 1
x x 1 x x x 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 1 1 1 1 1 1 1
1 0 0 0 0 1 1 0 1 1 1 1 1 1
1 0 0 0 1 0 1 1 0 1 1 1 1 1
1 0 0 1 1 1 1 1 1 1 1 1 1 0

逻辑表达式
Y0 = ¬(G1 · ¬G2A · ¬G2B · ¬A2 · ¬A1 · ¬A0)
Y1 = ¬(G1 · ¬G2A · ¬G2B · ¬A2 · ¬A1 · A0)

Y7 = ¬(G1 · ¬G2A · ¬G2B · A2 · A1 · A0)

5.4.2.3 显示译码器

BCD-七段显示译码器(74LS47)

  • 功能:将BCD码译为七段数码管的驱动信号
  • 输入
    • A0-A3:BCD码输入
    • LT:灯测试端(低电平有效,所有段全亮)
    • RBI:灭零输入端(低电平有效,熄灭无效的0)
    • BI/RBO:消隐输入/灭零输出端(低电平有效)
  • 输出
    • a-g:七段数码管驱动信号(低电平有效)

真值表(部分):

LT RBI BI/RBO A3 A2 A1 A0 a b c d e f g 显示
0 x 1 x x x x 0 0 0 0 0 0 0 8
1 0 0 0 0 0 0 1 1 1 1 1 1 1
1 x 1 0 0 0 0 0 0 0 0 0 0 1 0
1 x 1 0 0 0 1 1 0 0 1 1 1 1 1
1 x 1 0 0 1 0 0 0 1 0 0 1 0 2
5.4.2.4 应用案例

数码管显示电路

  • 使用BCD-七段显示译码器将BCD码转换为七段数码管的驱动信号
  • 用于数字仪表、计数器等显示设备
5.4.3 数据选择器
5.4.3.1 基本概念
  • 功能:从多路输入数据中选择一路输出
  • 分类
    • 4选1数据选择器
    • 8选1数据选择器
    • 16选1数据选择器
5.4.3.2 4选1数据选择器

功能:从4路输入中选择1路输出

引脚功能

  • 输入:
    • D0-D3:4路数据输入
    • A0-A1:地址输入(选择哪一路数据)
    • EN:使能端(低电平有效)
  • 输出:
    • Y:输出

真值表

EN A1 A0 Y
1 x x 0
0 0 0 D0
0 0 1 D1
0 1 0 D2
0 1 1 D3

逻辑表达式
Y = ¬EN · (¬A1¬A0D0 + ¬A1A0D1 + A1¬A0D2 + A1A0D3)

5.4.3.3 8选1数据选择器(74LS151)

功能:从8路输入中选择1路输出

引脚功能

  • 输入:
    • D0-D7:8路数据输入
    • A0-A2:地址输入
    • EN:使能端(低电平有效)
  • 输出:
    • Y:原码输出
    • W:反码输出

应用:实现任意逻辑函数

  • n变量逻辑函数可以用2ⁿ选1数据选择器实现
  • 方法:将n-1个变量作为地址输入,剩下的1个变量作为数据输入

示例:用8选1数据选择器实现Y = A⊕B⊕C

  • 将A、B作为地址输入(A2=A, A1=B)
  • 数据输入:D0=0, D1=1, D2=1, D3=0, D4=1, D5=0, D6=0, D7=1
  • 逻辑表达式:Y = ¬A¬B¬C + ¬AB¬C + A¬B¬C + AB¬C
5.4.4 加法器
5.4.4.1 半加器
  • 功能:实现两个1位二进制数相加,不考虑来自低位的进位
  • 输入:A、B(两个加数)
  • 输出:S(和)、C(进位)
  • 逻辑表达式
    S = A ⊕ B
    C = AB
5.4.4.2 全加器
  • 功能:实现两个1位二进制数相加,考虑来自低位的进位
  • 输入:A、B(两个加数)、CI(来自低位的进位)
  • 输出:S(和)、CO(向高位的进位)
  • 逻辑表达式
    S = A ⊕ B ⊕ CI
    CO = AB + ACI + BCI
5.4.4.3 多位加法器

串行进位加法器

  • 结构:将多个全加器串联,低位的进位输出连接到高位的进位输入
  • 特点
    • 结构简单
    • 速度慢(进位信号串行传递)

超前进位加法器(74LS283)

  • 功能:4位二进制超前进位加法器
  • 结构
    • 4个全加器
    • 超前进位逻辑(提前计算出每一位的进位)
  • 特点
    • 速度快(进位信号并行传递)
    • 结构复杂

真值表

A3 A2 A1 A0 B3 B2 B1 B0 CI S3 S2 S1 S0 CO
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0
5.4.4.4 应用案例

算术逻辑单元(ALU)

  • 实现算术运算(加法、减法、乘法等)
  • 实现逻辑运算(与、或、异或等)
  • 计算机CPU的核心部件
5.4.5 数值比较器
5.4.5.1 基本概念
  • 功能:比较两个二进制数的大小
  • 输出
    • A > B
    • A = B
    • A < B
5.4.5.2 1位数值比较器
  • 输入:A、B(两个1位二进制数)
  • 输出
    • Y(A>B) = A¬B
    • Y(A=B) = AB + ¬A¬B = A ⊙ B
    • Y(A<B) = ¬AB
5.4.5.3 4位数值比较器(74LS85)

功能:比较两个4位二进制数的大小

引脚功能

  • 输入:
    • A0-A3:4位二进制数A
    • B0-B3:4位二进制数B
    • IA>B, IA=B, IA<B:级联输入端(来自低位的比较结果)
  • 输出:
    • OA>B, OA=B, OA<B:比较结果输出

真值表(部分):

A3 B3 A2 B2 A1 B1 A0 B0 IA>B IA=B IA<B OA>B OA=B OA<B
1 0 x x x x x x x x x 1 0 0
0 1 x x x x x x x x x 0 0 1
A3=B3 1 0 x x x x x x x 1 0 0
A3=B3 0 1 x x x x x x x 0 0 1
A3=B3, A2=B2 1 0 x x x x x 1 0 0
A3=B3, A2=B2 0 1 x x x x x 0 0 1
A3=B3, A2=B2, A1=B1 1 0 x x x 1 0 0
A3=B3, A2=B2, A1=B1 0 1 x x x 0 0 1
A3=B3, A2=B2, A1=B1, A0=B0 x 1 x 0 1 0
A3=B3, A2=B2, A1=B1, A0=B0 1 0 x 1 0 0
A3=B3, A2=B2, A1=B1, A0=B0 0 x 1 0 0 1

应用:用于计算机中的比较指令、排序电路等

5.5 组合逻辑电路的竞争冒险

5.5.1 竞争与冒险的概念

竞争:输入信号通过不同路径到达输出的时间不同

冒险:由于竞争,在输出端产生的短暂的错误信号(毛刺)

5.5.2 冒险的类型

1. 0型冒险(偏1冒险)

  • 正常输出应为1,但出现短暂的0
  • 例如:Y = A + ¬A

2. 1型冒险(偏0冒险)

  • 正常输出应为0,但出现短暂的1
  • 例如:Y = A¬A
5.5.3 冒险的识别

代数法

  • 将逻辑表达式化简为与或式
  • 若存在相邻的最小项,且这两个最小项只有一个变量不同,则可能存在冒险

卡诺图法

  • 画出逻辑函数的卡诺图
  • 若存在两个相邻的1方格没有被同一组覆盖,则可能存在冒险
5.5.4 冒险的消除方法

1. 增加冗余项

  • 在逻辑表达式中增加冗余项,覆盖相邻的最小项
  • 例如:Y = AB + ¬AC → 增加冗余项BC,得到Y = AB + ¬AC + BC

2. 引入选通脉冲

  • 在输出端引入选通脉冲,只有在稳定状态时才允许输出
  • 选通脉冲的宽度和时间应合适,确保只在冒险结束后才打开

3. 使用滤波电容

  • 在输出端并联一个小电容(几十pF),滤除毛刺
  • 适用于对输出波形要求不高的场合

4. 采用格雷码

  • 使用格雷码作为输入,相邻状态只有1位变化,减少冒险的可能性

5.6 组合逻辑电路的设计实例

5.6.1 全减器设计

功能:实现两个1位二进制数相减,考虑来自低位的借位

输入:A(被减数)、B(减数)、BI(来自低位的借位)
输出:D(差)、BO(向高位的借位)

真值表

A B BI D BO
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1

逻辑表达式
D = A ⊕ B ⊕ BI
BO = ¬A(B + BI)

逻辑电路图

A ---|\
     | ⊕ ---|\
B ---|/     | ⊕ --- D
        |/
BI ---|/\

A ---|\
     | ¬ ---|\
        | & ---|\
B ---|\     | & --- BO
     | & ---|
BI ---|/
5.6.2 8421BCD码转余3码电路

功能:将8421BCD码转换为余3码

输入:A、B、C、D(8421BCD码)
输出:W、X、Y、Z(余3码)

转换关系:余3码 = 8421BCD码 + 3

真值表

A B C D W X Y Z
0 0 0 0 0 0 1 1
0 0 0 1 0 1 0 0
0 0 1 0 0 1 0 1
0 0 1 1 0 1 1 0
0 1 0 0 0 1 1 1
0 1 0 1 1 0 0 0
0 1 1 0 1 0 0 1
0 1 1 1 1 0 1 0
1 0 0 0 1 0 1 1
1 0 0 1 1 1 0 0

逻辑表达式
W = A + BC + BD
X = B¬C¬D + ¬BC + ¬BD
Y = CD + ¬C¬D
Z = ¬D

逻辑电路图

  • 略(根据逻辑表达式绘制)

5.7 常见问题与易错点

5.7.1 设计时未考虑约束条件
  • 问题:在设计具有约束条件的逻辑电路时,未考虑无关项
  • 解决方法:合理利用无关项,化简逻辑表达式,减少门的数量
5.7.2 未考虑门的扇入扇出限制
  • 问题:设计的电路中,门的输入数量超过扇入限制,或输出驱动的门数量超过扇出限制
  • 解决方法
    • 对于扇入限制:使用扩展器或多级门电路
    • 对于扇出限制:使用缓冲器或驱动器
5.7.3 未考虑竞争冒险
  • 问题:设计的电路存在竞争冒险,导致输出出现毛刺
  • 解决方法:采用增加冗余项、引入选通脉冲、使用滤波电容等方法消除冒险
5.7.4 逻辑表达式化简错误
  • 问题:在化简逻辑表达式时出现错误,导致电路功能错误
  • 解决方法
    • 多次检查化简过程
    • 同时使用布尔代数和卡诺图化简,验证结果
    • 通过真值表验证化简后的表达式

5.8 组合逻辑电路的发展趋势

  • 高速化:采用高速工艺和电路结构,提高响应速度
  • 低功耗:采用CMOS工艺和低功耗设计技术
  • 高集成度:将多个组合逻辑电路集成在一个芯片上
  • 可编程化:采用PLD、FPGA等可编程器件,提高设计灵活性
  • 模块化:采用模块化设计,提高设计效率和可维护性

6. 时序逻辑电路

6.1 时序逻辑电路的基本概念

6.1.1 定义与特点
  • 定义:输出不仅取决于当前输入,还与历史状态有关的逻辑电路
  • 特点
    1. 包含存储元件(触发器)
    2. 输出取决于当前输入和历史状态
    3. 具有反馈回路
    4. 可以实现时序控制和存储功能
6.1.2 结构组成
  • 组合逻辑电路:处理输入信号,产生输出和触发器的驱动信号
  • 存储电路:由触发器组成,存储电路的状态
  • 时钟信号:控制存储电路状态转换的时间
6.1.3 分类
6.1.3.1 按触发方式分类
  • 同步时序电路:所有触发器受同一时钟信号控制,状态转换在同一时刻发生
  • 异步时序电路:触发器不受同一时钟信号控制,状态转换不在同一时刻发生
6.1.3.2 按逻辑功能分类
  • 寄存器:存储多位二进制信息
  • 计数器:对输入脉冲进行计数
  • 序列检测器:检测特定的输入序列
  • 移位寄存器:实现数据的移位操作

6.2 触发器

6.2.1 触发器的基本概念
  • 功能:存储1位二进制信息的基本单元电路
  • 特点
    • 具有两个稳定状态(0和1)
    • 在触发信号作用下,可以从一个稳定状态转换到另一个稳定状态
    • 触发信号消失后,保持新的状态不变
6.2.2 基本RS触发器
6.2.2.1 电路结构
  • 由两个与非门交叉连接组成
  • 输入:S(置位端)、R(复位端)
  • 输出:Q、¬Q
6.2.2.2 逻辑符号
S ---|\
     | &--- Q
¬Q ---|/\
       |
       |/\
Q ---|\
     | &--- ¬Q
R ---|/
6.2.2.3 逻辑功能
  • 真值表

    S R Qⁿ Qⁿ⁺¹ 功能
    0 0 0 1 置1
    0 0 1 1 置1
    0 1 0 1 置1
    0 1 1 1 置1
    1 0 0 0 置0
    1 0 1 0 置0
    1 1 0 0 保持
    1 1 1 1 保持
  • 特性方程
    Qⁿ⁺¹ = S + ¬R·Qⁿ
    约束条件:S·R = 1(与非门组成的基本RS触发器)

  • 状态转换图

    0 <---|       |---> 1
          |       |
          |¬R     | S
          |       |
          |       |
          |---> 0 |<---
    
6.2.3 同步RS触发器
6.2.3.1 电路结构
  • 在基本RS触发器的基础上,增加两个与非门作为控制门
  • 输入:S、R、CP(时钟信号)
  • 输出:Q、¬Q
6.2.3.2 逻辑功能
  • 真值表

    CP S R Qⁿ Qⁿ⁺¹ 功能
    0 x x x Qⁿ 保持
    1 0 0 0 0 保持
    1 0 0 1 1 保持
    1 0 1 0 0 置0
    1 0 1 1 0 置0
    1 1 0 0 1 置1
    1 1 0 1 1 置1
    1 1 1 0 x 不定
    1 1 1 1 x 不定
  • 特性方程
    Qⁿ⁺¹ = S·¬CP + ¬R·Qⁿ·CP
    约束条件:S·R = 0(CP=1时)

6.2.4 主从RS触发器
6.2.4.1 电路结构
  • 由两个同步RS触发器级联组成,主触发器和从触发器
  • 时钟信号CP直接控制主触发器,经过反相后控制从触发器
6.2.4.2 工作原理
  • CP=1时,主触发器接收输入信号,从触发器保持不变
  • CP下降沿时,主触发器状态传送到从触发器,主触发器保持不变
6.2.5 D触发器
6.2.5.1 电路结构
  • 在同步RS触发器的基础上,增加一个非门,将R端与S端连接
  • 输入:D、CP
  • 输出:Q、¬Q
6.2.5.2 逻辑功能
  • 真值表

    CP D Qⁿ Qⁿ⁺¹ 功能
    0 x x Qⁿ 保持
    1 0 0 0 置0
    1 0 1 0 置0
    1 1 0 1 置1
    1 1 1 1 置1
  • 特性方程
    Qⁿ⁺¹ = D

6.2.5.3 边沿D触发器
  • 触发方式:仅在CP的上升沿或下降沿触发
  • 特点:抗干扰能力强,工作可靠
  • 逻辑符号:CP输入端有小圆圈表示下降沿触发,无小圆圈表示上升沿触发
6.2.6 JK触发器
6.2.6.1 电路结构
  • 在主从RS触发器的基础上,将Q和¬Q反馈到输入级
  • 输入:J、K、CP
  • 输出:Q、¬Q
6.2.6.2 逻辑功能
  • 真值表

    CP J K Qⁿ Qⁿ⁺¹ 功能
    0 x x x Qⁿ 保持
    1 0 0 0 0 保持
    1 0 0 1 1 保持
    1 0 1 0 0 置0
    1 0 1 1 0 置0
    1 1 0 0 1 置1
    1 1 0 1 1 置1
    1 1 1 0 1 翻转
    1 1 1 1 0 翻转
  • 特性方程
    Qⁿ⁺¹ = J·¬Qⁿ + ¬K·Qⁿ

6.2.6.3 边沿JK触发器
  • 触发方式:仅在CP的上升沿或下降沿触发
  • 特点:功能完备,使用灵活
6.2.7 T触发器
6.2.7.1 电路结构
  • 将JK触发器的J、K端连接在一起,作为T输入端
6.2.7.2 逻辑功能
  • 真值表

    CP T Qⁿ Qⁿ⁺¹ 功能
    0 x x Qⁿ 保持
    1 0 0 0 保持
    1 0 1 1 保持
    1 1 0 1 翻转
    1 1 1 0 翻转
  • 特性方程
    Qⁿ⁺¹ = T·¬Qⁿ + ¬T·Qⁿ = T ⊕ Qⁿ

6.2.7.3 T’触发器
  • T触发器的特殊情况,T恒为1
  • 特性方程:Qⁿ⁺¹ = ¬Qⁿ
  • 功能:每来一个时钟脉冲,状态翻转一次
6.2.8 触发器的逻辑功能转换
6.2.8.1 JK触发器转换为D触发器
  • 方法:令J = D,K = ¬D
  • 特性方程:Qⁿ⁺¹ = D·¬Qⁿ + D·Qⁿ = D
6.2.8.2 JK触发器转换为T触发器
  • 方法:令J = T,K = T
  • 特性方程:Qⁿ⁺¹ = T·¬Qⁿ + ¬T·Qⁿ = T ⊕ Qⁿ
6.2.8.3 D触发器转换为JK触发器
  • 方法:D = J·¬Qⁿ + ¬K·Qⁿ
  • 特性方程:Qⁿ⁺¹ = J·¬Qⁿ + ¬K·Qⁿ

6.3 寄存器

6.3.1 寄存器的基本概念
  • 功能:存储多位二进制信息
  • 组成:由多个触发器组成,每个触发器存储1位二进制信息
6.3.2 基本寄存器
6.3.2.1 电路结构
  • 由多个D触发器并联组成
  • 输入:n位数据Dₙ₋₁~D₀、CP
  • 输出:n位数据Qₙ₋₁~Q₀
6.3.2.2 工作原理
  • CP上升沿时,输入数据Dₙ₋₁~D₀存入触发器
  • CP=0时,触发器保持原有状态
6.3.2.3 74LS373八D锁存器
  • 功能:8位数据锁存器
  • 引脚
    • D₀~D₇:8位数据输入
    • Q₀~Q₇:8位数据输出
    • G:锁存允许端(高电平有效)
    • OE:输出允许端(低电平有效)
6.3.3 移位寄存器
6.3.3.1 单向移位寄存器

左移寄存器

  • 数据从最右端触发器的D端串行输入
  • 每个触发器的Q端连接到相邻左边触发器的D端
  • 工作原理:
    • 第1个CP脉冲,数据存入最右端触发器
    • 第2个CP脉冲,最右端触发器的数据移到相邻左边触发器,新数据存入最右端触发器
    • 依此类推,经过n个CP脉冲,n位数据全部移入寄存器

右移寄存器

  • 数据从最左端触发器的D端串行输入
  • 每个触发器的Q端连接到相邻右边触发器的D端
6.3.3.2 双向移位寄存器

4位双向移位寄存器(74LS194)

  • 功能:可实现左移、右移、并行输入/输出、保持等功能

  • 引脚

    • D₀~D₃:4位并行数据输入
    • Q₀~Q₃:4位并行数据输出
    • SR:右移串行输入
    • SL:左移串行输入
    • S₁、S₀:工作模式控制端
    • CP:时钟端(上升沿有效)
    • CR:清零端(低电平有效)
  • 工作模式

    S₁ S₀ 工作模式
    0 0 保持
    0 1 右移
    1 0 左移
    1 1 并行输入
6.3.3.3 移位寄存器的应用

串行-并行转换

  • 串行输入,并行输出
  • 用于数据通信中的串并转换

并行-串行转换

  • 并行输入,串行输出
  • 用于数据通信中的并串转换

移位寄存器型计数器

  • 环形计数器:将移位寄存器的最后一位输出反馈到第一位输入
  • 扭环形计数器:将移位寄存器的最后一位反相后反馈到第一位输入

6.4 计数器

6.4.1 计数器的基本概念
  • 功能:对输入脉冲的个数进行计数
  • 分类
    • 按计数方向:加法计数器、减法计数器、可逆计数器
    • 按计数进制:二进制计数器、十进制计数器、任意进制计数器
    • 按触发方式:同步计数器、异步计数器
6.4.2 异步计数器
6.4.2.1 异步二进制加法计数器

电路结构

  • 由多个JK触发器组成,每个触发器的J、K端接高电平(T’触发器)
  • 低位触发器的Q端连接到高位触发器的CP端

工作原理

  • 每来一个CP脉冲,最低位触发器翻转
  • 低位触发器从1变为0时,产生下降沿,触发高位触发器翻转

状态图

000 → 001 → 010 → 011 → 100 → 101 → 110 → 111 → 000
6.4.2.2 异步十进制加法计数器

电路结构

  • 在4位异步二进制加法计数器的基础上,增加反馈逻辑
  • 当计数到1010时,通过反馈逻辑使计数器清零

状态图

0000 → 0001 → 0010 → 0011 → 0100 → 0101 → 0110 → 0111 → 1000 → 1001 → 0000
6.4.3 同步计数器
6.4.3.1 同步二进制加法计数器

电路结构

  • 由多个JK触发器组成,所有触发器的CP端连接在一起
  • 低位触发器的Q端连接到高位触发器的J、K端

工作原理

  • 所有触发器在同一时钟脉冲作用下同时翻转
  • 高位触发器的翻转条件是所有低位触发器都为1

特性方程

  • 对于第i位触发器,Jᵢ = Kᵢ = Qᵢ₋₁·Qᵢ₋₂·…·Q₀
6.4.3.2 同步十进制加法计数器

电路结构

  • 在4位同步二进制加法计数器的基础上,增加反馈逻辑
  • 当计数到1001时,通过反馈逻辑使计数器在下次CP脉冲时回到0000
6.4.3.3 集成同步计数器

4位同步二进制计数器(74LS161)

  • 功能:4位同步二进制加法计数

  • 引脚

    • CP:时钟端(上升沿有效)
    • CR:清零端(低电平有效)
    • LD:置数端(低电平有效)
    • EP、ET:使能端(高电平有效)
    • D₀~D₃:并行数据输入端
    • Q₀~Q₃:并行数据输出端
    • CO:进位输出端
  • 功能表

    CR LD EP ET CP 功能
    0 x x x x 异步清零
    1 0 x x 同步置数
    1 1 0 x x 保持
    1 1 x 0 x 保持(CO=0)
    1 1 1 1 计数

十进制同步计数器(74LS160)

  • 功能与74LS161相似,但为十进制计数
  • 计数范围:0000~1001
6.4.4 任意进制计数器的设计
6.4.4.1 反馈清零法

设计步骤

  1. 选择合适的集成计数器
  2. 确定清零信号的产生条件
  3. 设计反馈逻辑电路
  4. 画出逻辑电路图

示例:用74LS161设计6进制计数器

  • 74LS161是4位二进制计数器,计数范围0000~1111
  • 6进制计数器的状态为0000~0101
  • 当计数到0110时,产生清零信号
  • 反馈逻辑:CR = ¬(Q₂·Q₁)
6.4.4.2 反馈置数法

设计步骤

  1. 选择合适的集成计数器
  2. 确定置数信号的产生条件和置数数值
  3. 设计反馈逻辑电路
  4. 画出逻辑电路图

示例:用74LS161设计6进制计数器

  • 选择置数数值为1010(10)
  • 当计数到1111(15)时,产生置数信号
  • 计数范围:1010~1111(6个状态)
  • 反馈逻辑:LD = ¬(Q₃·Q₂·Q₁·Q₀)
6.4.4.3 级联法

设计步骤

  1. 将多个集成计数器级联
  2. 确定各级计数器的计数进制
  3. 设计级联逻辑电路
  4. 画出逻辑电路图

示例:用两片74LS161设计256进制计数器

  • 每片74LS161是16进制计数器
  • 两片级联后,总计数进制为16×16=256
  • 级联方式:将低位的CO端连接到高位的EP、ET端

6.5 时序逻辑电路的分析方法

6.5.1 同步时序逻辑电路的分析

分析步骤

  1. 确定电路组成:识别触发器类型和组合逻辑电路
  2. 写出各方程
    • 输出方程:输出与输入、状态的逻辑关系
    • 驱动方程:触发器输入与输入、状态的逻辑关系
    • 状态方程:将驱动方程代入触发器的特性方程
  3. 列出状态表
    • 列出所有输入组合和状态组合
    • 计算次态和输出
  4. 画出状态图
    • 以圆圈表示状态
    • 以箭头表示状态转换
    • 箭头旁标注输入/输出
  5. 画出时序图
    • 以时间为横轴,画出输入、状态、输出的波形
  6. 分析逻辑功能
    • 描述电路的逻辑功能
    • 确定电路的类型(计数器、寄存器等)
6.5.2 分析示例

示例:分析下图所示的同步时序逻辑电路

CP ---|     |
      |FF0  |--- Q0
      |     |
      |FF1  |--- Q1
      |     |
      |FF2  |--- Q2

分析过程

  1. 确定电路组成

    • 3个JK触发器,均接成T’触发器(J=K=1)
    • 无输入信号,输出为Q2Q1Q0
  2. 写出各方程

    • 输出方程:Y = Q2Q1Q0
    • 驱动方程:J0=K0=1, J1=K1=1, J2=K2=1
    • 状态方程:Q0ⁿ⁺¹=¬Q0ⁿ, Q1ⁿ⁺¹=¬Q1ⁿ, Q2ⁿ⁺¹=¬Q2ⁿ
  3. 列出状态表

    Q2ⁿ Q1ⁿ Q0ⁿ Q2ⁿ⁺¹ Q1ⁿ⁺¹ Q0ⁿ⁺¹ Y
    0 0 0 1 1 1 0
    1 1 1 0 0 0 1
  4. 画出状态图

    000 <---|       |---> 111
            |       |
            | 1/1   | 0/0
            |       |
    
  5. 画出时序图

    CP:    ↑  ↑  ↑  ↑
    Q2:  0 1 0 1 0 1
    Q1:  0 1 0 1 0 1
    Q0:  0 1 0 1 0 1
    Y:   0 1 0 1 0 1
    
  6. 分析逻辑功能

    • 该电路是一个3位二进制异步计数器
    • 每来一个CP脉冲,状态翻转一次
    • 输出Y在状态为111时为1,否则为0

6.6 时序逻辑电路的设计方法

6.6.1 同步时序逻辑电路的设计

设计步骤

  1. 分析逻辑需求
    • 确定输入、输出和状态变量
    • 定义状态含义
  2. 建立原始状态图和状态表
    • 根据逻辑需求,画出原始状态图
    • 列出原始状态表
  3. 状态化简
    • 合并等价状态,减少状态数量
    • 得到最简状态表
  4. 状态编码
    • 将状态用二进制代码表示
    • 确定编码方案
  5. 选择触发器类型
    • 通常选择D触发器或JK触发器
  6. 求出输出方程和驱动方程
    • 根据状态表,写出输出方程
    • 根据状态表和触发器类型,写出驱动方程
  7. 画出逻辑电路图
    • 根据输出方程和驱动方程,画出逻辑电路图
  8. 验证电路功能
    • 分析电路的逻辑功能,验证是否符合设计要求
6.6.2 设计示例

示例:设计一个同步十进制加法计数器

设计过程

  1. 分析逻辑需求

    • 输入:CP
    • 输出:Q3Q2Q1Q0
    • 状态:0000~1001
  2. 建立原始状态图和状态表

    0000 → 0001 → 0010 → 0011 → 0100 → 0101 → 0110 → 0111 → 1000 → 1001 → 0000
    
  3. 状态化简

    • 已为最简状态
  4. 状态编码

    • 采用自然二进制编码
  5. 选择触发器类型

    • 选择JK触发器
  6. 求出输出方程和驱动方程

    • 输出方程:无外部输出
    • 驱动方程:
      J0=K0=1
      J1=Q0·¬Q3, K1=Q0
      J2=Q1Q0, K2=Q1Q0
      J3=Q2Q1Q0, K3=Q0
  7. 画出逻辑电路图

    • 略(根据驱动方程绘制)
  8. 验证电路功能

    • 分析状态转换,验证是否符合十进制计数规律

6.6 时序逻辑电路的应用

6.6.1 序列信号发生器

功能:产生特定的二进制序列

分类

  • 移位寄存器型:由移位寄存器和反馈逻辑组成
  • 计数器型:由计数器和组合逻辑组成

示例:产生序列信号00011101

设计过程

  1. 确定序列长度:8位
  2. 选择移位寄存器长度:3位(2³=8)
  3. 设计反馈逻辑:D = Q2⊕Q0
  4. 初始状态:000
  5. 状态转换:000→001→011→111→110→101→010→100→000
6.6.2 序列检测器

功能:检测输入序列中是否包含特定的序列

分类

  • 重叠检测:允许检测到的序列与下一个序列重叠
  • 非重叠检测:不允许检测到的序列与下一个序列重叠

示例:设计一个101序列检测器

设计过程

  1. 定义状态:
    • S0:初始状态
    • S1:检测到1
    • S2:检测到10
    • S3:检测到101
  2. 画出状态图:
    S0 --1/0--> S1 --0/0--> S2 --1/1--> S3
     |          |          |          |
     0/0        1/0        0/0        0/0
     |          |          |          |
     v          v          v          v
     S0         S1         S0         S1
    
  3. 选择触发器类型:D触发器
  4. 设计驱动方程和输出方程
  5. 画出逻辑电路图

6.7 常见问题与易错点

6.7.1 触发器的触发方式
  • 问题:误将电平触发的触发器当作边沿触发使用
  • 解决方法:仔细查看触发器的逻辑符号,注意CP输入端是否有小圆圈
6.7.2 异步清零与同步清零
  • 问题:混淆异步清零和同步清零的区别
  • 解决方法
    • 异步清零:不受时钟信号控制,清零信号有效时立即清零
    • 同步清零:受时钟信号控制,清零信号有效时,在时钟脉冲作用下清零
6.7.3 状态化简不彻底
  • 问题:状态化简时未合并所有等价状态
  • 解决方法
    • 仔细分析状态表,找出所有等价状态
    • 利用隐含表法进行状态化简
6.7.4 时序逻辑电路的竞争冒险
  • 问题:时序逻辑电路中存在竞争冒险
  • 解决方法
    • 采用同步时序电路,减少竞争冒险的可能性
    • 在输出端增加滤波电容
    • 采用格雷码编码,减少状态转换时的翻转次数

6.8 时序逻辑电路的发展趋势

  • 高速化:采用高速触发器和逻辑门,提高时钟频率
  • 低功耗:采用CMOS工艺和低功耗设计技术
  • 高集成度:将多个时序逻辑电路集成在一个芯片上
  • 可编程化:采用FPGA、CPLD等可编程器件,提高设计灵活性
  • 模块化:采用模块化设计,提高设计效率和可维护性

7. 存储器与可编程逻辑器件

7.1 半导体存储器

7.1.1 存储器的基本概念
  • 功能:存储二进制信息的器件

  • 分类

    • 按存储介质:半导体存储器、磁存储器、光存储器
    • 按存取方式:随机存取存储器(RAM)、只读存储器(ROM)、顺序存取存储器、直接存取存储器
    • 按断电后信息是否丢失:易失性存储器、非易失性存储器
  • 存储器容量

    • 表示方法:字数×位数
    • 示例:1K×8位表示有1024个存储单元,每个单元存储8位二进制信息
    • 单位转换:1K=1024,1M=1024K,1G=1024M
  • 存储器的主要技术指标

    • 存储容量
    • 存取速度(存取时间、存取周期)
    • 功耗
    • 可靠性
7.1.2 只读存储器(ROM)
7.1.2.1 基本结构
  • 组成
    • 地址译码器:将输入的地址码转换为字选线信号
    • 存储矩阵:由大量存储单元组成,存储二进制信息
    • 输出缓冲器:增强带负载能力,控制数据输出
7.1.2.2 掩模ROM
  • 定义:由厂家在生产过程中用掩模技术写入信息的ROM

  • 特点

    • 信息永久存储,不可修改
    • 批量生产时成本低
    • 适用于固定程序和数据的存储
  • 结构

    • 二极管ROM:用二极管的导通或截止表示存储的0或1
    • 晶体管ROM:用晶体管的导通或截止表示存储的0或1
    • MOS管ROM:用MOS管的导通或截止表示存储的0或1
7.1.2.3 可编程ROM(PROM)
  • 定义:用户可以一次性编程的ROM

  • 结构

    • 存储矩阵由熔断丝或反熔丝组成
    • 未编程时,所有存储单元为1或0
    • 编程时,通过大电流熔断熔断丝或击穿反熔丝,改变存储单元的状态
  • 特点

    • 只能编程一次,不可擦除
    • 适合小批量生产
7.1.2.4 可擦除可编程ROM(EPROM)
  • 定义:可以多次擦除和编程的ROM

  • 结构

    • 存储单元由浮栅MOS管(FAMOS)组成
    • 未编程时,浮栅上无电荷,漏源极之间导通
    • 编程时,通过高压电子注入浮栅,形成导电沟道
    • 擦除时,用紫外线照射浮栅,使电子逸出
  • 特点

    • 可以多次擦除和编程(通常1000次以上)
    • 擦除时间长(约20分钟)
    • 擦除时需要专用的紫外线擦除器
    • 存储的信息在紫外线照射下会丢失,需要封装在带石英窗口的陶瓷外壳中
7.1.2.5 电可擦除可编程ROM(EEPROM)
  • 定义:可以用电信号擦除和编程的ROM

  • 结构

    • 存储单元由浮栅隧道氧化层MOS管(Flotox)组成
    • 编程和擦除通过隧道效应进行
    • 擦除时,在控制栅上加负电压,使浮栅上的电子返回衬底
    • 编程时,在控制栅上加正电压,使电子注入浮栅
  • 特点

    • 可以在线擦除和编程(通常10000次以上)
    • 擦除时间短(毫秒级)
    • 可以按字节擦除
    • 不需要专用的擦除器
    • 存储的信息可以长期保存(10年以上)
7.1.2.6 快闪存储器(Flash Memory)
  • 定义:一种新型的EEPROM,具有更高的擦除和编程速度

  • 结构

    • 存储单元由浮栅MOS管组成
    • 擦除时,通过隧道效应使浮栅上的电子逸出
    • 编程时,通过热电子注入使电子进入浮栅
  • 特点

    • 可以快速擦除和编程(擦除时间毫秒级,编程时间微秒级)
    • 可以按块擦除(通常64KB或128KB为一块)
    • 存储容量大(从MB到GB级)
    • 功耗低
    • 可靠性高(擦写次数可达100万次以上)
  • 应用

    • USB闪存盘
    • 数码相机存储卡
    • 手机内存
    • 固态硬盘(SSD)
7.1.3 随机存取存储器(RAM)
7.1.3.1 静态RAM(SRAM)
  • 定义:用触发器作为存储单元的RAM

  • 结构

    • 存储单元:由6个MOS管组成的触发器
    • 地址译码器:行地址译码器和列地址译码器
    • 读写控制电路:控制数据的读出和写入
    • 输入输出缓冲器:增强带负载能力
  • 工作原理

    • 写入数据:地址信号选中存储单元,写入控制信号有效,数据写入触发器
    • 读出数据:地址信号选中存储单元,读出控制信号有效,触发器的数据输出到数据总线
  • 特点

    • 速度快(存取时间ns级)
    • 不需要刷新电路
    • 功耗高
    • 集成度低
    • 成本高
  • 应用

    • 高速缓存(Cache)
    • 寄存器组
    • 静态存储器
7.1.3.2 动态RAM(DRAM)
  • 定义:用电容作为存储单元的RAM

  • 结构

    • 存储单元:由1个MOS管和1个电容组成
    • 地址译码器:行地址译码器和列地址译码器
    • 读写控制电路:控制数据的读出和写入
    • 刷新电路:定期刷新存储单元中的数据
    • 输入输出缓冲器:增强带负载能力
  • 工作原理

    • 写入数据:地址信号选中存储单元,写入控制信号有效,MOS管导通,数据写入电容
    • 读出数据:地址信号选中存储单元,读出控制信号有效,MOS管导通,电容上的电荷通过MOS管输出到数据总线
    • 刷新:由于电容的漏电,存储的数据会逐渐丢失,需要定期刷新(通常每2ms刷新一次)
  • 特点

    • 速度较慢(存取时间μs级)
    • 需要刷新电路
    • 功耗低
    • 集成度高
    • 成本低
  • 应用

    • 计算机内存
    • 图形卡内存
    • 大容量存储器
7.1.3.3 SRAM与DRAM的比较
特性 SRAM DRAM
存储单元 触发器 电容+MOS管
集成度
存取速度
功耗
成本
刷新 不需要 需要
应用 Cache、寄存器 主内存
7.1.4 存储器的扩展
7.1.4.1 位扩展
  • 功能:增加存储器的位数
  • 方法:将多个存储器芯片的地址线、控制线并联,数据线单独引出
  • 示例:用2片1K×4位的RAM扩展为1K×8位的RAM
    • 地址线:A0~A9并联
    • 控制线:CS、WE、OE并联
    • 数据线:第1片的D0D3作为低4位,第2片的D0D3作为高4位
7.1.4.2 字扩展
  • 功能:增加存储器的字数
  • 方法:将多个存储器芯片的数据线、控制线并联,地址线通过译码器扩展
  • 示例:用2片1K×8位的RAM扩展为2K×8位的RAM
    • 数据线:D0~D7并联
    • 控制线:WE、OE并联
    • 地址线:A0~A9并联,A10通过译码器控制芯片的CS端
7.1.4.3 字位同时扩展
  • 功能:同时增加存储器的字数和位数
  • 方法:结合位扩展和字扩展的方法
  • 示例:用4片1K×4位的RAM扩展为2K×8位的RAM
    • 首先将2片1K×4位的RAM位扩展为1K×8位的RAM
    • 然后将2组1K×8位的RAM字扩展为2K×8位的RAM

7.2 可编程逻辑器件(PLD)

7.2.1 PLD的基本概念
  • 定义:用户可以编程实现特定逻辑功能的集成电路

  • 特点

    • 灵活性高,可根据需要编程
    • 缩短设计周期,降低设计成本
    • 便于修改和升级
    • 集成度高,可靠性高
  • 分类

    • 简单PLD:PROM、PLA、PAL、GAL
    • 复杂PLD:CPLD、FPGA
7.2.2 PLD的基本结构
  • 组成

    • 与阵列:产生乘积项
    • 或阵列:产生逻辑函数
    • 输入缓冲器:增强输入信号的驱动能力
    • 输出缓冲器:增强输出信号的驱动能力,提供不同的输出结构
  • PLD的表示方法

    • 固定连接:用交叉点表示
    • 可编程连接:用×表示
    • 断开连接:无标记
7.2.3 可编程只读存储器(PROM)
  • 结构

    • 与阵列:固定(全译码)
    • 或阵列:可编程
  • 工作原理

    • 与阵列产生所有可能的乘积项
    • 或阵列通过编程选择需要的乘积项,实现逻辑函数
  • 特点

    • 结构简单,成本低
    • 与阵列固定,资源利用率低
    • 适合实现组合逻辑函数
  • 应用

    • 存储固定的数据和程序
    • 实现简单的组合逻辑函数
7.2.4 可编程逻辑阵列(PLA)
  • 结构

    • 与阵列:可编程
    • 或阵列:可编程
  • 工作原理

    • 与阵列通过编程产生需要的乘积项
    • 或阵列通过编程选择需要的乘积项,实现逻辑函数
  • 特点

    • 资源利用率高
    • 结构复杂,成本高
    • 适合实现复杂的组合逻辑函数
  • 应用

    • 实现复杂的组合逻辑函数
    • 设计专用集成电路(ASIC)
7.2.5 可编程阵列逻辑(PAL)
  • 结构

    • 与阵列:可编程
    • 或阵列:固定
  • 工作原理

    • 与阵列通过编程产生需要的乘积项
    • 或阵列固定,每个输出固定连接到若干个乘积项
  • 特点

    • 结构简单,成本低
    • 或阵列固定,灵活性有限
    • 输出结构多样(组合输出、寄存器输出、双向I/O等)
  • 应用

    • 实现中等复杂度的组合逻辑和时序逻辑函数
    • 设计专用集成电路(ASIC)
7.2.6 通用阵列逻辑(GAL)
  • 定义:一种电可擦除、可重复编程的PLD

  • 结构

    • 与阵列:可编程
    • 或阵列:固定
    • 输出逻辑宏单元(OLMC):可配置为不同的输出结构
  • 特点

    • 电可擦除、可重复编程(通常10000次以上)
    • 输出逻辑宏单元可配置,灵活性高
    • 可加密,防止非法复制
    • 适合中小规模逻辑设计
  • 应用

    • 实现各种组合逻辑和时序逻辑函数
    • 设计中小规模专用集成电路
    • 替代TTL和CMOS通用集成电路
7.2.7 复杂可编程逻辑器件(CPLD)
  • 定义:由多个可编程逻辑块(LAB)和互连资源组成的PLD

  • 结构

    • 可编程逻辑块(LAB):由多个宏单元组成
    • 互连资源:连接各个LAB的信号路径
    • I/O控制块:控制输入输出信号
  • 工作原理

    • 每个宏单元包含与阵列、或阵列和触发器
    • 宏单元通过互连资源连接,实现复杂的逻辑功能
    • 编程时,通过配置存储器设置互连资源和宏单元的功能
  • 特点

    • 集成度高(可达百万门级)
    • 速度快(ns级)
    • 编程简单,使用方便
    • 适合实现复杂的组合逻辑和时序逻辑函数
    • 可以在系统编程(ISP)
  • 应用

    • 实现复杂的数字系统
    • 设计大规模专用集成电路
    • 替代中小规模ASIC
    • 用于工业控制、通信、消费电子等领域
7.2.8 现场可编程门阵列(FPGA)
  • 定义:由大量的可编程逻辑单元(CLB)、互连资源和I/O块组成的PLD

  • 结构

    • 可编程逻辑单元(CLB):由查找表(LUT)和触发器组成
    • 互连资源:包括可编程开关矩阵、互连线段和布线通道
    • I/O块:控制输入输出信号
    • 专用功能模块:如RAM、乘法器、锁相环(PLL)等
  • 工作原理

    • 查找表(LUT)实现组合逻辑函数
    • 触发器实现时序逻辑函数
    • 互连资源连接各个CLB,实现复杂的逻辑功能
    • 编程时,通过配置存储器设置互连资源和CLB的功能
  • 特点

    • 集成度极高(可达千万门级)
    • 速度快(ns级)
    • 灵活性高,可以实现各种复杂的数字系统
    • 可以在系统编程(ISP)
    • 适合实现大规模、高复杂度的数字系统
    • 成本高
  • 应用

    • 实现大规模、高复杂度的数字系统
    • 设计高性能专用集成电路
    • 用于通信、计算机、消费电子、航空航天等领域
    • 原型验证和快速产品开发
7.2.9 CPLD与FPGA的比较
特性 CPLD FPGA
结构 基于乘积项 基于查找表
集成度 中等(数千到百万门) 高(百万到千万门)
速度 快(ns级) 快(ns级)
功耗 较高 较低
灵活性 较高 极高
编程方式 电可擦除 SRAM(需要外部配置)或Flash
适合应用 中等复杂度的数字系统 高复杂度的数字系统
成本 较低 较高
7.2.10 PLD的编程
  • 编程工具

    • 硬件工具:编程器、下载电缆
    • 软件工具:开发环境(如Quartus II、Vivado、ISE等)
  • 编程语言

    • 硬件描述语言(HDL):VHDL、Verilog HDL
    • 原理图输入
    • 状态图输入
  • 编程流程

    1. 设计输入:用HDL或原理图描述逻辑功能
    2. 编译综合:将设计转换为门级网表
    3. 适配布局:将网表映射到具体的PLD器件
    4. 时序仿真:验证设计的时序性能
    5. 编程下载:将配置数据下载到PLD器件
    6. 测试验证:验证设计的功能和性能
7.2.11 PLD的应用
  • 通信领域

    • 路由器、交换机
    • 调制解调器
    • 网络接口卡
  • 计算机领域

    • 中央处理器(CPU)
    • 图形处理器(GPU)
    • 内存控制器
  • 消费电子领域

    • 数字电视
    • 智能手机
    • 数码相机
  • 工业控制领域

    • 可编程逻辑控制器(PLC)
    • 工业自动化设备
    • 机器人控制系统
  • 航空航天领域

    • 卫星通信系统
    • 导航系统
    • 飞行控制系统

7.3 存储器与PLD的发展趋势

  • 存储器的发展趋势

    • 存储容量不断增加
    • 存取速度不断提高
    • 功耗不断降低
    • 非易失性存储器的广泛应用
    • 新型存储器的研究(如阻变存储器、相变存储器等)
  • PLD的发展趋势

    • 集成度不断提高
    • 速度不断提高
    • 功耗不断降低
    • 设计工具不断完善
    • 专用功能模块的集成
    • 可编程片上系统(SoPC)的发展

8. 数模与模数转换

8.1 概述

8.1.1 数模与模数转换的基本概念
  • 模拟信号:连续变化的信号,如温度、压力、声音、图像等
  • 数字信号:离散的信号,只有两种状态(0和1)
  • 数模转换(D/A转换):将数字信号转换为模拟信号的过程
  • 模数转换(A/D转换):将模拟信号转换为数字信号的过程
  • 转换器:实现D/A或A/D转换的电路或器件
8.1.2 转换系统的基本组成

模拟-数字转换系统

模拟信号 → 采样保持电路 → A/D转换器 → 数字信号

数字-模拟转换系统

数字信号 → D/A转换器 → 模拟信号
8.1.3 转换器的主要技术指标
  • 分辨率:转换器能够分辨的最小模拟信号变化量

    • 表示方法:位数(n位)或百分比
    • 计算公式:分辨率 = 满量程电压 / (2ⁿ - 1)
  • 转换精度:转换结果与理论值的接近程度

    • 绝对精度:实际输出与理论输出的最大偏差
    • 相对精度:绝对精度与满量程的比值
  • 转换速度:完成一次转换所需的时间

    • 建立时间(D/A转换):从输入数字信号到输出稳定的时间
    • 转换时间(A/D转换):从启动转换到输出稳定的时间
  • 线性度:转换器的实际转换特性与理想直线的偏离程度

    • 积分非线性(INL):实际转换曲线与理想直线的最大偏差
    • 微分非线性(DNL):相邻两个转换点之间的实际间隔与理想间隔的偏差
  • 量程:转换器能够处理的模拟信号范围

8.2 数模转换器(DAC)

8.2.1 DAC的基本原理
  • 工作原理:将输入的数字信号转换为对应的模拟电压或电流
  • 转换关系
    • 设数字输入为D = dₙ₋₁dₙ₋₂…d₁d₀(n位二进制数)
    • 则模拟输出为:V₀ = Vᵣₑբ × (D / 2ⁿ)
    • 其中Vᵣₑբ为参考电压
8.2.2 DAC的基本结构
  • 组成
    • 参考电压源
    • 数字输入寄存器
    • 位权网络
    • 求和放大器
8.2.3 常用DAC类型
8.2.3.1 权电阻网络DAC

电路结构

  • 由n个权电阻、n个电子开关和一个运算放大器组成
  • 权电阻的阻值为R, 2R, 4R, …, 2ⁿ⁻¹R
  • 电子开关由数字输入控制,将权电阻连接到参考电压或地

工作原理

  • 数字输入的每一位控制一个电子开关
  • 权电阻网络将数字信号转换为加权电流
  • 运算放大器将加权电流转换为模拟电压

特点

  • 结构简单
  • 权电阻的阻值范围大,精度难保证
  • 适合低分辨率DAC
8.2.3.2 R-2R梯形网络DAC

电路结构

  • 由n个R电阻、n个2R电阻、n个电子开关和一个运算放大器组成
  • 电阻只有R和2R两种,精度易保证

工作原理

  • 电子开关由数字输入控制,将梯形网络的节点连接到参考电压或地
  • 梯形网络将数字信号转换为加权电流
  • 运算放大器将加权电流转换为模拟电压

特点

  • 电阻种类少,精度易保证
  • 转换速度快
  • 适合高分辨率DAC
  • 应用广泛
8.2.3.3 权电流DAC

电路结构

  • 由n个恒流源、n个电子开关和一个运算放大器组成
  • 恒流源的电流为I, I/2, I/4, …, I/2ⁿ⁻¹

工作原理

  • 数字输入的每一位控制一个电子开关
  • 恒流源产生加权电流
  • 运算放大器将加权电流转换为模拟电压

特点

  • 转换精度高
  • 转换速度快
  • 温度特性好
  • 适合高精度DAC
8.2.3.4 倒T型R-2R DAC

电路结构

  • 由n个R电阻、n个2R电阻、n个电子开关和一个运算放大器组成
  • 电子开关将梯形网络的节点连接到运算放大器的虚地或地

工作原理

  • 电子开关由数字输入控制
  • 倒T型网络将数字信号转换为加权电流
  • 运算放大器将加权电流转换为模拟电压

特点

  • 转换速度快(各节点电压恒定,开关切换时无建立时间)
  • 电阻种类少,精度易保证
  • 适合高速DAC
8.2.4 集成DAC

示例:DAC0832

  • 功能:8位并行D/A转换器
  • 结构
    • 双缓冲结构(输入寄存器和DAC寄存器)
    • R-2R梯形电阻网络
    • 电流输出
  • 引脚
    • DI0~DI7:8位数字输入
    • IOUT1、IOUT2:电流输出
    • VREF:参考电压(-10V~+10V)
    • RFB:反馈电阻端
    • CS、WR1、WR2、XFER:控制端
  • 工作方式
    • 单缓冲方式
    • 双缓冲方式
    • 直通方式

应用

  • 波形生成
  • 数控电源
  • 音频信号处理
  • 电机控制

8.3 模数转换器(ADC)

8.3.1 ADC的基本原理
  • 工作原理:将模拟信号转换为对应的数字信号
  • 转换过程
    1. 采样:在离散的时间点上对模拟信号进行采样
    2. 保持:保持采样得到的模拟电压
    3. 量化:将模拟电压转换为离散的数字量
    4. 编码:将量化后的数字量转换为二进制代码
8.3.2 ADC的基本结构
  • 组成
    • 采样保持电路
    • 量化编码电路
    • 控制逻辑
8.3.3 采样定理
  • 内容:为了能从采样信号中恢复原模拟信号,采样频率必须大于等于模拟信号最高频率的2倍
  • 公式:fₛ ≥ 2fₘₐₓ
    • 其中fₛ为采样频率,fₘₐₓ为模拟信号的最高频率
8.3.4 常用ADC类型
8.3.4.1 并行比较型ADC

电路结构

  • 由2ⁿ⁻¹个比较器、2ⁿ⁻¹个D触发器、一个优先级编码器和一个参考电压源组成

工作原理

  • 参考电压源产生2ⁿ⁻¹个参考电压
  • 比较器将输入模拟电压与参考电压比较,产生比较结果
  • D触发器锁存比较结果
  • 优先级编码器将比较结果转换为二进制代码

特点

  • 转换速度极快(ns级)
  • 结构复杂,集成度低
  • 功耗大
  • 适合高速、低分辨率ADC
8.3.4.2 逐次逼近型ADC

电路结构

  • 由采样保持电路、比较器、D/A转换器、逐次逼近寄存器(SAR)和控制逻辑组成

工作原理

  • 采样保持电路对模拟信号采样并保持
  • SAR从最高位开始,依次设置每位的值,通过D/A转换器转换为模拟电压
  • 比较器将D/A转换结果与输入模拟电压比较,确定该位的值
  • 重复上述过程,直到确定所有位的值

特点

  • 转换速度快(μs级)
  • 结构简单,集成度高
  • 功耗低
  • 适合中高速、中高分辨率ADC
  • 应用广泛
8.3.4.3 双积分型ADC

电路结构

  • 由积分器、比较器、计数器、控制逻辑和参考电压源组成

工作原理

  • 第一次积分:对输入模拟电压积分一定时间
  • 第二次积分:对参考电压反向积分,直到积分器输出为0
  • 计数器记录第二次积分的时间,该时间与输入模拟电压成正比

特点

  • 转换精度高
  • 抗干扰能力强(对工频干扰抑制能力好)
  • 转换速度慢(ms级)
  • 适合高精度、低速ADC
  • 应用于数字万用表、测量仪器等
8.3.4.4 流水线型ADC

电路结构

  • 由多个级联的子ADC组成,每个子ADC转换n位
  • 包含采样保持电路、子ADC、DAC和求和放大器

工作原理

  • 采样保持电路对模拟信号采样并保持
  • 第一级子ADC转换高n位,DAC将其转换为模拟电压
  • 求和放大器将输入模拟电压与DAC输出相减,得到残差电压
  • 残差电压输入到下一级子ADC,转换次高n位
  • 重复上述过程,直到转换完所有位

特点

  • 转换速度快(ns级)
  • 分辨率高
  • 功耗大
  • 适合高速、高分辨率ADC
  • 应用于通信、视频处理等领域
8.3.4.5 Σ-Δ型ADC

电路结构

  • 由Σ-Δ调制器和数字滤波器组成

工作原理

  • Σ-Δ调制器对输入模拟信号进行过采样和噪声整形
  • 数字滤波器对调制器输出的高速低分辨率数字信号进行滤波和抽取
  • 得到低速高分辨率的数字信号

特点

  • 转换精度极高
  • 抗干扰能力强
  • 转换速度慢
  • 适合高精度、低速ADC
  • 应用于音频处理、测量仪器等
8.3.5 集成ADC

示例:ADC0809

  • 功能:8位8通道逐次逼近型ADC
  • 结构
    • 8通道模拟多路开关
    • 地址锁存与译码电路
    • 比较器
    • 8位D/A转换器
    • 逐次逼近寄存器
    • 三态输出锁存缓冲器
  • 引脚
    • IN0~IN7:8路模拟输入
    • ADDA、ADDB、ADDC:通道地址选择
    • START:转换启动信号
    • EOC:转换结束信号
    • OE:输出使能信号
    • CLOCK:时钟信号
    • VREF(+)、VREF(-):参考电压
    • D0~D7:8位数字输出

应用

  • 数据采集系统
  • 工业控制
  • 智能仪器仪表
  • 消费电子

示例:ADS1256

  • 功能:24位高精度Σ-Δ型ADC
  • 特点
    • 分辨率高(24位)
    • 转换精度高
    • 抗干扰能力强
    • 低功耗
  • 应用
    • 高精度测量仪器
    • 医疗设备
    • 工业自动化
    • 科学研究

8.4 转换器的选择与应用

8.4.1 转换器的选择原则
  • 根据系统要求选择分辨率
  • 根据系统要求选择转换速度
  • 根据系统要求选择转换精度
  • 考虑输入输出特性
  • 考虑功耗和电源电压
  • 考虑成本和可用性
8.4.2 转换器的应用实例
8.4.2.1 数字音频系统

组成

  • 麦克风:将声音转换为模拟电信号
  • 前置放大器:放大模拟信号
  • 低通滤波器:滤除高频噪声
  • A/D转换器:将模拟信号转换为数字信号
  • 数字信号处理器:处理数字信号
  • D/A转换器:将数字信号转换为模拟信号
  • 功率放大器:放大模拟信号
  • 扬声器:将模拟信号转换为声音
8.4.2.2 数据采集系统

组成

  • 传感器:将物理量转换为模拟电信号
  • 信号调理电路:放大、滤波、隔离等
  • 采样保持电路:采样并保持模拟信号
  • A/D转换器:将模拟信号转换为数字信号
  • 微处理器:处理数字信号
  • 存储器:存储数据
  • 通信接口:传输数据

8.5 发展趋势

  • 高分辨率:不断提高转换器的分辨率,满足高精度应用需求
  • 高速化:不断提高转换速度,满足高速信号处理需求
  • 低功耗:降低功耗,适合便携式设备和电池供电系统
  • 集成化:将转换器与其他功能模块集成在同一芯片上,如集成微处理器、存储器、通信接口等
  • 数字化:采用数字信号处理技术提高转换性能,如Σ-Δ型ADC
  • 智能化:集成自校准、自诊断等功能,提高转换器的可靠性和易用性

9. 数字集成电路

9.1 集成电路分类

  • 按集成度

    • SSI(小规模):1-10个门/片
    • MSI(中规模):10-100个门/片
    • LSI(大规模):100-10000个门/片
    • VLSI(超大规模):>10000个门/片
  • 按制造工艺

    • TTL(晶体管-晶体管逻辑):速度快,功耗较高
    • CMOS(互补金属氧化物半导体):功耗低,集成度高,抗干扰能力强

9.2 TTL与CMOS电路的接口

  • TTL驱动CMOS:需要提升TTL输出高电平(使用上拉电阻)
  • CMOS驱动TTL:需要增加电流驱动能力(使用缓冲器)

10. 数字电路应用

10.1 数字系统设计流程

  1. 需求分析
  2. 功能设计
  3. 逻辑设计
  4. 电路实现
  5. 测试与验证

10.2 典型应用

  • 数字计算机:CPU、内存、接口电路
  • 通信系统:数字调制解调、编码解码
  • 控制系统:数字控制器、PLC
  • 消费电子:手机、电视、数码相机
  • 仪器仪表:数字万用表、示波器

11. 实验与仿真

11.1 数字电路实验

  • 实验设备:数字电路实验箱、示波器、信号发生器、万用表
  • 实验内容:逻辑门测试、组合逻辑电路设计、时序逻辑电路设计

11.2 仿真软件

  • Multisim:直观的电路仿真,适合入门
  • Quartus II:FPGA开发,支持VHDL/Verilog
  • Proteus:嵌入式系统仿真

12. 实际应用场景与工程实践注意事项

12.1 实际应用场景

12.1.1 计算机系统
  • CPU:中央处理器,包含算术逻辑单元、控制器、寄存器等
  • 内存:存储程序和数据,包括RAM、ROM、Cache等
  • 主板:连接各个硬件组件,包含各种数字电路
  • 接口电路:USB、HDMI、以太网等接口的数字电路
12.1.2 通信系统
  • 调制解调器:实现数字信号和模拟信号的转换
  • 路由器:实现网络数据的路由和转发
  • 交换机:实现局域网内的数据交换
  • 无线通信设备:手机、WiFi路由器等设备中的数字电路
12.1.3 工业控制
  • PLC(可编程逻辑控制器):用于工业自动化控制的数字电路系统
  • 传感器接口:将传感器信号转换为数字信号
  • 电机控制:直流电机、步进电机、伺服电机的数字控制电路
  • 工业总线:CAN、Profibus、Ethernet/IP等工业通信总线
12.1.4 消费电子
  • 智能手机:包含处理器、内存、摄像头、触摸屏等数字电路
  • 数字电视:数字信号处理、解码、显示驱动等电路
  • 数码相机:图像传感器、图像处理、存储等电路
  • 智能家居设备:智能音箱、智能灯泡、智能门锁等中的数字电路
12.1.5 医疗设备
  • 心电图机:将心电信号转换为数字信号并显示
  • 超声波诊断仪:超声信号的数字处理和图像生成
  • 监护仪:生命体征的数字监测和显示
  • 医疗成像设备:CT、MRI等设备中的数字电路

12.2 工程实践注意事项

12.2.1 电源设计
  • 电源稳定性:使用稳压电源,确保电源电压稳定
  • 电源滤波:在电源输入端和芯片电源引脚处添加滤波电容
  • 电源完整性:确保电源和地的阻抗足够低,减少电源噪声
  • 多电源设计:不同电压等级的电源要分开设计,避免串扰
12.2.2 接地设计
  • 单点接地:低频电路采用单点接地,减少接地环路
  • 多点接地:高频电路采用多点接地,减少接地阻抗
  • 数字地与模拟地分离:避免数字电路的噪声影响模拟电路
  • 接地平面:在PCB上使用接地平面,提高接地质量
12.2.3 信号完整性
  • 传输线设计:高频信号采用传输线设计,控制特征阻抗
  • 阻抗匹配:在信号源和负载端进行阻抗匹配,减少反射
  • 信号串扰:保持信号线之间的距离,使用屏蔽线或差分信号
  • 时钟设计:时钟信号单独布线,避免与其他信号交叉
12.2.4 电磁兼容(EMC)
  • 电磁干扰(EMI):减少电路对外的电磁辐射
  • 电磁敏感性(EMS):提高电路对外部电磁干扰的抵抗能力
  • 屏蔽设计:对敏感电路进行屏蔽,减少电磁干扰
  • 滤波设计:在输入输出端添加滤波器,滤除电磁干扰
12.2.5 PCB设计
  • 布局设计:合理安排元器件位置,减少信号线长度
  • 布线设计:遵循信号线的走向规则,减少电磁干扰
  • 过孔设计:减少过孔的数量和阻抗,避免信号反射
  • 散热设计:确保大功率元器件的散热良好
12.2.6 可靠性设计
  • 冗余设计:关键电路采用冗余设计,提高系统可靠性
  • 容错设计:设计容错机制,允许系统在部分故障时继续工作
  • ESD保护:在输入输出端添加ESD保护电路,防止静电损坏
  • 热设计:考虑温度对电路性能的影响,进行热设计
12.2.7 测试与验证
  • 功能测试:验证电路的逻辑功能是否正确
  • 时序测试:验证电路的时序性能是否满足要求
  • 性能测试:验证电路的速度、功耗等性能指标
  • 可靠性测试:进行温度循环、振动、冲击等可靠性测试

13. 常见问题解答与易错点分析

13.1 数制与编码常见问题

13.1.1 二进制小数转换精度问题
  • 问题:某些十进制小数无法用有限位二进制小数精确表示
  • 示例:(0.1)₁₀ = (0.0001100110011…)₂
  • 解决方法:根据实际需要保留适当位数,常用4-8位二进制小数
13.1.2 十六进制字母大小写问题
  • 问题:十六进制中的A-F与a-f混淆
  • 解决方法:十六进制中字母大小写等价,但通常使用大写表示
13.1.3 补码运算溢出问题
  • 问题:补码运算时可能产生溢出
  • 解决方法
    • 检查最高位的进位和次高位的进位是否相同
    • 使用更多位的补码表示

13.2 布尔代数与逻辑函数化简常见问题

13.2.1 公式化简错误
  • 问题:误用布尔代数定律
  • 示例:错误地认为A + B·C = (A + B)·C
  • 解决方法
    • 熟练掌握布尔代数的基本定律
    • 多次检查化简过程
    • 使用卡诺图验证化简结果
13.2.2 卡诺图化简错误
  • 问题
    • 分组大小不是2ⁿ
    • 分组不包含所有1方格
    • 没有选择最大的分组
    • 没有考虑相邻的边界
  • 解决方法
    • 严格遵循卡诺图化简规则
    • 多次检查分组结果
    • 使用不同的分组方式验证

13.3 逻辑门与组合逻辑电路常见问题

13.3.1 未使用的输入处理
  • 问题:未使用的逻辑门输入悬空
  • 解决方法
    • TTL门:未使用的输入应接高电平(通过电阻接VCC)或低电平
    • CMOS门:未使用的输入应接高电平(VDD)或低电平(GND)
13.3.2 扇入扇出问题
  • 问题:逻辑门的输入数量超过扇入限制,或输出驱动的门数量超过扇出限制
  • 解决方法
    • 使用扩展器或多级门电路增加扇入
    • 使用缓冲器或驱动器增加扇出
13.3.3 竞争冒险问题
  • 问题:组合逻辑电路中存在竞争冒险,导致输出出现毛刺
  • 解决方法
    • 增加冗余项
    • 引入选通脉冲
    • 使用滤波电容
    • 采用格雷码编码

13.4 时序逻辑电路常见问题

13.4.1 触发器触发方式问题
  • 问题:误将电平触发的触发器当作边沿触发使用
  • 解决方法:仔细查看触发器的逻辑符号,注意CP输入端是否有小圆圈
13.4.2 异步清零与同步清零问题
  • 问题:混淆异步清零和同步清零的区别
  • 解决方法
    • 异步清零:不受时钟信号控制,清零信号有效时立即清零
    • 同步清零:受时钟信号控制,清零信号有效时,在时钟脉冲作用下清零
13.4.3 时序电路中的竞争冒险问题
  • 问题:时序电路中存在竞争冒险,导致状态错误
  • 解决方法
    • 采用同步时序电路
    • 在输出端增加滤波电容
    • 采用格雷码编码

13.5 存储器与PLD常见问题

13.5.1 ROM与RAM的选择问题
  • 问题:不确定何时使用ROM,何时使用RAM
  • 解决方法
    • ROM:存储固定不变的数据和程序
    • RAM:存储需要频繁读写的数据
13.5.2 PLD选型问题
  • 问题:不知道选择哪种PLD(CPLD或FPGA)
  • 解决方法
    • CPLD:适合中等复杂度、速度要求高的设计
    • FPGA:适合大规模、高复杂度、灵活性要求高的设计
13.5.3 PLD编程问题
  • 问题:PLD编程后功能不正确
  • 解决方法
    • 检查设计输入是否正确
    • 检查编译综合过程是否有错误
    • 检查时序约束是否合理
    • 进行功能仿真和时序仿真

13.6 数模与模数转换常见问题

13.6.1 采样定理应用问题
  • 问题:采样频率不够,导致信号失真
  • 解决方法:确保采样频率大于等于信号最高频率的2倍
13.6.2 转换器精度与分辨率问题
  • 问题:混淆精度和分辨率的概念
  • 解决方法
    • 分辨率:转换器能够分辨的最小模拟信号变化量
    • 精度:转换结果与理论值的接近程度
13.6.3 参考电压问题
  • 问题:参考电压不稳定,导致转换误差
  • 解决方法
    • 使用高精度、高稳定性的参考电压源
    • 对参考电压进行滤波和稳压

14. 总结与展望

14.1 数字电路发展趋势

  • 集成度不断提高:Moore定律继续发挥作用,芯片集成度不断提高
  • 速度不断提升:电路工作频率不断提高,数据传输速率不断提升
  • 功耗不断降低:绿色电子成为趋势,低功耗设计技术不断发展
  • 可编程逻辑器件的广泛应用:CPLD、FPGA等可编程器件在数字系统设计中的应用越来越广泛
  • 数字与模拟混合电路(SoC):系统级芯片(SoC)集成了数字电路、模拟电路和微处理器
  • 人工智能与数字电路结合:AI芯片、神经网络加速器等新兴数字电路不断涌现
  • 量子计算:量子计算机的研究和发展为数字电路带来新的机遇和挑战

14.2 学习建议

  • 掌握基本概念和定理:扎实掌握数字电路的基本概念、定理和分析设计方法
  • 多做练习题:通过大量的练习题,熟练掌握逻辑函数化简、组合逻辑电路和时序逻辑电路的分析设计
  • 重视实验和仿真:通过实验和仿真,提高动手能力和解决实际问题的能力
  • 关注数字电路的新发展:关注数字电路领域的新技术、新器件和新应用
  • 学习硬件描述语言:掌握VHDL或Verilog HDL,提高数字系统设计能力
  • 参与项目实践:通过参与实际项目,积累工程实践经验

14.3 未来展望

数字电路作为现代电子技术的基础,将继续在各个领域发挥重要作用。随着人工智能、物联网、5G通信等新技术的发展,数字电路将面临新的挑战和机遇。未来的数字电路将更加集成化、高速化、低功耗化和智能化,为人类社会的发展做出更大的贡献。


附录

常用逻辑符号对照表

逻辑门 国标符号 美国符号
与门 &
或门 ≥1
非门 1 ¬
与非门 ≥1 NAND
或非门 ≥1 NOR
异或门 =1 XOR
同或门 = XNOR

常用集成电路引脚图

  • 74LS00:四2输入与非门
  • 74LS04:六反相器
  • 74LS08:四2输入与门
  • 74LS32:四2输入或门
  • 74LS138:3-8线译码器
  • 74LS151:8选1数据选择器
  • 74LS161:4位同步二进制计数器
  • 74LS194:4位双向移位寄存器

参考资料

  1. 《数字电子技术基础》(阎石)
  2. 《数字电路》(康华光)
  3. 《Digital Design》(M. Morris Mano)
  4. 网络资源与在线课程
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐