组合逻辑分析
所谓组合逻辑分析,就是根据已知逻辑电路图,找出组合逻辑电路的输入与输出关系,确定在什么样的输入取值组合下对应的输出为1 。
一般步骤如下:
- 阅读组合逻辑电路图
- 列写逻辑函数表达式
- 列写逻辑真值表
- 说明电路的逻辑功能
- 做出电路图的评价与改进
方法如下:
- 对于较简单的逻辑电路:“逐级电平推导”法
- 对于较复杂的逻辑电路:“列写布尔表达式”法或“数字波形图法”等
- 迫不得已的情况下:“列写真值表”法
逐级电平推导法
方法核心
先假设输出为逻辑1或0,然后逐级向前推导,直到确定输入的逻辑值。举例说明
这里仅分析(a)图
。
首先最后一个元器件为与非门
,所以:
假设F = 1,可知:x1 = 0
或者x2 = 0
x1 = 0
的时候,由于:
可以知道**A = 1**
且**B = 1**
同理,x2 = 0
可以知道**A = 0**
且**B = 0**
所以综上:
当**A = 1**
且**B = 1**
,或者**A = 0**
且**B = 0**
时候,F输出1。列写布尔表达式法
方法核心
使用布尔表达式表示最后F的输出。举例说明
从左往右依次把布尔表达式写出可得:
化简可得:
所以这个电路等同于一个四路或门。数字波形图分析法
方法核心
这种方法是对逻辑门的所有输入变量施以输入波形,逐级画出各个门电路的输出波形,乃至画出最后的输出波形。举例说明
不常用,所以简单看看就好了。
列写逻辑电路真值表法
方法核心
简单的来说就是写出对应输入和输出的真值表。
一般情况下先化简布尔表达式再写真值表。
举例说明
首先写出F的表达式:
接着化简改表达式:
根据表达式写出真值表:
组合逻辑中的竞争冒险
定义
在组合电路中,当逻辑门有两个互补输入信号同时向相反状态变化时,短暂出现同时为1的情况,输出端可能产生过渡干扰脉冲的现象称为竞争冒险。
这种一般出现在信号状态转化过程中,原因是信号的转化具有延迟。
如上图中的(a)所示,,也就是说F应该恒定输出为1,
但是当A从0变换到1的过程中,由于信号延迟,B部分为1,此时A也为1,F此时短暂为0。
消除冒险竞争
- 加选通脉冲
此处的P即为选通脉冲。
当A=C=1,,存在竞争冒险。
在接收了输入信号并且电路达到了新的稳态之后,才加入选通脉冲。
该选通脉冲通常是P=0
,使电路处于封锁状态,只有在接收了输入信号并且电路达到了新的稳态之后,才有脉冲P=1
,允许电路输出。
- 修改逻辑设计
上例中,我们可以把表达式变换一下,根据常用布尔公式可知:
上式增加了AC项以后,函数关系不变,但当A=C=1时,输出F恒为1,不再产生干扰脉冲。所以,把电路按上式修改,即可消除竞争冒。
组合逻辑设计
组合逻辑设计的步骤
- 逻辑问题的描述
- 逻辑函数的简化
- 逻辑函数变化
-
逻辑问题的描述
定义
所谓逻辑问题的描述,就是将文字描述的设计要求抽象为一个逻辑表达式。
通常的方法是: 先建立输入输出逻辑变量的真值表,
- 再由真值表写出逻辑表达式
- 有些情况下,可由设计要求直接建立逻辑表达式。
举例说明
例如:设计一个多数表决电路,以判断A、B、C三人中是否多数赞同
首先根据题意写出真值表:
写出F输出为1的表达式:
所以F的表达式为:
默认输入都是1。 复杂情况下也可以先写出布尔表达式,再化简。 这里画图就比较简单,就省略了。
利用任意项的逻辑设计
定义
举例说明
用与非门设计一个判别电路,判别8421码的十进制的值≥5。
首先还是根据题目写出真值表:
后面6位由于超出10进制的范围,所以被标记为任意项(无关项)。
接下来画卡诺图对布尔表达式化简:
忘记的参见上一章。
化简可得:
注意要求,只使用与非门。
组合逻辑的电路等价交换(不重要)
狄摩根定律的应用
利用与非门/非或门进行等价变换
如图所示:
图示,左边的逻辑门电路实现与或运算,中间输出与输入带两个小圆圈符号,它表示“非”运算,连续两个非,可以将非符号(小圆圈)取消,因此等价于右边的逻辑电路。
显然右边逻辑电路的传输速度快2倍。
数据选择器和分配器
数据选择器
定义
是多路输入、单路输出的组合逻辑构件。(也就是通过控制线控制输出)
一般用于分时复用。
概念解析
如图所示
其中:
一般还会再加一根线,控制是否输出。
其真值表如下:
带有上划线的线表示低电平有效,不带的表示高电平有效。
可以发现通过S1和S0
两条线就可以控制Y的输出是哪一个输入D。
数据分配器
定义
是单路输入、多路输出的组合逻辑构件。
一般用于数据交换。
概念解析
如图所示
W就是四个输出端口。
画出真值表:
可以得到W的表达式:
译码器和编码器
译码器
所谓译码,可以简单理解为翻译代码。实现译码功能的组合逻辑电路被称为译码器。
输入的是一组二进制代码,输出的是一组高低电平信号(只有一个定义是有效的)。 最常见的就是地址译码器,传入一组二进制数,决定哪个地址的电子元件输入/输出有效。
三八译码器
结构图如下:
所谓三八译码器,就是三输入(D**0,D1,D2),八输出(Y0-Y7**)。
其中
G1G2AG2B
作为控制信号,决定这个译码器是否工作。
输出Y
带有上划线代表的低电平(0)有效,以Y0
为例,只有三输入都为0,且控制信号有效(也就是控制线输出1,G1=1,G2A = G2B = 0),Y0
有效可以输出。
输入对应的二进制编码也对应了输出的Y的下标。 比如这里的Y0,三输入的就是
0 0 0
,如果是Y7
三输入就是1 1 1
二四译码器
编码器
编码器和译码器相反,是把所处理的信息转换为一组二进制代码。
例如把数字5存储为BCD码为:0101
二进制编码器
普通编码器
- 任何时刻只允许一个编码信号,否则输出将发生混乱
- 输入信号的一个输入端取值为1,或者一个输入端取值为0
如图所示,I方面只有一个能为1,其他都为0.
优先编码器
优先编码器是一种允许同时输入两个以上有效输入信号的编码器,只是对其中的优先级最高的一个信号进行编码。
以74LS148
编码器为例:
其中:
输入输出真值表如下: