第 3 章 组合逻辑电路
第一讲 组合逻辑电路概述
数字逻辑电路概述
- 数字逻辑电路可以被看成是带有若干输入端和若干输出端的黑盒子,每个输入端和输出端只有高电平、低电平两种状态,对应1和0
- 黑盒内部可以看成由若干个元件和若干连线相互连接而成
- 元件本身又可以是一个数字逻辑电路
- 连线可以是输入连线、内部连线和输出连线
- 黑盒内部可以看成由若干个元件和若干连线相互连接而成
- 数字逻辑电路分为组合(combinational)逻辑电路和时序(sequential)逻辑电路
- 组合逻辑电路的输出值仅依赖于当前输入
- 时序逻辑电路的输出不仅依赖于输入值,还与当前状态(现态)有关,电路中存在存储部件或反馈结构
组合逻辑电路
构成规则
- 最基本的组合逻辑电路是逻辑门电路,实现基本逻辑运算
- 组合逻辑电路构成规则
- 每个元件本身是组合逻辑电路
- 输出连线不能互连(可能会短路,导致电路被烧坏)
- 输出连线不能反馈到元件输入端
逻辑电路图
- 逻辑电路图描述数字电路内部元件的结构及其相互连接关系
- 每个逻辑电路图的输出信号可以用输入信号的逻辑表达式表示它们之间的逻辑关系
- 逻辑电路图给出了逻辑关系(逻辑表达式)的一种实现方式
- 一个真值表可能对应多个不同的逻辑表达式,从而对应多个不同的逻辑电路图,因而可以有多个不同的实现方式
- 任何逻辑表达式都可以写成与、或、非三种基本运算的逻辑组合
- 任何逻辑表达式都可以用基本逻辑门画出对应的逻辑电路图
- 一个逻辑门的输出可以作为另一个逻辑门的输入
- 扇入系数:一个逻辑门所允许的输入端的最大数目
- 受限于元件的电气特性。可以通过级联的方式,实现更多的输入端
- 扇出系数:一个逻辑门输出端信号所能驱动的下一级输入端的最大数目
- 受限于元件的电器特性。可以通过连接缓冲器,实现更多的输出端
- 扇入系数:一个逻辑门所允许的输入端的最大数目
- 画逻辑电路图时,需要依据逻辑运算的优先级确定逻辑门间的链接关系
- 优先级高的运算对应的逻辑门的输出,是优先级低的运算对应逻辑门的输入
- 优先级顺序:非 > 与和与非 > 异或和同或 > 或和或非
位逻辑运算在输入端和输出端标记位数
两级与多级组合逻辑电路
- 任何逻辑表达式都可以转化成与-或表达式和或-与表达式
- 任何组合逻辑电路都可以是一个两级电路
- 两级组合逻辑电路的优劣:
- 好处:比多级组和逻辑电路的传输时间更短,速度更快
- 坏处:使用两级组合电路所需的硬件数量可能会增长
- 采用两级还是多级,需要在速度和成本之间进行权衡
组合逻辑电路设计
- 无关项:输入组合对应任意输出(输入组合不应该真值表里)。
- 无关项的取值不会对结果造成印象,因此在化简时可以被视作0或1
- 卡诺图化简时上记作 d
- 非法值:信号值不能被有效识别为高电平或低电平,处于不确定状态。
- 比如短路后的输出
- 三态门(three-state gate):是一种重要的总线接口电路,也称三态缓冲器,其输出既可以是通常的逻辑值1或0,又可以是高阻态
- 高阻态(Hi-Z):输出处于非正常逻辑态的第三种电气态,类似电路断开
- 三态门有一个额外的输出使能控制端 EN
- 用途:可用于连接总线,多个三态输出连在一起!

第二讲 典型组合逻辑部件
- 复杂数字系统通常采用层次化、模块化方式构建,由基本组合逻辑部件和时序逻辑部件相互连接构建。
- 基本的组合逻辑部件的功能有:译码与编码、选择与分配、比较、运算、缓存并传送等。
- 组合电路功能的实现方式:
- 采用分立SSI(small-scale integration)门电路来实现(逻辑函数),但集成度较低。
- 使用只读存储器ROM来实现(真值表),集成化容易,但只能按照最小项列表的形式表示,效率较低。
- 用提供单一功能的逻辑部件来实现,如译码器、编码器、加法器、比较器等。
译码器和编码器
- 编码/译码功能:信号与信号编码之间的转换,如:
位信号编码 位信号
译码器(decoder)
- 一种多输入、多输出的组合电路
- “编码→信号”的转换,输入端比输出端少
- 通常采用
中取 1 码(单热点 one-hot)编码表征信号 - 可以通过使能端EN来控制电路实现映射功能
2-4 译码器
- 输入编码为 2 位,对应选择 4 位输出
- 输出端高电平有效,表示选中输出,对应输入信号的最小项
- 通过使能控制端EN(Enable Control)禁止或实现相应功能
- EN=0时,输出全为0:消除干扰、功能扩展
3-8 译码器(74X138)
- 输入编码为 3 位,对应选择 8 位输出
- 输出端低电平有效,对应输入信号的最大项
- 有 3 个使能控制端,只有在 G1=1,G2A_L=0,G2B_L=0 时才有效

- 使用 5 个 74X138 实现 5-32 译码器

七段显示译码器
- 二极管的连接方式
- 公共阳极(共阳极):输入为低电平,二极管导通
- 公共阴极(共阴极):输入为高电平,二极管导通
编码器(encoder)
- 输入为单热点(one-hot)码,输出是输入信号的二进制编码,最常见的是
编码器,也称为二进制编码器。 个输入端 个输出端
- 分类
- 互斥(唯一输入)编码器
- 非互斥编码器:优先级编码器
8-3 编码器
- 输入端
是一组互斥变量,每次只有一个输入端 为 1 - 电路实现即为或门

优先权编码器
- 多个输入可同时为 1,但只对优先级高的输入进行编码输出

多路选择器和多路分配器
多路选择器(MUX):多输入单输出
2-路选择器

4-路选择器

多路选择器的使用
基于多路选择器,可以实现组合逻辑电路的功能:使用有 n 个选择器的多路选择器,实现逻辑函数(真值表)。方法简单,但并不经济,输入端并没有得到充分的利用,而且电路实现更加复杂。
多路分配器(DMUX):单输入多输出
分时传送
将多路选择器和多路分配器连用,以实现多通道数据的分时传送。

半加器和全加器
半加器(Half Adder, HA)
仅考虑加数和被加数,不考虑低位来的进位。
容易发现,S 为异或门输出,CO 为与门输出

全加器(Full Adder, FA)
输入为加数、被加数和低位进位 Cin
全加器也可以作为奇数判断器(输入为奇数个 1 时,F 才会输出 1)

串行进位加法器/行波进位加法器
- 规格:两个二进制字(x 和 y),每个 n 位,相加
- 方法:n 个全加器的级联,属于迭代电路
- 特点:简单、速度慢

超前进位加法器
- 特点:使用超前进位部件提前计算进位,但增加了逻辑部件

组合逻辑部件扩展
级联二进制译码器
通过在使能端加入逻辑部件,用工作和禁止状态实现级联二进制译码器
第三讲 组合逻辑部件时序分析
传输延迟和最小延迟
信号通过连线和电路元件时会有一定的延迟(Delay) 电路延迟取决于电路内部的设计以及外部特性,影响因素包括但不限于:
- 连线的长短、元件的数量
- 电路制造工艺、工作电压
- 环境干扰、温度等外在条件
- 高低电平的转换过渡时间 任何逻辑电路,从输入信号的改变,到引起的输出信号改变,都有一定的延迟 常用时序图来反应电路的延迟
- 下降沿延迟
:输入变化引起相应输出从高到低变化的时间 - 上升沿延迟
:输入变化引起相应输出从低到高变化的时间 通常取信号转换时间中间点来测量延迟时间
传输延迟
- 关键路径:一个组合逻辑电路在输入和输出之间经过的最长路径
- 传输延迟:关键路径上所有元件的传输延迟之和
- 最小延迟:最短路径上所有元件的最小延迟之和

实际环境下,不同门电路延迟一般不同,忽略信号在导线传输的延迟
竞争冒险
- 竞争(race):如果存在某个输入信号经过两条或两条以上的路径作用到输出端,由于各路径延迟不同,因而该输入信号对输出端会发生先后不同的影响,该现象称为竞争。
- 毛刺(glitch):由于竞争的存在,在输入信号变化的瞬间,输出端可能会输出不正确的尖峰信号,这种信号称为毛刺。

解决办法:
- 增加低通滤波器、电容;
- 在设计电路时就进行规避。
静态冒险的检测
- 卡诺图检测:在卡诺图中存在两个质蕴涵项相切(四联通),当从一个质蕴涵项向另一个转换时,一旦有传递延迟,则产生险态。
- 通过添加一致项(cnosensus)解决静态冒险现象。(在同一卡诺圈内切换不会产生竞争冒险现象)