第 4章 组合逻辑电路第 4 章 组合逻辑电路
4.1 组合逻辑电路的分析
4.2 组合逻辑电路的设计
4.3 常用 MSI组合逻辑器件及应用
4.4 组合逻辑电路中的竞争与冒险第 4章 组合逻辑电路
4.1 组合逻辑电路的分析所谓逻辑电路的分析,就是找出给定逻辑电路输出和输入之间的逻辑关系,并指出电路的逻辑功能 。 分析过程一般按下列步骤进行:
① 根据给定的逻辑电路,从输入端开始,逐级推导出输出端的逻辑函数表达式 。
② 根据输出函数表达式列出真值表 。
③ 用文字概括出电路的逻辑功能。
第 4章 组合逻辑电路
【 例 4-1】 分析图 4-2所示组合逻辑电路的逻辑功能 。
解,根据给出的逻辑图,逐级推导出输出端的逻辑函数表达式:
ACBCABACBCABPPPF
ACPBCPABP
321
321,,
第 4章 组合逻辑电路
&
&
&
&
P
2
P
1
P
3
F
A
B
C
图 4 - 2
第 4章 组合逻辑电路表 4-1 例 4-1真值表
A B C F
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
0
0
1
0
1
1
1
由真值表可以看出,在三个输入变量中,只要有两个或两个以上的输入变量为 1,则输出函数 F为 1,否则为 0,它表示了一种,少数服从多数,的逻辑关系 。 因此可以将该电路概括为:三变量多数表决器 。
第 4章 组合逻辑电路
【 例 4-2】 分析图 4-3(a)所示电路,指出该电路的逻辑功能 。
图 4-3 例 4-2
(a) 一位全加器; (b) 一位全加器符号
=1
&
≥1
1
A
i
B
i
C
i
S
i
C
i +1
( a )
全加器
S
i
C
i +1
A
i
B
i
C
i
( b )
=1
第 4章 组合逻辑电路解:
① 写出函数表达式。
iiiiii
iiii
BACBAC
CBAS
)(1
② 列真值表。
Ai Bi Ci Ci+1 Si
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0
0 1
0 1
1 0
0 1
1 0
1 0
1 1
表 4 - 2 例 4 - 2真值表第 4章 组合逻辑电路
③ 分析功能 。
由真值表可见,当三个输入变量 Ai,Bi,Ci中有一个为
1或三个同时为 1时,输出 Si=1,而当三个变量中有两个或两个以上同时为 1时,输出 Ci+1=1,它正好实现了 Ai,Bi,Ci
三个一位二进制数的加法运算功能,这种电路称为一位全加器 。 其中,Ai,Bi分别为两个一位二进制数相加的被加数,
加数,Ci为低位向本位的进位,Si为本位和,Ci+1是本位向高位的进位 。 一位全加器的符号如图 4 - 3(b)所示 。
如果不考虑低位来的进位,即 Ci=0,则这样的电路称为半加器,其真值表和逻辑电路分别如表 4-3和图 4-4所示 。
第 4章 组合逻辑电路表 4-3 半加器真值表
Ai Bi Ci+1 Si
0 0
0 1
1 0
1 1
0 0
0 1
0 1
1 0
图 4-4 半加器
&
A
i
B
i
S
i
C
i + 1
=1
第 4章 组合逻辑电路
4.2 组合逻辑电路的设计工程上的最佳设计,通常需要用多个指标去衡量,
主要考虑的问题有以下几个方面:
① 所用的逻辑器件数目最少,器件的种类最少,且器件之间的连线最简单 。 这样的电路称,最小化,电路 。
② 满足速度要求,应使级数尽量少,以减少门电路的延迟 。
③ 功耗小,工作稳定可靠。
第 4章 组合逻辑电路上述,最佳化,是从满足工程实际需要提出的 。 显然,
,最小化,电路不一定是,最佳化,电路,必须从经济指标和速度,功耗等多个指标综合考虑,才能设计出最佳电路 。
组合逻辑电路可以采用小规模集成电路实现,也可以采用中规模集成电路器件或存储器,可编程逻辑器件来实现 。
虽然采用中,大规模集成电路设计时,其最佳含义及设计方法都有所不同,但采用传统的设计方法仍是数字电路设计的基础 。 因此下面先介绍采用设计的实例 。
第 4章 组合逻辑电路组合逻辑电路的设计一般可按以下步骤进行:
① 逻辑抽象 。 将文字描述的逻辑命题转换成真值表叫逻辑抽象,首先要分析逻辑命题,确定输入,输出变量;然后用二值逻辑的 0,1两种状态分别对输入,输出变量进行逻辑赋值,即确定 0,1 的具体含义;最后根据输出与输入之间的逻辑关系列出真值表 。
② 选择器件类型 。 根据命题的要求和器件的功能及其资源情况决定采用哪种器件 。 例如,当选用 MSI组合逻辑器件设计电路时,对于多输出函数来说,通常选用译码器实现电路较方便,而对单输出函数来说,则选用数据选择器实现电路较方便 。
③ 根据真值表和选用逻辑器件的类型,写出相应的逻辑函数表达式 。
当采用 SSI集成门设计时,为了获得最简单的设计结果,应将逻辑函数表达式化简,并变换为与门电路相对应的最简式 。
④ 根据逻辑函数表达式及选用的逻辑器件画出逻辑电路图 。
第 4章 组合逻辑电路
【 例 4-3】 设计一个一位全减器 。
① 列真值表 。
全减器有三个输入变量:被减数 An,减数 Bn,低位向本位的借位 Cn;有两个输出变量:本位差 Dn,本位向高位的借位 C n+1,其框图如图 4 - 5(a)所示 。
表 4-4 全减器真值表
An Bn Cn Cn+1 Dn
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0
1 1
1 1
1 0
0 1
0 0
0 0
1 1
第 4章 组合逻辑电路图 4-5 全减器框图及 K图
(a) 框图 ; (b) Cn+1; (c) Dn
全减器
D
n
C
n +1
A
n
B
n
C
n
( a )
0
A
n
B
n
C
n
00 01 11 10
0
1
( b )
1 0 0
1 1 1 0
0
A
n
B
n
C
n
00 01 11 10
0
1
( c )
1 0 1
1 0 1 0
第 4章 组合逻辑电路
② 选器件 。
选用非门,异或门,与或非门三种器件 。
③ 写逻辑函数式 。
首先画出 Cn+1和 Dn的 K图如图 4-5(b),(c)所示,然后根据选用的三种器件将 Cn+1,Dn分别化简为相应的函数式 。 由于该电路有两个输出函数,因此化简时应从整体出发,尽量利用公共项使整个电路门数最少,而不是将每个输出函数化为最简当用与或非门实现电路时,利用圈 0方法求出相应的与或非式为第 4章 组合逻辑电路
nnnnnnn
nnnnnnnnnnnnn
BACACBC
CBACBACBACBAD
1
当用异或门实现电路时,写出相应的函数式为
nnnnnnnnnn
nnnnnnnnn
nnnn
CBCBACBCBA
CBCBACBAC
CBAD
)()(
1
其中 为 Dn和 Cn+1的公共项。)(
nn CB?
第 4章 组合逻辑电路
④ 画出逻辑电路 。
图 4 – 6 全减器逻辑图
C
n
1
&
≥1
&
≥1
1
1
B
n
A
n
D
n
C
n + 1
( a )
=1
1
=1
D
n
&
&
& C
n + 1
C
n
B
n
A
n
( b )
第 4章 组合逻辑电路
【 例 4-4】 用门电路设计一个将 8421 BCD码转换为余 3
码的变换电路 。
解:
① 分析题意,列真值表 。
该电路输入为 8421 BCD码,输出为余 3码,因此它是一个四输入,四输出的码制变换电路,其框图如图 4-7(a)
所示 。 根据两种 BCD码的编码关系,列出真值表,如表 4-5
所示 。 由于 8421 BCD码不会出现 1010~1111这六种状态,
因此把它视为无关项 。
第 4章 组合逻辑电路
② 选择器件,写出输出函数表达式 。
题目没有具体指定用哪一种门电路,因此可以从门电路的数量,种类,速度等方面综合折衷考虑,选择最佳方案 。 该电路的化简过程如图 4-7(b)所示,首先得出最简与或式,然后进行函数式变换 。 变换时一方面应尽量利用公共项以减少门的数量,另一方面减少门的级数,
以减少传输延迟时间,因而得到输出函数式为
DE
DCDCCDDCE
DCBDCBDCBDBCBDCBE
BDBCABDBCAE
0
1
2
3
)()()(
第 4章 组合逻辑电路图 4 – 7 例 4 - 4框图及 K图码制变换电路
A
B
D
C
E
3
E
2
E
1
E
0
( a )
AB
C D
00 01 11 10
00
01
× 1
1 1×
11
10
1 ×
1 ×
×
×
E
3
AB
C D
00 01 11 10
00
01
1 ×
1 1×
111
10
×
1 ×
×
×
E
2
1
AB
C D
00 01 11 10
00
01
1 × 1
×
111
10
1 ×
×
×
×
E
1
1
AB
C D
00 01 11 10
00
01
1 × 1
×
11
10
×
1 1 ×
×
×
E
0
( b )
第 4章 组合逻辑电路
③ 画逻辑电路。
该电路采用了三种门电路,速度较快,逻辑图如图 4-8所示。
表 4 – 5 例 4-4真值表
A B C D E3 E2 E1 E0
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
× × × ×
× × × ×
× × × ×
× × × ×
× × × ×
× × × ×
第 4章 组合逻辑电路图 4 – 8 8421 BCD码转换为余 3码的电路
1
&
≥1
1
&
&
=1
=1
E
3
E
2
E
1
E
0
A
B
C
D
第 4章 组合逻辑电路
4.3 常用 MSI组合逻辑器件及应用
4.3.1
用文字,符号或数码表示特定对象的过程称为编码 。
在数字电路中用二进制代码表示有关的信号称为二进制编码 。 实现编码操作的电路就是编码器 。 按照被编码信号的不同特点和要求,有二进制编码器,二 —十进制编码器,
优先编码器之分 。
第 4章 组合逻辑电路
1,二进制编码器用 n位二进制代码对 N=2n个一般信号进行编码的电路,叫做二进制编码器 。 例如 n=3,可以对 8个一般信号进行编码 。
这种编码器有一个特点:任何时刻只允许输入一个有效信号,
不允许同时出现两个或两个以上的有效信号,因而其输入是一组有约束 (互相排斥 )的变量 。
现以三位二进制编码器为例,分析编码器的工作原理 。
图 4-9是三位二进制编码器的框图,它的输入是 I0~I78个高电平信号,输出是三位二进制代码 F2,F1,F0。 为此,又把它叫做 8线 —3线编码器 。 输出与输入 的对应关系如表 4-6所示 。
第 4章 组合逻辑电路图 4 – 9 三位二进制 8线 —3线编码器框图
8
线-3
线编码器
I
0
F
2
F
1
F
0
I
1
I
2
I
3
I
4
I
5
I
6
I
7
第 4章 组合逻辑电路表 4 – 6 三位二进制编码器的真值表输 入 输 出
I0 I1 I2 I3 I4 I5 I6 I7 F2 F1 F0
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
第 4章 组合逻辑电路由表 4 - 6可得出编码器的输出函数为因为任何时刻 I0~I7当中仅有一个取值为 1,利用这个约束条件将上式化简,得到
75310
76321
76542
IIIIF
IIIIF
IIIIF
第 4章 组合逻辑电路图 4 – 10 三位二进制编码器
≥1
≥1
≥1
F
2
F
1
F
0
I
7
I
6
I
5
I
4
I
3
I
2
I
1
第 4章 组合逻辑电路
2,二 —十进制 (BCD)
将十进制数 0,1,2,3,4,5,6,7,8,9 等 10
个信号编成二进制代码的电路叫做二 —十进制编码器 。 它的输入是代表 0~9这 10个数符的状态信号,有效信号为 1(即某信号为 1时,则表示要对它进行编码 ),输出是相应的 BCD码,
因此也称 10线 —4线编码器 。 它和二进制编码器特点一样,任何时刻只允许输入一个有效信号 。
例如,要实现一个十进制 8421BCD编码器,因输入变量相互排斥,可直接列出编码表如表 4-7所示 。 将表中各位输出码为 1的相应输入变量相加,便可得出编码器的各输出表达式:
第 4章 组合逻辑电路
97531
97531
7632
7632
7654
7654
98
98
YYYYYYYYYYA
YYYYYYYYB
YYYYYYYYC
YYYYD
第 4章 组合逻辑电路表 4 – 7 8421 BCD码编码表第 4章 组合逻辑电路图 4 - 11 8421BCD码编码器
& & &
1 1 1 1 1 1 1 1 1
ABC
Y
1
Y
2
Y
3
Y
4
Y
5
Y
6
Y
7
Y
8
Y
9
&
D
第 4章 组合逻辑电路
3.
优先编码器常用于优先中断系统和键盘编码 。 与普通编码器不同,优先编码器允许多个输入信号同时有效,但它只按其中优先级别最高的有效输入信号编码,对级别较低的输入信号不予理睬 。 常用的 MSI优先编码器有 10线 —4
线 (如 74LS147),8线 —3线 (如 74LS148)。
74LS148二进制优先编码器的逻辑符号如图 4-12所示 。
功能表如表 4-8所示 。
第 4章 组合逻辑电路图 4 – 12 74LS148逻辑符号
7
4
L
S
1
4
8
E
1
7
6
5
4
3
2
1
0
CS
C
B
A
E
0
第 4章 组合逻辑电路表 4 – 8 74LS148的功能表第 4章 组合逻辑电路图 4 - 12中,小圆圈表示低电平有效,各引出端功能如下:
7~0为状态信号输入端,低电平有效,7的优先级别最高,0的级别最低;
C,B,A 为代码 (反码 )输出端,C为最高位;
E1为使能 (允许 )输入端,低电平有效;当 E1=0时,电路允许编码;当 E1=1时,电路禁止编码,输出 C,B,A均为高电平; E0和 CS为使能输出端和优先标志输出端,主要用于级联和扩展 。
第 4章 组合逻辑电路从功能表可以看出,当 E1=1时,表示电路禁止编码,
即无论 7~0中有无有效信号,输出 C,B,A均为 1,并且
CS=E0=1。 当 E1=0时,表示电路允许编码,如果 7~0中有低电平 (有效信号 )输入,则输出 C,B,A是申请编码中级别最高的编码输出 (注意是反码 ),并且 CS=0,E0=1;如果 7~0中无有效信号输入,则输出 C,B,A均为高电平,
并且 CS=1,E0=0。
从另一个角度理解 E0和 CS的作用 。 当 E0=0,CS=1时,
表示该电路允许编码,但无码可编;当 E0=1,CS=0时,
表示该电路允许编码,并且正在编码;当 E0=CS=1时,表示该电路禁止编码,即无法编码 。
第 4章 组合逻辑电路
4.3.2 译码器
1,二进制译码器二进制译码器有 n个输入端 (即 n位二进制码 ),2n个输出线 。
常见的 MSI译码器有 2—4译码器,3—8译码器和 4—16译码器 。
4-13为 2—4译码器的逻辑电路及逻辑符号,其功能表如表 4-9所示,图 4-13中 A1,A0为地址输入端,A1为高位 。
为状态信号输出端,Yi上的非号表示低电平有效 。
E为使能端 (或称选通控制端 ),低电平有效 。 当 E=0时,允许译码器工作,E=1时,禁止译码器工作,所有输出 均为高电平 。 一般使能端有两个用途:一是可以引入选通脉冲,以抑制冒险脉冲的发生 (参看本章 4.4节 );二是可以用来扩展输入变量数 (功能扩展 )。
3210 YYYY,、、
30 ~ YY
30 ~ YY
第 4章 组合逻辑电路图 4 – 13 2—4译码器逻辑电路及符号
& &&&
1
1
1
1
1
Y
0
Y
3
Y
2
Y
1
A
1
A
0
E
( a ) ( b )
2 -4
译码器
A
1
E
A
0
Y
0
Y
3
Y
2
Y
1
第 4章 组合逻辑电路从表 4 - 9还可以看出,当 E=0时,2—4译码器的输出函数分别为:
如果用 表示 i端的输出,mi表示输入地址变量 A1,A0的一个最小项,则输出函数可写成
,,,,013012011010 AAYAAYAAYAAY
iY
)3,2,1,0( imEY ii
可见,译码器的每一个输出函数对应输入变量的一组取值,
当使能端有效 (E=0)时,它正好是输入变量最小项的非 。
因此变量译码器也称为最小项发生器 。
第 4章 组合逻辑电路表 4 – 9 2—4译码器功能表第 4章 组合逻辑电路图 4-14为 3—8译码器的逻辑符号,功能表如表 4-10所示 。
图中,A2,A1,A0为地址输入端,A2为高位 。 为状态信号输出端,低电平有效 。 E1和 E2A,E2B为使能端 。 由功能表可看出,只有当 E1为高,E2A,E2B都为低时,该译码器才有有效状态信号输出;若有一个条件不满足,则译码不工作,
输出全为高 。
70 ~ YY
图 4 – 14 3—8译码器逻辑符号
3 -8 译码器
E
1
E
2 A
E
2 B
A
1
A
2
A
0
Y
0
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
第 4章 组合逻辑电路表 4 – 10 3—8译码器功能表第 4章 组合逻辑电路如果用 表示 i端的输出,则输出函数为iY
BABA
ii
EEEEEEE
iEmY
221221
)7~0(
可见,当使能端有效 (E=1)时,每个输出函数也正好等于输入变量最小项的非 。
二进制译码器的应用很广,典型的应用有以下几种:
① 实现存储系统的地址译码;
② 实现逻辑函数;
③ 带使能端的译码器可用作数据分配器或脉冲分配器。
第 4章 组合逻辑电路
【 例 4 - 5】 试用 3—8译码器实现函数:
)7,6,5,4,3,2,1(
)7,4,0(
2
1
mF
mF
解,因 为 当 译 码 器 的 使 能 端 有 效 时,每个输出,因此只要将函数的输入变量加至译码器的地址输入端,并在输出端辅以少量的门电路,便可以实现逻辑函数 。
本题 F1,F2均为三变量函数,首先令函数的输入变量
ABC=A2A1A0,然后将 F1,F2变换为译码器输出的形式:
iii MmY
第 4章 组合逻辑电路图 4 – 15 例 4 - 5之电路
3 -8 译码器
E
1
E
2 A
E
2 B
A
1
A
2
A
0
Y
0
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
1A B C
&&
F
1
F
2
第 4章 组合逻辑电路
2,二 —十进制译码器二 —十进制译码器也称 BCD译码器,它的功能是将输入的一位 BCD码 (四位二元符号 )译成 10个高,低电平输出信号,因此也叫 4—10译码器 。
图 4-16是二 —十进制译码器 74LS42的逻辑图和逻辑符号 。 功能表如表 4 - 11所示 。
第 4章 组合逻辑电路图 4 – 16 二 —十进制译码器 74LS42
&
&
&
&
&
&
&
&
&
Y
0
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
Y
8
Y
9
&
1
1
1
1
1
1
1
1
A
1
A
2
A
3
图 4 - 1 6
4 -1 0
译码器
B C D
输入
A
2
A
3
A
1
A
0
Y
0
Y
1
Y
3
Y
2
Y
4
Y
5
Y
6
Y
7
Y
8
Y
9
A
0
第 4章 组合逻辑电路表 4 – 11 二 —十进制译码器 74LS42的真值表第 4章 组合逻辑电路
3.
与二进制译码器不同,显示译码器是用来驱动显示器件,以显示数字或字符的 MSI部件 。 显示译码器随显示器件的类型而异,与辉光数码管相配的是 BCD十进制译码器,而常用的发光二极管 (LED)数码管,液晶数码管,荧光数码管等是由 7个或 8个字段构成字形的,因而与之相配的有 BCD七段或 BCD八段显示译码器 。 现以驱动 LED数码管的 BCD七段译码器为例,简介显示译码原理 。
第 4章 组合逻辑电路发光二极管 (LED)由特殊的半导体材料砷化镓,磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式 LED
显示器件 (半导体显示器 )。 分段式显示器 (LED数码管 )由 7条线段围成 字型,每一段包含一个发光二极管 。 外加正向电压时二极管导通,发出清晰的光,有红,黄,绿等色 。 只要按规律控制各发光段的亮,灭,就可以显示各种字形或符号 。
LED数码管有共阳,共阴之分 。 图 4 - 17(a)是共阴式 LED数码管的原理图,图 4-17(b)是其表示符号 。 使用时,公共阴极接地,7个阳极 a~g由相应的 BCD七段译码器来驱动 (控制 ),如图
4 - 17(c)所示 。
第 4章 组合逻辑电路图 4 – 17 数字显示译码器
a b c d e f g
a
b
c
d
e
f
g
a gb c d e f
( a )
( b )
B C D
七段译码器
D
C
B
A
D
C
B
A
a
g
b
c
d
f
e
U
C C
R
L
× 7
( c )
U
C C
G N D G N D
第 4章 组合逻辑电路
BCD七段译码器的输入是一位 BCD码 (以 D,C,B,A
表示 ),输出是数码管各段的驱动信号 (以 Fa~Fg表示 ),也称 4—7译码器 。 若用它驱动共阴 LED数码管,则输出应为高有效,即输出为高 (1)时,相应显示段发光 。 例如,当输入 8421码 DCBA=0100时,应显示,即要求同时点亮
b,c,f,g段,熄灭 a,d,e段,故译码器的输出应为
Fa~Fg=0110011,这也是一组代码,常称为段码 。 同理,
根据组成 0~9这 10个字形的要求可以列出 8421BCD七段译码器的真值表,见表 4 - 12(未用码组省略 )。
第 4章 组合逻辑电路表 4-12 BCD七段译码器真值表第 4章 组合逻辑电路
MSI BCD七段译码器就是根据上述原理组成的,只是为了使用方便,增加了一些辅助控制电路 。 这类集成译码器产品很多,类型各异,它们的输出结构也各不相同,因而使用时要予以注意 。 图 4-17(c)是 BCD七段译码器驱动
LED数码管 (共阴 )的接法 。 图中,电阻是上拉电阻,也称限流电阻,当译码器内部带有上拉电阻时,则可省去 。 数字显示译码器的种类很多,现已有将计数器,锁存器,译码驱动电路集于一体的集成器件,还有连同数码显示器也集成在一起的电路可供选用 。
第 4章 组合逻辑电路
4.3.3 数据选择器数据选择器又称多路选择器 (Multiplexer,简称 MUX),其框图如图 4-18(a)所示 。 它有 2n位地址输入,2n位数据输入,1
位输出 。 每次在地址输入的控制下,从多路输入数据中选择一路输出,其功能类似于一个单刀多掷开关,见图 4 - 18(b)。
图 4 – 18 数据选择器框图及等效开关数据选择器
D
0
D
1
D
2
n - 1
F
A
0
A
1
A
n - 1
F
D
0
D
1
D
2
n - 1
(a)
(b)
第 4章 组合逻辑电路常用的数据选择器有 2选 1,4选 1,8选 1,16选 1等 。
图 4-19是 4选 1数据选择器的逻辑图及符号,其中
D0~D3是数据输入端,也称为数据通道; A1,A0是地址输入端,或称选择输入端; Y是输出端; E是使能端,低电平有效 。 当 E=1时,输出 Y=0,即无效,当 E=0时,在地址输入 A1,A0的控制下,从 D0~D3中选择一路输出,其功能表见表 4-13。 表 4 – 13 4选 1 MUX功能表
E A1 A0 Y
1
0
0
0
0
0 0
0 1
1 0
1 1
× ×
D0
D1
D2
D3
0
第 4章 组合逻辑电路图 4 – 19 4选 1 MUX
&
≥1
Y
1
1
1
1
D
1
D
2
D
3
D
0
A
0
A
1
E
( a ) 逻辑图
4 选1 M U X
( b ) 逻辑符号
Y
A
0
A
1
D
1
D
0
D
3
D
2
E
第 4章 组合逻辑电路当 E=0时,4选 1 MUX的逻辑功能还可以用以下表达式表示:
i
i
i Dm
DAADAADAADAAY
3
0
301201101001
式中,mi是地址变量 A1,A0所对应的最小项,称地址最小项 。 式 (4 - 13)还可以用矩阵形式表示为
T
m
DDDDAA
D
D
D
D
AAAAAAAAY )()()(
321001
3
2
1
0
01
0
10
101?
第 4章 组合逻辑电路式中 (A1A0)m是由最小项组成的行阵,(D0D1D2D3)T是由 D0、
D1,D2,D3组成的列阵的转置 。
图 4-20为 8选 1 MUX的逻辑符号,其功能表如表 4-14所示,
输出表达式为
T
mi
i
i DDDDDDDDAAADmY )()( 76543210012
7
0
图 4 – 20 8选 1MUX逻辑符号
8 选1 M U X
Y
A
0
A
2
D
1
D
0
D
3
D
2
D
5
D
4
D
7
D
6
EA 1
第 4章 组合逻辑电路表 4 – 14 8选 1 MUX功能表
E A2 A1 A0 Y
1
0
0
0
0
0
0
0
0
× × ×
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
D0
D1
D2
D3
D4
D5
D6
D7
第 4章 组合逻辑电路
1,数据选择器的应用数据选择器的应用很广,典型应用有以下几个方面:
① 作数据选择,以实现多路信号分时传送。
② 实现组合逻辑函数。
③ 在数据传输时实现并 —串转换。
④ 产生序列信号。
对于 n个地址输入的 MUX,其表达式为
12
0
l
i
imY
第 4章 组合逻辑电路其中 mi是由地址变量 An-1,…,A1,A0组成的地址最小项 。 而任何一个具有 l个输入变量的逻辑函数都可以用最小项之和来表示:
12
0
l
i
imF
这里的 mi是由函数的输入变量 A,B,C,…组成的最小项 。
比较 Y和 F的表达式可以看出,只要将逻辑函数的输入变量 A,B,C,…加至数据选择器地址输入端,并适当选择 Di
的值,使 F=Y,就可以用 MUX实现函数 F。 因此,用 MUX实现函数的关键在于如何确定 Di的对应值 。
第 4章 组合逻辑电路
1) l≤n
l为函数的输入变量数,n为选用的 MUX的地址输入端数 。
当 l=n时,只要将函数的输入变量 A,B,C,…
MUX的地址输入端,根据函数 F所需要的最小项,确定
MUX中 Di的值 (0或 1)即可;当 l< n时,将 MUX的高位地址输入端不用 (接 0或 1),其余同上 。
第 4章 组合逻辑电路
【 例 4-6】 试用 8选 1MUX实现逻辑函数:
CBABAF
解,首先求出 F的最小项表达式 。
将 F填入 K图,如图 4 - 21所示,根据 K图可得
)7,5,4,3,2,1(),,( mCBAF
当采用 8选 1 MUX时,有
7
0
76543210012 )()(
i
T
mii DDDDDDDDAAADmY
令 A2=A,A1=B,A0=C,且令 D1=D2=D3=D4=D5=D7=1,D0=D6=0
则有 Y=(ABC)m(01111101)T = m(1,2,3,4,5,7),故 F=Y。 用 8
选 1MUX实现函数 F的逻辑图如图 4-22所示 。
第 4章 组合逻辑电路图 4 – 21 例 4 - 6之 K图
0
AB
C
00 01 11 10
0
1
1 0 1
1 1 1 1
第 4章 组合逻辑电路图 4-22 例 4 - 6之逻辑图需要注意的是,因为函数 F中各最小项的标号是按 A,B、
C的权为 4,2,1写出的,因此 A,B,C必须依次加到 A2,A1、
A0端 。
8 选1 M U X
Y
A
0
A
2
D
1
D
0
D
3
D
2
D
5
D
4
D
7
D
6
A
1
F
A
B
C
1
第 4章 组合逻辑电路
2) l> n
当逻辑函数的变量数 l大于 MUX的地址输入端数 n时,
不能采用上面所述的简单方法 。 如果从 l个输入变量中选择 n个直接作为 MUX的地址输入,那么,多余的 (l-n)个变量就要反映到 MUX的数据输入 Di端,即 Di是多余输入变量的函数,简称余函数 。 因此设计的关键是如何求出函数
Di。
确定余函数 Di可以采用代数法或降维 K图法。
第 4章 组合逻辑电路
【 例 4-7】 试用 4选 1MUX实现三变量函数:
CBABCACBACBAF
解:
① 首先选择地址输入,令 A1A0=AB,则多余输入变量为
C,余函数 Di=f(c)。
② 确定余函数 Di。
用代数法将 F的表达式变换为与 Y相应的形式:
CABCBACBABA
CBABCACCBACBABCACBACBAF
DAADAADAADAAY
1
)(
301201101001
第 4章 组合逻辑电路将 F与 Y对照可得
0,,,1 3210 DCDCDD
图 4 – 23 例 4 - 7之逻辑图
4 选1 M U X
Y
A
0
A
1
D
1
D
0
D
3
D
2
E
F
A
B
C
1
1
第 4章 组合逻辑电路
n变量的逻辑函数,可以用 n维 (即 n变量 )K图表示,也可以用 (n-1),(n-2),…维 K图表示,这种 (n-1),(n-2),…维 K图称为降维 K图 。
例 4-7中的三变量逻辑函数 F可以用图 4 -24(a)三变量 K图表示,也可以用图 (b)所示的以 A,B为变量,C为引入变量的二维
K图表示 。 降维的方法是在图 (a)中先求出在 AB各组取值下 F与
C变量之间的函数关系,然后将它们分别填入图 (b)的降维 K图中 。 从图 (b)中看出,该 K图中除了填 0,1外,还填入了变量
C、,因此它又称为引入变量 K图 。 如果选择 4选 1MUX的地址输入 A1A0=AB,将图 (c)所示 Y的 K图和图 (b)F的 K图相对照,
则很容易求出多余函数:
C
0,,,1 3210 DCDCDD
第 4章 组合逻辑电路为了减少画 K图的次数,也可以直接在 F的三变量 K图上求出余函数 Di。 例如在图 4 - 24(d)F 的 K图中选择 AB=A1A0,
则 AB变量 (即地址变量 )按其组合可直接将 F的 K图划分为四个子 K图,如图 (d)中虚线所示 。 每个子 K图所对应的函数就是余函数 Di,它们仅与多余输入变量 C有关,即 Di=f(C)。 在各子 K图上直接化简,便可求出余函数 Di的值,D0=1,D1=C,
D2=C,D3=0。 可见,后面这种方法更加简便,其求解步骤归纳如下:
① 画出函数 F的 K图。
② 选择地址输入。
③ 在 F的 K图上确定余函数 Di的范围。
④ 求余函数 Di。
⑤ 画出逻辑图。
第 4章 组合逻辑电路图 4-24 例 4-7卡诺图法
1
AB
C
00 01 11 10
0
1
0 0 1
1 1 0 0
1
A
B
0 1
0
1
C
C 0
( a ) ( b )
D
0
A
1
A
0
0 1
0
1
D
2
D
1
D
3
( c )
1
AB
C
00 01 11 10
0
1
0 0 1
1 1 0 0
( d )
F F
Y D
3
D
2
D
1
D
0
第 4章 组合逻辑电路
【 例 4-8】 试用 8选 1MUX实现逻辑函数:
)14,13,12,7,5,4,0(),,,( mDCBAF
① 画出 F的四变量 K图如图 4 - 25(a)所示。
图 4 – 25 例 4 - 8在 F之 K图上确定 Di
1
AB
C D
00 01 11 10
00
01
1 1 0
0 1 11
011
10
1 0
0 0 1
0
0
1
AB
C D
00 01 11 10
00
01
1 1 0
0 1 11
011
10
1 0
0 0 1
0
0
( a ) ( b )
D
0
D
2
D
6
D
4
D
1
D
3
D
7
D
5
D
0
D
1
D
3
D
2
D
4
D
5
D
7
D
6
第 4章 组合逻辑电路
② 选择地址变量,确定余函数 Di。
原则上,地址变量的选择是任意的,但选择合适了才能使电路简化 。
若选择 A2A1A0=ABC,则引入变量为 D。
在图 4-25(a)F之 K图上,确定 8选 1MUX数据输入 Di的范围,如图 (a)中虚线所示 。 化简各子 K图求得余函数为:
D0=D,D1=0,D2=1,D3=D,D4=D,D5=0,D6=1,D7=D,函数 F可表示为
Tm DDDDA B CYF )1010()(
其逻辑图如图 4 - 26(a)所示。
第 4章 组合逻辑电路图 4 – 26 例 4 - 8的逻辑图
8 选1 M U X
Y
A
0
A
2
D
1
D
0
D
3
D
2
D
5
D
4
D
7
D
6
A
1
F
A
B
C
E
D
1
1
8 选1 M U X
Y
A
0
A
2
D
1
D
0
D
3
D
2
D
5
D
4
D
7
D
6
A
1
F
A
C
D
E
B
1
( a ) ( b )
第 4章 组合逻辑电路比较图 4 - 26(a)和 (b)可看出,显然选择 A,C,D为地址变量时电路简单,其数据输入可以不附加任何门 。 因此,
为了在产生余函数时不附加门电路或尽量少附加门电路,
通常要将各种地址选择方案进行比较,这样做是比较麻烦的 。 比较简单的方法是观察 F的 K图或将 F化简,从 F的输入变量中选择出现比较多的输入变量加到地址输入端,这样就能简化电路 。
第 4章 组合逻辑电路
2,数据选择器的扩展
① 利用使能端进行扩展 。 图 4-27是将双 4选 1MUX扩展为 8选 1 MUX的逻辑图 。 其中 A2是 8选 1MUX地址端的最高位,A0是最低位 。
② 树状扩展 。 通过 MUX的级联用 2n+1个 2n选 1的 MUX
可以扩展为 (2n)2选 1的 MUX。
例如,n=2,即可用 5个 4选 1MUX实现 16选 1MUX。如图 4 - 28所示。
第 4章 组合逻辑电路双4 选1 M U X
Y
1
A
0
A
1
A
1
E
1 D
0
A
0
1 D
3
1 D
2
1 D
1
D
0
D
1
D
2
D
3
A
2
2 D
0
2 D
3
2 D
2
2 D
1
D
4
D
5
D
6
D
7
1
图 4 - 2 7
E
1
E
2
Y
2
≥1
Y
第 4章 组合逻辑电路图 4 – 28 5个 4选 1MUX实现 16选 1MUX
双4 选1 M U X
Y
A
0
A
1
A
1
D
0
A
0
D
3
D
2
D
1
D
0
D
3
D
0
D
3
D
2
D
1
D
4
D
7
双4 选1 M U X
Y
A
0
A
1
ED
0
D
3
D
2
D
1
D
8
D
11
D
0
D
3
D
2
D
1
D
12
D
15
E E
4 选1 M U X
A
3
A
2
A
1
A
0
Y Y
Y
E D
0
D
1
D
2
D
3
E
E
Y
第 4章 组合逻辑电路数据分配器又称多路分配器 (DEMUX),其功能与数据选择器相反,它可以将一路输入数据按 n位地址分送到
2n个数据输出端上 。 图 4 - 29为 1—4 DEMUX的逻辑符号,
其功能表如表 4 - 15所示 。 其中 D为数据输入,A1,A0为地址输入,Y0~Y3为数据输出,E为使能端 。
4.3.4 数据分配器表 4 – 15 1—4 DEMUX功能表
E A1 A0 Y0 Y1 Y2 Y3
1 × ×
0 0 0
0 0 1
0 1 0
0 1 1
1 1 1 1
D 1 1 1
1 D 1 1
1 1 D 1
1 1 1 D
第 4章 组合逻辑电路图 4-29 1—4DEMUX
数据分配器
D
E
A
1
A
0
Y
0
Y
1
Y
2
Y
3
图 4 - 2 9
第 4章 组合逻辑电路常用的 DEMUX 有 1—4DEMUX,1—8DEMUX,1—16
DEMUX等 。 从表 4-15看出,1—4 DEMUX与 2—4译码器功能相似,如果将 2-4译码器的使能端 E用作数据输入端 D(见图 4
- 30(a)),则 2—4译码器的输出可写成
)3,2,1,0( imDmEY iii
随着译码器输入地址的改变,可使某个最小项 mi为 1,则译码器相应的输出 Yi=D,因而只要改变译码器的地址输入 A、
B,就可以将输入数据 D分配到不同的通道上去 。 因此,凡是具有使能端的译码器,都可以用作数据分配器 。 图 4 -
30(b)是将 3—8译码器用作 1—8DEMUX的逻辑图 。 其中:
第 4章 组合逻辑电路
iii
BA
DmmEY
EEDE
1
221 0,
当改变地址输入 A,B,C时,Yi=D,即输入数据被反相分配到各输出端。
数据分配器常与数据选择器联用,以实现多通道数据分时传送。例如,发送端由 MUX将各路数据分时送到公共传输线上,接收端再由分配器将公共传输线上的数据适时分配到相应的输出端,而两者的地址输入都是同步控制的,其示意图如图 4 - 31所示。
第 4章 组合逻辑电路图 4 – 30 用译码器实现 DEMUX
2 -4 译码器
A
0
A
1
Y
0
Y
3
Y
2
Y
1
E
A B D
3 -8 译码器
A
1
A
2
A
0
E
2 B
E
2 A
E
1
CBA
( a ) ( b )
Y
0
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
D
第 4章 组合逻辑电路图 4 – 31 多通道数据分时传送
8 1
M U X
A
1
A
2
A
0
CBA
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
1 8
D E M U X
A
1
A
0
A
2
F
0
F
1
F
2
F
3
F
4
F
5
F
6
F
7
Y D
第 4章 组合逻辑电路
4.3.5 数码比较器
1,逻辑功能图 4 – 32 四位并行数码比较器逻辑符号
A
3
B
2
A
2
B
1
A
1
B
0
A
0
C
A <
B
C
A =
B
C
A >
B
P
A < B
P
A = B
P
A > B
B
3 C O M P
第 4章 组合逻辑电路由图 4 - 32可见,该比较器有 11 个输入端,三个输出端,其中输入端 A3~A0,B3~B0接两个待比较的四位二进制数;输出端 PA< B,PA=B,PA> B是三个比较结果; CA
< B,CA=B,CA> B是三个级联输入端,当扩大待比较的二进制数的位数时,可将低位比较器的输出端 PA< B、
PA=B,PA> B分别接到高位比较器的 CA< B,CA=B,CA> B
三个输入端 。
第 4章 组合逻辑电路表 4 – 16 四位比较器功能表第 4章 组合逻辑电路由表 4-16可以看出:
输出 PA> B=1(即 A大于 B)的条件是:最高位 A3> B3,或者最高位相等而次高位 A2> B2,或者最高位和次高位均相等而次低位 A1> B1,或者高三位相等而最低位 A0> B0,或者四位均相等而低位比较器来的输入 CA> B=1。
输出 PA=B=1的条件是,A3=B3,A2=B2,A1=B1,A0=B0,
且级联输入端 CA=B为 1。
输出 PA< B=1的条件请读者导出。
第 4章 组合逻辑电路
2,比较器的级联四位比较器可直接用来比较两个四位或小于四位的二进制整数的大小 。 当两个待比较的数的位数超过四位时,
往往要将多个比较器级联使用 。
【 例 4 - 9】 试比较两个七位二进制整数的大小 。
解,采用两块四位比较器组件,用分段比较的方法,
可以实现对七位二进制的比较,其逻辑图如图 4 - 33所示 。
第 4章 组合逻辑电路图 4 – 33 七位数的比较
1
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
A
4
B
4
A
5
B
5
A
6
B
6
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
P
A < B
P
A = B
P
A > B
P
A < B
P
A = B
P
A > B
A > B A = B A < B
C
A =
B
C
A =
B
C O M PC O M P
第 4章 组合逻辑电路
4.3.6 加法器图 4 – 34 四位串行进位并行加法器第 4章 组合逻辑电路图 4 – 35 超前进位加法器第 4章 组合逻辑电路超前进位产生器逻辑符号如图 4-35(c)所示,它是一种产生快速进位的集成电路 。 根据全加器进位信号令 Gn=AnBn,则可以得出
,)(1 nnnnnn CBABAC
nnnn CPGC 1
上式称为递推公式,Gn称进位产生函数,Pn称为进位传输函数 。 由式 (4 - 18)可以推出各级进位信号表达式,并构成快速进位的逻辑电路 (推导过程从略 )。 因此,图 4 - 35(c)中 P0、
P1,P2,P3分别为进位传输信号,G0,G1,G2,G3分别为进位产生输入信号,Cn+1,Cn+2,Cn+3分别为进位输出,FP和 FG
分别为进位传输输出和进位产生输出 。 其表达式为第 4章 组合逻辑电路
0123123233
0123
0120121223
010112
001
CPPPGPPGPGC
PPPPF
CPPPGPPGPGC
CPPGPGC
CPGC
G
P
nn
nn
nn
加法器在数字系统中的应用十分广泛 。 其除了能进行多位二进制数的加法运算外,也可以用来完成二进制减法运算 。 在利用加法器完成减法运算时,最通常的做法是将减数的二进制数的每一位变反 (0→ 1,1→ 0),并且在最低位加 1,其结果再同被减数相加 。 即采用减数求补相加法,A-B=A加 [ B] 反 加 1。
利用加法器可以实现码组变换。
第 4章 组合逻辑电路
【 例 4-10】 试采用四位加法器完成余 3码到 8421 BCD码的转换 。
解,因为对于同样一个十进制数,余 3码比相应的
8421BCD码多 3,因此要实现余 3码到 8421 BCD码的转换,只需从余 3码减去 (0011)即可 。 由于 0011各位变反后成为 1100,再加
1,即为 1101,因此,减 (0011)同加 (1101)等效 。 所以,在四位加法器的 A3~A0接上余 3码的四位代码,B3,B2,B1,B0上接固定代码 1101,就能实现转换,其逻辑电路如图 4-36所示 。
利用加法器还可以实现 8421 BCD码相加。
第 4章 组合逻辑电路图 4 – 36 全加器构成的余 3码到 8421BCD码的转换四位加法器
A
2
A
3
A
0
A
1
B
2
B
3
B
0
B
1
C
4
F
3
F
2
F
1
F
0
C
0
1
E
2
E
3
E
0
E
1
8 4 2 1 B C D 码第 4章 组合逻辑电路
【 例 4-11】 用四位加法器构成一位 8421 BCD码加法器 。
解,两个用 BCD码表示的数字相加,并以 BCD码给出其和的电路称为 BCD码加法器 。 两个一位十进制数相加,
若考虑低位的进位,其和应为 0~19。 8421 BCD码加法器的输入,输出都应用 8421 BCD码表示,而四位二进制加法器是按二进制数进行运算的,因此必须将输出的二进制数 (和数 )进行等值变换 。 表 4-17列出了与十进制数 0~19相应的二进制数及 8421 BCD码 。 从表中看出,当和小于等于 9时不需要修正,当和大于 9时需要加 6(0110)修正,即当和大于 9
时,二进制和数加 6(0110)才等于相应的 8421 BCD码 。 从表中还看出,当和大于 9时,D10=1,因此可以用 D10来控制是否需要修正,即 D10=1时,和加 6,D10=0时则不加 。
第 4章 组合逻辑电路
D10可以据表 4-17求出:当 B4=1时,D10一定为 1;当
B4=0,B3B2B1B0从 1010到 1111时,D10=1。 故可求得
1323410 BBBBBD
图 4-37表示用 2片四位二进制全加器完成两个一位 8421
BCD码的加法运算电路,第 Ⅰ 片完成二进数相加的操作,第
Ⅱ 片完成和的修正操作 。 图中,第一片输出的二进制数为 C4、
S3,S2,S1,S0,第二片完成和的修正操作,根据式 (4-20)可求得 8421BCD码的进位输出为
13234 SSSSCC
第 4章 组合逻辑电路表 4 – 17 十进制数 0~19与相应的二进制数及 8421BCD码第 4章 组合逻辑电路图 4 – 37 一位 8421 BCD码加法器
Ⅰ
C
0
A
0
A
1
A
2
A
3
B
0
B
1
B
2
B
3
C
4
S
3
S
2
S
1
S
0
被加数
A
加数进位输入四位加法器
Ⅱ
C
0
A
0
A
1
A
2
A
3
B
0
B
1
B
2
B
3
C
4
S
3
S
2
S
1
S
0
和数
S
四位加法器
&
&
&
1
进位输出
C
B
第 4章 组合逻辑电路
4.4 组合逻辑电路中的竞争与冒险
1,竞争与冒险在组合电路中,某一输入变量经不同途径传输后,到达电路中某一会合点的时间有先有后,这种现象称为竞争 。
由于竞争而使电路输出发生瞬时错误的现象称为冒险 。 例如,
图 4-38(a)所示电路,其输出函数为 F=AB+AC。 当 B=C=1时,
应有 F=A+A=1,即不管 A如何变化,输出 F恒为高 。 而实际上由于门电路有延迟,当 A由高变低时,在输出波形上出现了一个负脉冲,如图 4 - 38(b)所示 。
第 4章 组合逻辑电路这就是由竞争所造成的错误输出,这种宽度很窄的脉冲,
人们形象地称其为毛刺 (图中波形忽略了信号的前后沿,
并假定各门的延迟时间均为 tpd)。 这种负向毛刺也称为 0型冒险; 反之,若出现正向毛刺称 1型冒险 。
又如图 4-39所示情况,加到同一门电路的两输入信号同时向相反方向变化,由于过渡过程不同也会出现竞争,
也有可能在输出端出现毛刺 (图中未考虑门的延迟时间 )。
这种由于多个输入变量同时变化引起的冒险称为功能冒险 。
第 4章 组合逻辑电路竞争是经常发生的,但不一定都会产生毛刺 。 如图 4 -
38(b)中 A由 0变 1时也有竞争,却未产生毛刺,所以竞争不一定造成危害 。 但一旦出现了毛刺,若下级负载对毛刺敏感,则毛刺将使负载电路发生误动作 。
第 4章 组合逻辑电路图 4 – 38 竞争与冒险现象示例 1
&
&
&
B
A
C
F
( a )
( b )
A
A
AB
AC
F
t
p d
1
第 4章 组合逻辑电路图 4 – 39 竞争与冒险现象示例 2
第 4章 组合逻辑电路
2,竞争与冒险的识别
① 代数法 。 当函数表达式在一定条件下可以简化成
F=X+X,或 F=X·X的形式时,X的变化可能引起冒险现象 。
② K图法 。 如果两卡诺圈相切,而相切处又未被其它卡诺圈包围,则可能发生冒险现象 。 如图 4-40所示电路,其 K
图示于图 4 - 40(a),该图上两卡诺圈相切,当输入变量 ABC
由 111变为 110时,F从一个卡诺圈进入另一个卡诺圈,若把圈外函数值视为 0,则函数值可能按 1 - 0 - 1变化,从而出现毛刺 。
第 4章 组合逻辑电路
③ 实验法 。 两个以上的输入变量同时变化引起的功能冒险难以用上述方法判断 。 因而发现冒险现象最有效的方法是实验 。
利用示波器仔细观察在输入信号各种变化情况下的输出信号,
发现毛刺则分析原因并加以消除,这是经常采用的办法 。
图 4 – 40 用 K图识别和消除逻辑冒险
AB
C
00 01 11 10
0
1
1
1 1 1
( a )
AB
C
00 01 11 10
0
1
1
1 1 1
( b )
BC
第 4章 组合逻辑电路
3.
当电路中存在冒险现象时,必须设法消除它,否则会导致错误结果 。 消除冒险现象通常有如下方法:
① 加滤波电路,消除毛刺的影响 。 毛刺很窄,其宽度可以和门的传输时间相比拟,因此常在输出端并联滤波电容 C,或在本级输出端与下级输入端之间,串接一个如图 4 - 41所示的积分电路来消除其影响 。 但 C或 R,C的引入会使输出波形边沿变斜,故参数要选择合适,一般由实验确定 。
第 4章 组合逻辑电路图 4 – 41 加滤波电路排除冒险
( a )
R
C U
0
( b )
U
1
U
0
第 4章 组合逻辑电路
② 加选通信号,避开毛刺 。 毛刺仅发生在输入信号变化的瞬间,因此在这段时间内先将门封住,待电路进入稳态后,再加选通脉冲选取输出结果 。 该方法简单易行,但选通信号的作用时间和极性等一定要合适 。 例如,像图 4-
42所示的那样,在组合电路中的输出门的一个输入端,加入一个选通信号,即可有效地消除任何冒险现象的影响 。
如图 4-42所示电路中,尽管可能有冒险发生,但是输出端却不会反映出来,因为当险象发生时,选通信号的低电平将输出门封锁了 。
第 4章 组合逻辑电路图 4 – 42 避开冒险的一种方法
&
&
&
B
A
C
F
选通脉冲
1
第 4章 组合逻辑电路
③ 增加冗余项消除逻辑冒险 。 例如,对于图 4 - 40所示电路,只要在其 K图上两卡诺圈相切处加一个卡诺圈 (示于图
4 - 40(b))就可消除逻辑冒险 。 这样,函数表达式变为
BCCAABF
即增加了一个冗余项 。 冗余项是简化函数时应舍弃的多余项,
但为了电路工作可靠又需加上它 。 可见,最简化设计不一定都是最佳的 。
以上三种方法各有特点 。 增加冗余项适用范围有限;加滤波电容是实验调试阶段常采取的应急措施;加选通脉冲则是行之有效的方法 。 目前许多 MSI器件都备有使能 (选通控制 )
端,为加选通信号消除毛刺提供了方便 。
4.1 组合逻辑电路的分析
4.2 组合逻辑电路的设计
4.3 常用 MSI组合逻辑器件及应用
4.4 组合逻辑电路中的竞争与冒险第 4章 组合逻辑电路
4.1 组合逻辑电路的分析所谓逻辑电路的分析,就是找出给定逻辑电路输出和输入之间的逻辑关系,并指出电路的逻辑功能 。 分析过程一般按下列步骤进行:
① 根据给定的逻辑电路,从输入端开始,逐级推导出输出端的逻辑函数表达式 。
② 根据输出函数表达式列出真值表 。
③ 用文字概括出电路的逻辑功能。
第 4章 组合逻辑电路
【 例 4-1】 分析图 4-2所示组合逻辑电路的逻辑功能 。
解,根据给出的逻辑图,逐级推导出输出端的逻辑函数表达式:
ACBCABACBCABPPPF
ACPBCPABP
321
321,,
第 4章 组合逻辑电路
&
&
&
&
P
2
P
1
P
3
F
A
B
C
图 4 - 2
第 4章 组合逻辑电路表 4-1 例 4-1真值表
A B C F
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
0
0
1
0
1
1
1
由真值表可以看出,在三个输入变量中,只要有两个或两个以上的输入变量为 1,则输出函数 F为 1,否则为 0,它表示了一种,少数服从多数,的逻辑关系 。 因此可以将该电路概括为:三变量多数表决器 。
第 4章 组合逻辑电路
【 例 4-2】 分析图 4-3(a)所示电路,指出该电路的逻辑功能 。
图 4-3 例 4-2
(a) 一位全加器; (b) 一位全加器符号
=1
&
≥1
1
A
i
B
i
C
i
S
i
C
i +1
( a )
全加器
S
i
C
i +1
A
i
B
i
C
i
( b )
=1
第 4章 组合逻辑电路解:
① 写出函数表达式。
iiiiii
iiii
BACBAC
CBAS
)(1
② 列真值表。
Ai Bi Ci Ci+1 Si
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0
0 1
0 1
1 0
0 1
1 0
1 0
1 1
表 4 - 2 例 4 - 2真值表第 4章 组合逻辑电路
③ 分析功能 。
由真值表可见,当三个输入变量 Ai,Bi,Ci中有一个为
1或三个同时为 1时,输出 Si=1,而当三个变量中有两个或两个以上同时为 1时,输出 Ci+1=1,它正好实现了 Ai,Bi,Ci
三个一位二进制数的加法运算功能,这种电路称为一位全加器 。 其中,Ai,Bi分别为两个一位二进制数相加的被加数,
加数,Ci为低位向本位的进位,Si为本位和,Ci+1是本位向高位的进位 。 一位全加器的符号如图 4 - 3(b)所示 。
如果不考虑低位来的进位,即 Ci=0,则这样的电路称为半加器,其真值表和逻辑电路分别如表 4-3和图 4-4所示 。
第 4章 组合逻辑电路表 4-3 半加器真值表
Ai Bi Ci+1 Si
0 0
0 1
1 0
1 1
0 0
0 1
0 1
1 0
图 4-4 半加器
&
A
i
B
i
S
i
C
i + 1
=1
第 4章 组合逻辑电路
4.2 组合逻辑电路的设计工程上的最佳设计,通常需要用多个指标去衡量,
主要考虑的问题有以下几个方面:
① 所用的逻辑器件数目最少,器件的种类最少,且器件之间的连线最简单 。 这样的电路称,最小化,电路 。
② 满足速度要求,应使级数尽量少,以减少门电路的延迟 。
③ 功耗小,工作稳定可靠。
第 4章 组合逻辑电路上述,最佳化,是从满足工程实际需要提出的 。 显然,
,最小化,电路不一定是,最佳化,电路,必须从经济指标和速度,功耗等多个指标综合考虑,才能设计出最佳电路 。
组合逻辑电路可以采用小规模集成电路实现,也可以采用中规模集成电路器件或存储器,可编程逻辑器件来实现 。
虽然采用中,大规模集成电路设计时,其最佳含义及设计方法都有所不同,但采用传统的设计方法仍是数字电路设计的基础 。 因此下面先介绍采用设计的实例 。
第 4章 组合逻辑电路组合逻辑电路的设计一般可按以下步骤进行:
① 逻辑抽象 。 将文字描述的逻辑命题转换成真值表叫逻辑抽象,首先要分析逻辑命题,确定输入,输出变量;然后用二值逻辑的 0,1两种状态分别对输入,输出变量进行逻辑赋值,即确定 0,1 的具体含义;最后根据输出与输入之间的逻辑关系列出真值表 。
② 选择器件类型 。 根据命题的要求和器件的功能及其资源情况决定采用哪种器件 。 例如,当选用 MSI组合逻辑器件设计电路时,对于多输出函数来说,通常选用译码器实现电路较方便,而对单输出函数来说,则选用数据选择器实现电路较方便 。
③ 根据真值表和选用逻辑器件的类型,写出相应的逻辑函数表达式 。
当采用 SSI集成门设计时,为了获得最简单的设计结果,应将逻辑函数表达式化简,并变换为与门电路相对应的最简式 。
④ 根据逻辑函数表达式及选用的逻辑器件画出逻辑电路图 。
第 4章 组合逻辑电路
【 例 4-3】 设计一个一位全减器 。
① 列真值表 。
全减器有三个输入变量:被减数 An,减数 Bn,低位向本位的借位 Cn;有两个输出变量:本位差 Dn,本位向高位的借位 C n+1,其框图如图 4 - 5(a)所示 。
表 4-4 全减器真值表
An Bn Cn Cn+1 Dn
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 0
1 1
1 1
1 0
0 1
0 0
0 0
1 1
第 4章 组合逻辑电路图 4-5 全减器框图及 K图
(a) 框图 ; (b) Cn+1; (c) Dn
全减器
D
n
C
n +1
A
n
B
n
C
n
( a )
0
A
n
B
n
C
n
00 01 11 10
0
1
( b )
1 0 0
1 1 1 0
0
A
n
B
n
C
n
00 01 11 10
0
1
( c )
1 0 1
1 0 1 0
第 4章 组合逻辑电路
② 选器件 。
选用非门,异或门,与或非门三种器件 。
③ 写逻辑函数式 。
首先画出 Cn+1和 Dn的 K图如图 4-5(b),(c)所示,然后根据选用的三种器件将 Cn+1,Dn分别化简为相应的函数式 。 由于该电路有两个输出函数,因此化简时应从整体出发,尽量利用公共项使整个电路门数最少,而不是将每个输出函数化为最简当用与或非门实现电路时,利用圈 0方法求出相应的与或非式为第 4章 组合逻辑电路
nnnnnnn
nnnnnnnnnnnnn
BACACBC
CBACBACBACBAD
1
当用异或门实现电路时,写出相应的函数式为
nnnnnnnnnn
nnnnnnnnn
nnnn
CBCBACBCBA
CBCBACBAC
CBAD
)()(
1
其中 为 Dn和 Cn+1的公共项。)(
nn CB?
第 4章 组合逻辑电路
④ 画出逻辑电路 。
图 4 – 6 全减器逻辑图
C
n
1
&
≥1
&
≥1
1
1
B
n
A
n
D
n
C
n + 1
( a )
=1
1
=1
D
n
&
&
& C
n + 1
C
n
B
n
A
n
( b )
第 4章 组合逻辑电路
【 例 4-4】 用门电路设计一个将 8421 BCD码转换为余 3
码的变换电路 。
解:
① 分析题意,列真值表 。
该电路输入为 8421 BCD码,输出为余 3码,因此它是一个四输入,四输出的码制变换电路,其框图如图 4-7(a)
所示 。 根据两种 BCD码的编码关系,列出真值表,如表 4-5
所示 。 由于 8421 BCD码不会出现 1010~1111这六种状态,
因此把它视为无关项 。
第 4章 组合逻辑电路
② 选择器件,写出输出函数表达式 。
题目没有具体指定用哪一种门电路,因此可以从门电路的数量,种类,速度等方面综合折衷考虑,选择最佳方案 。 该电路的化简过程如图 4-7(b)所示,首先得出最简与或式,然后进行函数式变换 。 变换时一方面应尽量利用公共项以减少门的数量,另一方面减少门的级数,
以减少传输延迟时间,因而得到输出函数式为
DE
DCDCCDDCE
DCBDCBDCBDBCBDCBE
BDBCABDBCAE
0
1
2
3
)()()(
第 4章 组合逻辑电路图 4 – 7 例 4 - 4框图及 K图码制变换电路
A
B
D
C
E
3
E
2
E
1
E
0
( a )
AB
C D
00 01 11 10
00
01
× 1
1 1×
11
10
1 ×
1 ×
×
×
E
3
AB
C D
00 01 11 10
00
01
1 ×
1 1×
111
10
×
1 ×
×
×
E
2
1
AB
C D
00 01 11 10
00
01
1 × 1
×
111
10
1 ×
×
×
×
E
1
1
AB
C D
00 01 11 10
00
01
1 × 1
×
11
10
×
1 1 ×
×
×
E
0
( b )
第 4章 组合逻辑电路
③ 画逻辑电路。
该电路采用了三种门电路,速度较快,逻辑图如图 4-8所示。
表 4 – 5 例 4-4真值表
A B C D E3 E2 E1 E0
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
× × × ×
× × × ×
× × × ×
× × × ×
× × × ×
× × × ×
第 4章 组合逻辑电路图 4 – 8 8421 BCD码转换为余 3码的电路
1
&
≥1
1
&
&
=1
=1
E
3
E
2
E
1
E
0
A
B
C
D
第 4章 组合逻辑电路
4.3 常用 MSI组合逻辑器件及应用
4.3.1
用文字,符号或数码表示特定对象的过程称为编码 。
在数字电路中用二进制代码表示有关的信号称为二进制编码 。 实现编码操作的电路就是编码器 。 按照被编码信号的不同特点和要求,有二进制编码器,二 —十进制编码器,
优先编码器之分 。
第 4章 组合逻辑电路
1,二进制编码器用 n位二进制代码对 N=2n个一般信号进行编码的电路,叫做二进制编码器 。 例如 n=3,可以对 8个一般信号进行编码 。
这种编码器有一个特点:任何时刻只允许输入一个有效信号,
不允许同时出现两个或两个以上的有效信号,因而其输入是一组有约束 (互相排斥 )的变量 。
现以三位二进制编码器为例,分析编码器的工作原理 。
图 4-9是三位二进制编码器的框图,它的输入是 I0~I78个高电平信号,输出是三位二进制代码 F2,F1,F0。 为此,又把它叫做 8线 —3线编码器 。 输出与输入 的对应关系如表 4-6所示 。
第 4章 组合逻辑电路图 4 – 9 三位二进制 8线 —3线编码器框图
8
线-3
线编码器
I
0
F
2
F
1
F
0
I
1
I
2
I
3
I
4
I
5
I
6
I
7
第 4章 组合逻辑电路表 4 – 6 三位二进制编码器的真值表输 入 输 出
I0 I1 I2 I3 I4 I5 I6 I7 F2 F1 F0
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
第 4章 组合逻辑电路由表 4 - 6可得出编码器的输出函数为因为任何时刻 I0~I7当中仅有一个取值为 1,利用这个约束条件将上式化简,得到
75310
76321
76542
IIIIF
IIIIF
IIIIF
第 4章 组合逻辑电路图 4 – 10 三位二进制编码器
≥1
≥1
≥1
F
2
F
1
F
0
I
7
I
6
I
5
I
4
I
3
I
2
I
1
第 4章 组合逻辑电路
2,二 —十进制 (BCD)
将十进制数 0,1,2,3,4,5,6,7,8,9 等 10
个信号编成二进制代码的电路叫做二 —十进制编码器 。 它的输入是代表 0~9这 10个数符的状态信号,有效信号为 1(即某信号为 1时,则表示要对它进行编码 ),输出是相应的 BCD码,
因此也称 10线 —4线编码器 。 它和二进制编码器特点一样,任何时刻只允许输入一个有效信号 。
例如,要实现一个十进制 8421BCD编码器,因输入变量相互排斥,可直接列出编码表如表 4-7所示 。 将表中各位输出码为 1的相应输入变量相加,便可得出编码器的各输出表达式:
第 4章 组合逻辑电路
97531
97531
7632
7632
7654
7654
98
98
YYYYYYYYYYA
YYYYYYYYB
YYYYYYYYC
YYYYD
第 4章 组合逻辑电路表 4 – 7 8421 BCD码编码表第 4章 组合逻辑电路图 4 - 11 8421BCD码编码器
& & &
1 1 1 1 1 1 1 1 1
ABC
Y
1
Y
2
Y
3
Y
4
Y
5
Y
6
Y
7
Y
8
Y
9
&
D
第 4章 组合逻辑电路
3.
优先编码器常用于优先中断系统和键盘编码 。 与普通编码器不同,优先编码器允许多个输入信号同时有效,但它只按其中优先级别最高的有效输入信号编码,对级别较低的输入信号不予理睬 。 常用的 MSI优先编码器有 10线 —4
线 (如 74LS147),8线 —3线 (如 74LS148)。
74LS148二进制优先编码器的逻辑符号如图 4-12所示 。
功能表如表 4-8所示 。
第 4章 组合逻辑电路图 4 – 12 74LS148逻辑符号
7
4
L
S
1
4
8
E
1
7
6
5
4
3
2
1
0
CS
C
B
A
E
0
第 4章 组合逻辑电路表 4 – 8 74LS148的功能表第 4章 组合逻辑电路图 4 - 12中,小圆圈表示低电平有效,各引出端功能如下:
7~0为状态信号输入端,低电平有效,7的优先级别最高,0的级别最低;
C,B,A 为代码 (反码 )输出端,C为最高位;
E1为使能 (允许 )输入端,低电平有效;当 E1=0时,电路允许编码;当 E1=1时,电路禁止编码,输出 C,B,A均为高电平; E0和 CS为使能输出端和优先标志输出端,主要用于级联和扩展 。
第 4章 组合逻辑电路从功能表可以看出,当 E1=1时,表示电路禁止编码,
即无论 7~0中有无有效信号,输出 C,B,A均为 1,并且
CS=E0=1。 当 E1=0时,表示电路允许编码,如果 7~0中有低电平 (有效信号 )输入,则输出 C,B,A是申请编码中级别最高的编码输出 (注意是反码 ),并且 CS=0,E0=1;如果 7~0中无有效信号输入,则输出 C,B,A均为高电平,
并且 CS=1,E0=0。
从另一个角度理解 E0和 CS的作用 。 当 E0=0,CS=1时,
表示该电路允许编码,但无码可编;当 E0=1,CS=0时,
表示该电路允许编码,并且正在编码;当 E0=CS=1时,表示该电路禁止编码,即无法编码 。
第 4章 组合逻辑电路
4.3.2 译码器
1,二进制译码器二进制译码器有 n个输入端 (即 n位二进制码 ),2n个输出线 。
常见的 MSI译码器有 2—4译码器,3—8译码器和 4—16译码器 。
4-13为 2—4译码器的逻辑电路及逻辑符号,其功能表如表 4-9所示,图 4-13中 A1,A0为地址输入端,A1为高位 。
为状态信号输出端,Yi上的非号表示低电平有效 。
E为使能端 (或称选通控制端 ),低电平有效 。 当 E=0时,允许译码器工作,E=1时,禁止译码器工作,所有输出 均为高电平 。 一般使能端有两个用途:一是可以引入选通脉冲,以抑制冒险脉冲的发生 (参看本章 4.4节 );二是可以用来扩展输入变量数 (功能扩展 )。
3210 YYYY,、、
30 ~ YY
30 ~ YY
第 4章 组合逻辑电路图 4 – 13 2—4译码器逻辑电路及符号
& &&&
1
1
1
1
1
Y
0
Y
3
Y
2
Y
1
A
1
A
0
E
( a ) ( b )
2 -4
译码器
A
1
E
A
0
Y
0
Y
3
Y
2
Y
1
第 4章 组合逻辑电路从表 4 - 9还可以看出,当 E=0时,2—4译码器的输出函数分别为:
如果用 表示 i端的输出,mi表示输入地址变量 A1,A0的一个最小项,则输出函数可写成
,,,,013012011010 AAYAAYAAYAAY
iY
)3,2,1,0( imEY ii
可见,译码器的每一个输出函数对应输入变量的一组取值,
当使能端有效 (E=0)时,它正好是输入变量最小项的非 。
因此变量译码器也称为最小项发生器 。
第 4章 组合逻辑电路表 4 – 9 2—4译码器功能表第 4章 组合逻辑电路图 4-14为 3—8译码器的逻辑符号,功能表如表 4-10所示 。
图中,A2,A1,A0为地址输入端,A2为高位 。 为状态信号输出端,低电平有效 。 E1和 E2A,E2B为使能端 。 由功能表可看出,只有当 E1为高,E2A,E2B都为低时,该译码器才有有效状态信号输出;若有一个条件不满足,则译码不工作,
输出全为高 。
70 ~ YY
图 4 – 14 3—8译码器逻辑符号
3 -8 译码器
E
1
E
2 A
E
2 B
A
1
A
2
A
0
Y
0
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
第 4章 组合逻辑电路表 4 – 10 3—8译码器功能表第 4章 组合逻辑电路如果用 表示 i端的输出,则输出函数为iY
BABA
ii
EEEEEEE
iEmY
221221
)7~0(
可见,当使能端有效 (E=1)时,每个输出函数也正好等于输入变量最小项的非 。
二进制译码器的应用很广,典型的应用有以下几种:
① 实现存储系统的地址译码;
② 实现逻辑函数;
③ 带使能端的译码器可用作数据分配器或脉冲分配器。
第 4章 组合逻辑电路
【 例 4 - 5】 试用 3—8译码器实现函数:
)7,6,5,4,3,2,1(
)7,4,0(
2
1
mF
mF
解,因 为 当 译 码 器 的 使 能 端 有 效 时,每个输出,因此只要将函数的输入变量加至译码器的地址输入端,并在输出端辅以少量的门电路,便可以实现逻辑函数 。
本题 F1,F2均为三变量函数,首先令函数的输入变量
ABC=A2A1A0,然后将 F1,F2变换为译码器输出的形式:
iii MmY
第 4章 组合逻辑电路图 4 – 15 例 4 - 5之电路
3 -8 译码器
E
1
E
2 A
E
2 B
A
1
A
2
A
0
Y
0
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
1A B C
&&
F
1
F
2
第 4章 组合逻辑电路
2,二 —十进制译码器二 —十进制译码器也称 BCD译码器,它的功能是将输入的一位 BCD码 (四位二元符号 )译成 10个高,低电平输出信号,因此也叫 4—10译码器 。
图 4-16是二 —十进制译码器 74LS42的逻辑图和逻辑符号 。 功能表如表 4 - 11所示 。
第 4章 组合逻辑电路图 4 – 16 二 —十进制译码器 74LS42
&
&
&
&
&
&
&
&
&
Y
0
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
Y
8
Y
9
&
1
1
1
1
1
1
1
1
A
1
A
2
A
3
图 4 - 1 6
4 -1 0
译码器
B C D
输入
A
2
A
3
A
1
A
0
Y
0
Y
1
Y
3
Y
2
Y
4
Y
5
Y
6
Y
7
Y
8
Y
9
A
0
第 4章 组合逻辑电路表 4 – 11 二 —十进制译码器 74LS42的真值表第 4章 组合逻辑电路
3.
与二进制译码器不同,显示译码器是用来驱动显示器件,以显示数字或字符的 MSI部件 。 显示译码器随显示器件的类型而异,与辉光数码管相配的是 BCD十进制译码器,而常用的发光二极管 (LED)数码管,液晶数码管,荧光数码管等是由 7个或 8个字段构成字形的,因而与之相配的有 BCD七段或 BCD八段显示译码器 。 现以驱动 LED数码管的 BCD七段译码器为例,简介显示译码原理 。
第 4章 组合逻辑电路发光二极管 (LED)由特殊的半导体材料砷化镓,磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式 LED
显示器件 (半导体显示器 )。 分段式显示器 (LED数码管 )由 7条线段围成 字型,每一段包含一个发光二极管 。 外加正向电压时二极管导通,发出清晰的光,有红,黄,绿等色 。 只要按规律控制各发光段的亮,灭,就可以显示各种字形或符号 。
LED数码管有共阳,共阴之分 。 图 4 - 17(a)是共阴式 LED数码管的原理图,图 4-17(b)是其表示符号 。 使用时,公共阴极接地,7个阳极 a~g由相应的 BCD七段译码器来驱动 (控制 ),如图
4 - 17(c)所示 。
第 4章 组合逻辑电路图 4 – 17 数字显示译码器
a b c d e f g
a
b
c
d
e
f
g
a gb c d e f
( a )
( b )
B C D
七段译码器
D
C
B
A
D
C
B
A
a
g
b
c
d
f
e
U
C C
R
L
× 7
( c )
U
C C
G N D G N D
第 4章 组合逻辑电路
BCD七段译码器的输入是一位 BCD码 (以 D,C,B,A
表示 ),输出是数码管各段的驱动信号 (以 Fa~Fg表示 ),也称 4—7译码器 。 若用它驱动共阴 LED数码管,则输出应为高有效,即输出为高 (1)时,相应显示段发光 。 例如,当输入 8421码 DCBA=0100时,应显示,即要求同时点亮
b,c,f,g段,熄灭 a,d,e段,故译码器的输出应为
Fa~Fg=0110011,这也是一组代码,常称为段码 。 同理,
根据组成 0~9这 10个字形的要求可以列出 8421BCD七段译码器的真值表,见表 4 - 12(未用码组省略 )。
第 4章 组合逻辑电路表 4-12 BCD七段译码器真值表第 4章 组合逻辑电路
MSI BCD七段译码器就是根据上述原理组成的,只是为了使用方便,增加了一些辅助控制电路 。 这类集成译码器产品很多,类型各异,它们的输出结构也各不相同,因而使用时要予以注意 。 图 4-17(c)是 BCD七段译码器驱动
LED数码管 (共阴 )的接法 。 图中,电阻是上拉电阻,也称限流电阻,当译码器内部带有上拉电阻时,则可省去 。 数字显示译码器的种类很多,现已有将计数器,锁存器,译码驱动电路集于一体的集成器件,还有连同数码显示器也集成在一起的电路可供选用 。
第 4章 组合逻辑电路
4.3.3 数据选择器数据选择器又称多路选择器 (Multiplexer,简称 MUX),其框图如图 4-18(a)所示 。 它有 2n位地址输入,2n位数据输入,1
位输出 。 每次在地址输入的控制下,从多路输入数据中选择一路输出,其功能类似于一个单刀多掷开关,见图 4 - 18(b)。
图 4 – 18 数据选择器框图及等效开关数据选择器
D
0
D
1
D
2
n - 1
F
A
0
A
1
A
n - 1
F
D
0
D
1
D
2
n - 1
(a)
(b)
第 4章 组合逻辑电路常用的数据选择器有 2选 1,4选 1,8选 1,16选 1等 。
图 4-19是 4选 1数据选择器的逻辑图及符号,其中
D0~D3是数据输入端,也称为数据通道; A1,A0是地址输入端,或称选择输入端; Y是输出端; E是使能端,低电平有效 。 当 E=1时,输出 Y=0,即无效,当 E=0时,在地址输入 A1,A0的控制下,从 D0~D3中选择一路输出,其功能表见表 4-13。 表 4 – 13 4选 1 MUX功能表
E A1 A0 Y
1
0
0
0
0
0 0
0 1
1 0
1 1
× ×
D0
D1
D2
D3
0
第 4章 组合逻辑电路图 4 – 19 4选 1 MUX
&
≥1
Y
1
1
1
1
D
1
D
2
D
3
D
0
A
0
A
1
E
( a ) 逻辑图
4 选1 M U X
( b ) 逻辑符号
Y
A
0
A
1
D
1
D
0
D
3
D
2
E
第 4章 组合逻辑电路当 E=0时,4选 1 MUX的逻辑功能还可以用以下表达式表示:
i
i
i Dm
DAADAADAADAAY
3
0
301201101001
式中,mi是地址变量 A1,A0所对应的最小项,称地址最小项 。 式 (4 - 13)还可以用矩阵形式表示为
T
m
DDDDAA
D
D
D
D
AAAAAAAAY )()()(
321001
3
2
1
0
01
0
10
101?
第 4章 组合逻辑电路式中 (A1A0)m是由最小项组成的行阵,(D0D1D2D3)T是由 D0、
D1,D2,D3组成的列阵的转置 。
图 4-20为 8选 1 MUX的逻辑符号,其功能表如表 4-14所示,
输出表达式为
T
mi
i
i DDDDDDDDAAADmY )()( 76543210012
7
0
图 4 – 20 8选 1MUX逻辑符号
8 选1 M U X
Y
A
0
A
2
D
1
D
0
D
3
D
2
D
5
D
4
D
7
D
6
EA 1
第 4章 组合逻辑电路表 4 – 14 8选 1 MUX功能表
E A2 A1 A0 Y
1
0
0
0
0
0
0
0
0
× × ×
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0
D0
D1
D2
D3
D4
D5
D6
D7
第 4章 组合逻辑电路
1,数据选择器的应用数据选择器的应用很广,典型应用有以下几个方面:
① 作数据选择,以实现多路信号分时传送。
② 实现组合逻辑函数。
③ 在数据传输时实现并 —串转换。
④ 产生序列信号。
对于 n个地址输入的 MUX,其表达式为
12
0
l
i
imY
第 4章 组合逻辑电路其中 mi是由地址变量 An-1,…,A1,A0组成的地址最小项 。 而任何一个具有 l个输入变量的逻辑函数都可以用最小项之和来表示:
12
0
l
i
imF
这里的 mi是由函数的输入变量 A,B,C,…组成的最小项 。
比较 Y和 F的表达式可以看出,只要将逻辑函数的输入变量 A,B,C,…加至数据选择器地址输入端,并适当选择 Di
的值,使 F=Y,就可以用 MUX实现函数 F。 因此,用 MUX实现函数的关键在于如何确定 Di的对应值 。
第 4章 组合逻辑电路
1) l≤n
l为函数的输入变量数,n为选用的 MUX的地址输入端数 。
当 l=n时,只要将函数的输入变量 A,B,C,…
MUX的地址输入端,根据函数 F所需要的最小项,确定
MUX中 Di的值 (0或 1)即可;当 l< n时,将 MUX的高位地址输入端不用 (接 0或 1),其余同上 。
第 4章 组合逻辑电路
【 例 4-6】 试用 8选 1MUX实现逻辑函数:
CBABAF
解,首先求出 F的最小项表达式 。
将 F填入 K图,如图 4 - 21所示,根据 K图可得
)7,5,4,3,2,1(),,( mCBAF
当采用 8选 1 MUX时,有
7
0
76543210012 )()(
i
T
mii DDDDDDDDAAADmY
令 A2=A,A1=B,A0=C,且令 D1=D2=D3=D4=D5=D7=1,D0=D6=0
则有 Y=(ABC)m(01111101)T = m(1,2,3,4,5,7),故 F=Y。 用 8
选 1MUX实现函数 F的逻辑图如图 4-22所示 。
第 4章 组合逻辑电路图 4 – 21 例 4 - 6之 K图
0
AB
C
00 01 11 10
0
1
1 0 1
1 1 1 1
第 4章 组合逻辑电路图 4-22 例 4 - 6之逻辑图需要注意的是,因为函数 F中各最小项的标号是按 A,B、
C的权为 4,2,1写出的,因此 A,B,C必须依次加到 A2,A1、
A0端 。
8 选1 M U X
Y
A
0
A
2
D
1
D
0
D
3
D
2
D
5
D
4
D
7
D
6
A
1
F
A
B
C
1
第 4章 组合逻辑电路
2) l> n
当逻辑函数的变量数 l大于 MUX的地址输入端数 n时,
不能采用上面所述的简单方法 。 如果从 l个输入变量中选择 n个直接作为 MUX的地址输入,那么,多余的 (l-n)个变量就要反映到 MUX的数据输入 Di端,即 Di是多余输入变量的函数,简称余函数 。 因此设计的关键是如何求出函数
Di。
确定余函数 Di可以采用代数法或降维 K图法。
第 4章 组合逻辑电路
【 例 4-7】 试用 4选 1MUX实现三变量函数:
CBABCACBACBAF
解:
① 首先选择地址输入,令 A1A0=AB,则多余输入变量为
C,余函数 Di=f(c)。
② 确定余函数 Di。
用代数法将 F的表达式变换为与 Y相应的形式:
CABCBACBABA
CBABCACCBACBABCACBACBAF
DAADAADAADAAY
1
)(
301201101001
第 4章 组合逻辑电路将 F与 Y对照可得
0,,,1 3210 DCDCDD
图 4 – 23 例 4 - 7之逻辑图
4 选1 M U X
Y
A
0
A
1
D
1
D
0
D
3
D
2
E
F
A
B
C
1
1
第 4章 组合逻辑电路
n变量的逻辑函数,可以用 n维 (即 n变量 )K图表示,也可以用 (n-1),(n-2),…维 K图表示,这种 (n-1),(n-2),…维 K图称为降维 K图 。
例 4-7中的三变量逻辑函数 F可以用图 4 -24(a)三变量 K图表示,也可以用图 (b)所示的以 A,B为变量,C为引入变量的二维
K图表示 。 降维的方法是在图 (a)中先求出在 AB各组取值下 F与
C变量之间的函数关系,然后将它们分别填入图 (b)的降维 K图中 。 从图 (b)中看出,该 K图中除了填 0,1外,还填入了变量
C、,因此它又称为引入变量 K图 。 如果选择 4选 1MUX的地址输入 A1A0=AB,将图 (c)所示 Y的 K图和图 (b)F的 K图相对照,
则很容易求出多余函数:
C
0,,,1 3210 DCDCDD
第 4章 组合逻辑电路为了减少画 K图的次数,也可以直接在 F的三变量 K图上求出余函数 Di。 例如在图 4 - 24(d)F 的 K图中选择 AB=A1A0,
则 AB变量 (即地址变量 )按其组合可直接将 F的 K图划分为四个子 K图,如图 (d)中虚线所示 。 每个子 K图所对应的函数就是余函数 Di,它们仅与多余输入变量 C有关,即 Di=f(C)。 在各子 K图上直接化简,便可求出余函数 Di的值,D0=1,D1=C,
D2=C,D3=0。 可见,后面这种方法更加简便,其求解步骤归纳如下:
① 画出函数 F的 K图。
② 选择地址输入。
③ 在 F的 K图上确定余函数 Di的范围。
④ 求余函数 Di。
⑤ 画出逻辑图。
第 4章 组合逻辑电路图 4-24 例 4-7卡诺图法
1
AB
C
00 01 11 10
0
1
0 0 1
1 1 0 0
1
A
B
0 1
0
1
C
C 0
( a ) ( b )
D
0
A
1
A
0
0 1
0
1
D
2
D
1
D
3
( c )
1
AB
C
00 01 11 10
0
1
0 0 1
1 1 0 0
( d )
F F
Y D
3
D
2
D
1
D
0
第 4章 组合逻辑电路
【 例 4-8】 试用 8选 1MUX实现逻辑函数:
)14,13,12,7,5,4,0(),,,( mDCBAF
① 画出 F的四变量 K图如图 4 - 25(a)所示。
图 4 – 25 例 4 - 8在 F之 K图上确定 Di
1
AB
C D
00 01 11 10
00
01
1 1 0
0 1 11
011
10
1 0
0 0 1
0
0
1
AB
C D
00 01 11 10
00
01
1 1 0
0 1 11
011
10
1 0
0 0 1
0
0
( a ) ( b )
D
0
D
2
D
6
D
4
D
1
D
3
D
7
D
5
D
0
D
1
D
3
D
2
D
4
D
5
D
7
D
6
第 4章 组合逻辑电路
② 选择地址变量,确定余函数 Di。
原则上,地址变量的选择是任意的,但选择合适了才能使电路简化 。
若选择 A2A1A0=ABC,则引入变量为 D。
在图 4-25(a)F之 K图上,确定 8选 1MUX数据输入 Di的范围,如图 (a)中虚线所示 。 化简各子 K图求得余函数为:
D0=D,D1=0,D2=1,D3=D,D4=D,D5=0,D6=1,D7=D,函数 F可表示为
Tm DDDDA B CYF )1010()(
其逻辑图如图 4 - 26(a)所示。
第 4章 组合逻辑电路图 4 – 26 例 4 - 8的逻辑图
8 选1 M U X
Y
A
0
A
2
D
1
D
0
D
3
D
2
D
5
D
4
D
7
D
6
A
1
F
A
B
C
E
D
1
1
8 选1 M U X
Y
A
0
A
2
D
1
D
0
D
3
D
2
D
5
D
4
D
7
D
6
A
1
F
A
C
D
E
B
1
( a ) ( b )
第 4章 组合逻辑电路比较图 4 - 26(a)和 (b)可看出,显然选择 A,C,D为地址变量时电路简单,其数据输入可以不附加任何门 。 因此,
为了在产生余函数时不附加门电路或尽量少附加门电路,
通常要将各种地址选择方案进行比较,这样做是比较麻烦的 。 比较简单的方法是观察 F的 K图或将 F化简,从 F的输入变量中选择出现比较多的输入变量加到地址输入端,这样就能简化电路 。
第 4章 组合逻辑电路
2,数据选择器的扩展
① 利用使能端进行扩展 。 图 4-27是将双 4选 1MUX扩展为 8选 1 MUX的逻辑图 。 其中 A2是 8选 1MUX地址端的最高位,A0是最低位 。
② 树状扩展 。 通过 MUX的级联用 2n+1个 2n选 1的 MUX
可以扩展为 (2n)2选 1的 MUX。
例如,n=2,即可用 5个 4选 1MUX实现 16选 1MUX。如图 4 - 28所示。
第 4章 组合逻辑电路双4 选1 M U X
Y
1
A
0
A
1
A
1
E
1 D
0
A
0
1 D
3
1 D
2
1 D
1
D
0
D
1
D
2
D
3
A
2
2 D
0
2 D
3
2 D
2
2 D
1
D
4
D
5
D
6
D
7
1
图 4 - 2 7
E
1
E
2
Y
2
≥1
Y
第 4章 组合逻辑电路图 4 – 28 5个 4选 1MUX实现 16选 1MUX
双4 选1 M U X
Y
A
0
A
1
A
1
D
0
A
0
D
3
D
2
D
1
D
0
D
3
D
0
D
3
D
2
D
1
D
4
D
7
双4 选1 M U X
Y
A
0
A
1
ED
0
D
3
D
2
D
1
D
8
D
11
D
0
D
3
D
2
D
1
D
12
D
15
E E
4 选1 M U X
A
3
A
2
A
1
A
0
Y Y
Y
E D
0
D
1
D
2
D
3
E
E
Y
第 4章 组合逻辑电路数据分配器又称多路分配器 (DEMUX),其功能与数据选择器相反,它可以将一路输入数据按 n位地址分送到
2n个数据输出端上 。 图 4 - 29为 1—4 DEMUX的逻辑符号,
其功能表如表 4 - 15所示 。 其中 D为数据输入,A1,A0为地址输入,Y0~Y3为数据输出,E为使能端 。
4.3.4 数据分配器表 4 – 15 1—4 DEMUX功能表
E A1 A0 Y0 Y1 Y2 Y3
1 × ×
0 0 0
0 0 1
0 1 0
0 1 1
1 1 1 1
D 1 1 1
1 D 1 1
1 1 D 1
1 1 1 D
第 4章 组合逻辑电路图 4-29 1—4DEMUX
数据分配器
D
E
A
1
A
0
Y
0
Y
1
Y
2
Y
3
图 4 - 2 9
第 4章 组合逻辑电路常用的 DEMUX 有 1—4DEMUX,1—8DEMUX,1—16
DEMUX等 。 从表 4-15看出,1—4 DEMUX与 2—4译码器功能相似,如果将 2-4译码器的使能端 E用作数据输入端 D(见图 4
- 30(a)),则 2—4译码器的输出可写成
)3,2,1,0( imDmEY iii
随着译码器输入地址的改变,可使某个最小项 mi为 1,则译码器相应的输出 Yi=D,因而只要改变译码器的地址输入 A、
B,就可以将输入数据 D分配到不同的通道上去 。 因此,凡是具有使能端的译码器,都可以用作数据分配器 。 图 4 -
30(b)是将 3—8译码器用作 1—8DEMUX的逻辑图 。 其中:
第 4章 组合逻辑电路
iii
BA
DmmEY
EEDE
1
221 0,
当改变地址输入 A,B,C时,Yi=D,即输入数据被反相分配到各输出端。
数据分配器常与数据选择器联用,以实现多通道数据分时传送。例如,发送端由 MUX将各路数据分时送到公共传输线上,接收端再由分配器将公共传输线上的数据适时分配到相应的输出端,而两者的地址输入都是同步控制的,其示意图如图 4 - 31所示。
第 4章 组合逻辑电路图 4 – 30 用译码器实现 DEMUX
2 -4 译码器
A
0
A
1
Y
0
Y
3
Y
2
Y
1
E
A B D
3 -8 译码器
A
1
A
2
A
0
E
2 B
E
2 A
E
1
CBA
( a ) ( b )
Y
0
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
D
第 4章 组合逻辑电路图 4 – 31 多通道数据分时传送
8 1
M U X
A
1
A
2
A
0
CBA
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
1 8
D E M U X
A
1
A
0
A
2
F
0
F
1
F
2
F
3
F
4
F
5
F
6
F
7
Y D
第 4章 组合逻辑电路
4.3.5 数码比较器
1,逻辑功能图 4 – 32 四位并行数码比较器逻辑符号
A
3
B
2
A
2
B
1
A
1
B
0
A
0
C
A <
B
C
A =
B
C
A >
B
P
A < B
P
A = B
P
A > B
B
3 C O M P
第 4章 组合逻辑电路由图 4 - 32可见,该比较器有 11 个输入端,三个输出端,其中输入端 A3~A0,B3~B0接两个待比较的四位二进制数;输出端 PA< B,PA=B,PA> B是三个比较结果; CA
< B,CA=B,CA> B是三个级联输入端,当扩大待比较的二进制数的位数时,可将低位比较器的输出端 PA< B、
PA=B,PA> B分别接到高位比较器的 CA< B,CA=B,CA> B
三个输入端 。
第 4章 组合逻辑电路表 4 – 16 四位比较器功能表第 4章 组合逻辑电路由表 4-16可以看出:
输出 PA> B=1(即 A大于 B)的条件是:最高位 A3> B3,或者最高位相等而次高位 A2> B2,或者最高位和次高位均相等而次低位 A1> B1,或者高三位相等而最低位 A0> B0,或者四位均相等而低位比较器来的输入 CA> B=1。
输出 PA=B=1的条件是,A3=B3,A2=B2,A1=B1,A0=B0,
且级联输入端 CA=B为 1。
输出 PA< B=1的条件请读者导出。
第 4章 组合逻辑电路
2,比较器的级联四位比较器可直接用来比较两个四位或小于四位的二进制整数的大小 。 当两个待比较的数的位数超过四位时,
往往要将多个比较器级联使用 。
【 例 4 - 9】 试比较两个七位二进制整数的大小 。
解,采用两块四位比较器组件,用分段比较的方法,
可以实现对七位二进制的比较,其逻辑图如图 4 - 33所示 。
第 4章 组合逻辑电路图 4 – 33 七位数的比较
1
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
A
4
B
4
A
5
B
5
A
6
B
6
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
P
A < B
P
A = B
P
A > B
P
A < B
P
A = B
P
A > B
A > B A = B A < B
C
A =
B
C
A =
B
C O M PC O M P
第 4章 组合逻辑电路
4.3.6 加法器图 4 – 34 四位串行进位并行加法器第 4章 组合逻辑电路图 4 – 35 超前进位加法器第 4章 组合逻辑电路超前进位产生器逻辑符号如图 4-35(c)所示,它是一种产生快速进位的集成电路 。 根据全加器进位信号令 Gn=AnBn,则可以得出
,)(1 nnnnnn CBABAC
nnnn CPGC 1
上式称为递推公式,Gn称进位产生函数,Pn称为进位传输函数 。 由式 (4 - 18)可以推出各级进位信号表达式,并构成快速进位的逻辑电路 (推导过程从略 )。 因此,图 4 - 35(c)中 P0、
P1,P2,P3分别为进位传输信号,G0,G1,G2,G3分别为进位产生输入信号,Cn+1,Cn+2,Cn+3分别为进位输出,FP和 FG
分别为进位传输输出和进位产生输出 。 其表达式为第 4章 组合逻辑电路
0123123233
0123
0120121223
010112
001
CPPPGPPGPGC
PPPPF
CPPPGPPGPGC
CPPGPGC
CPGC
G
P
nn
nn
nn
加法器在数字系统中的应用十分广泛 。 其除了能进行多位二进制数的加法运算外,也可以用来完成二进制减法运算 。 在利用加法器完成减法运算时,最通常的做法是将减数的二进制数的每一位变反 (0→ 1,1→ 0),并且在最低位加 1,其结果再同被减数相加 。 即采用减数求补相加法,A-B=A加 [ B] 反 加 1。
利用加法器可以实现码组变换。
第 4章 组合逻辑电路
【 例 4-10】 试采用四位加法器完成余 3码到 8421 BCD码的转换 。
解,因为对于同样一个十进制数,余 3码比相应的
8421BCD码多 3,因此要实现余 3码到 8421 BCD码的转换,只需从余 3码减去 (0011)即可 。 由于 0011各位变反后成为 1100,再加
1,即为 1101,因此,减 (0011)同加 (1101)等效 。 所以,在四位加法器的 A3~A0接上余 3码的四位代码,B3,B2,B1,B0上接固定代码 1101,就能实现转换,其逻辑电路如图 4-36所示 。
利用加法器还可以实现 8421 BCD码相加。
第 4章 组合逻辑电路图 4 – 36 全加器构成的余 3码到 8421BCD码的转换四位加法器
A
2
A
3
A
0
A
1
B
2
B
3
B
0
B
1
C
4
F
3
F
2
F
1
F
0
C
0
1
E
2
E
3
E
0
E
1
8 4 2 1 B C D 码第 4章 组合逻辑电路
【 例 4-11】 用四位加法器构成一位 8421 BCD码加法器 。
解,两个用 BCD码表示的数字相加,并以 BCD码给出其和的电路称为 BCD码加法器 。 两个一位十进制数相加,
若考虑低位的进位,其和应为 0~19。 8421 BCD码加法器的输入,输出都应用 8421 BCD码表示,而四位二进制加法器是按二进制数进行运算的,因此必须将输出的二进制数 (和数 )进行等值变换 。 表 4-17列出了与十进制数 0~19相应的二进制数及 8421 BCD码 。 从表中看出,当和小于等于 9时不需要修正,当和大于 9时需要加 6(0110)修正,即当和大于 9
时,二进制和数加 6(0110)才等于相应的 8421 BCD码 。 从表中还看出,当和大于 9时,D10=1,因此可以用 D10来控制是否需要修正,即 D10=1时,和加 6,D10=0时则不加 。
第 4章 组合逻辑电路
D10可以据表 4-17求出:当 B4=1时,D10一定为 1;当
B4=0,B3B2B1B0从 1010到 1111时,D10=1。 故可求得
1323410 BBBBBD
图 4-37表示用 2片四位二进制全加器完成两个一位 8421
BCD码的加法运算电路,第 Ⅰ 片完成二进数相加的操作,第
Ⅱ 片完成和的修正操作 。 图中,第一片输出的二进制数为 C4、
S3,S2,S1,S0,第二片完成和的修正操作,根据式 (4-20)可求得 8421BCD码的进位输出为
13234 SSSSCC
第 4章 组合逻辑电路表 4 – 17 十进制数 0~19与相应的二进制数及 8421BCD码第 4章 组合逻辑电路图 4 – 37 一位 8421 BCD码加法器
Ⅰ
C
0
A
0
A
1
A
2
A
3
B
0
B
1
B
2
B
3
C
4
S
3
S
2
S
1
S
0
被加数
A
加数进位输入四位加法器
Ⅱ
C
0
A
0
A
1
A
2
A
3
B
0
B
1
B
2
B
3
C
4
S
3
S
2
S
1
S
0
和数
S
四位加法器
&
&
&
1
进位输出
C
B
第 4章 组合逻辑电路
4.4 组合逻辑电路中的竞争与冒险
1,竞争与冒险在组合电路中,某一输入变量经不同途径传输后,到达电路中某一会合点的时间有先有后,这种现象称为竞争 。
由于竞争而使电路输出发生瞬时错误的现象称为冒险 。 例如,
图 4-38(a)所示电路,其输出函数为 F=AB+AC。 当 B=C=1时,
应有 F=A+A=1,即不管 A如何变化,输出 F恒为高 。 而实际上由于门电路有延迟,当 A由高变低时,在输出波形上出现了一个负脉冲,如图 4 - 38(b)所示 。
第 4章 组合逻辑电路这就是由竞争所造成的错误输出,这种宽度很窄的脉冲,
人们形象地称其为毛刺 (图中波形忽略了信号的前后沿,
并假定各门的延迟时间均为 tpd)。 这种负向毛刺也称为 0型冒险; 反之,若出现正向毛刺称 1型冒险 。
又如图 4-39所示情况,加到同一门电路的两输入信号同时向相反方向变化,由于过渡过程不同也会出现竞争,
也有可能在输出端出现毛刺 (图中未考虑门的延迟时间 )。
这种由于多个输入变量同时变化引起的冒险称为功能冒险 。
第 4章 组合逻辑电路竞争是经常发生的,但不一定都会产生毛刺 。 如图 4 -
38(b)中 A由 0变 1时也有竞争,却未产生毛刺,所以竞争不一定造成危害 。 但一旦出现了毛刺,若下级负载对毛刺敏感,则毛刺将使负载电路发生误动作 。
第 4章 组合逻辑电路图 4 – 38 竞争与冒险现象示例 1
&
&
&
B
A
C
F
( a )
( b )
A
A
AB
AC
F
t
p d
1
第 4章 组合逻辑电路图 4 – 39 竞争与冒险现象示例 2
第 4章 组合逻辑电路
2,竞争与冒险的识别
① 代数法 。 当函数表达式在一定条件下可以简化成
F=X+X,或 F=X·X的形式时,X的变化可能引起冒险现象 。
② K图法 。 如果两卡诺圈相切,而相切处又未被其它卡诺圈包围,则可能发生冒险现象 。 如图 4-40所示电路,其 K
图示于图 4 - 40(a),该图上两卡诺圈相切,当输入变量 ABC
由 111变为 110时,F从一个卡诺圈进入另一个卡诺圈,若把圈外函数值视为 0,则函数值可能按 1 - 0 - 1变化,从而出现毛刺 。
第 4章 组合逻辑电路
③ 实验法 。 两个以上的输入变量同时变化引起的功能冒险难以用上述方法判断 。 因而发现冒险现象最有效的方法是实验 。
利用示波器仔细观察在输入信号各种变化情况下的输出信号,
发现毛刺则分析原因并加以消除,这是经常采用的办法 。
图 4 – 40 用 K图识别和消除逻辑冒险
AB
C
00 01 11 10
0
1
1
1 1 1
( a )
AB
C
00 01 11 10
0
1
1
1 1 1
( b )
BC
第 4章 组合逻辑电路
3.
当电路中存在冒险现象时,必须设法消除它,否则会导致错误结果 。 消除冒险现象通常有如下方法:
① 加滤波电路,消除毛刺的影响 。 毛刺很窄,其宽度可以和门的传输时间相比拟,因此常在输出端并联滤波电容 C,或在本级输出端与下级输入端之间,串接一个如图 4 - 41所示的积分电路来消除其影响 。 但 C或 R,C的引入会使输出波形边沿变斜,故参数要选择合适,一般由实验确定 。
第 4章 组合逻辑电路图 4 – 41 加滤波电路排除冒险
( a )
R
C U
0
( b )
U
1
U
0
第 4章 组合逻辑电路
② 加选通信号,避开毛刺 。 毛刺仅发生在输入信号变化的瞬间,因此在这段时间内先将门封住,待电路进入稳态后,再加选通脉冲选取输出结果 。 该方法简单易行,但选通信号的作用时间和极性等一定要合适 。 例如,像图 4-
42所示的那样,在组合电路中的输出门的一个输入端,加入一个选通信号,即可有效地消除任何冒险现象的影响 。
如图 4-42所示电路中,尽管可能有冒险发生,但是输出端却不会反映出来,因为当险象发生时,选通信号的低电平将输出门封锁了 。
第 4章 组合逻辑电路图 4 – 42 避开冒险的一种方法
&
&
&
B
A
C
F
选通脉冲
1
第 4章 组合逻辑电路
③ 增加冗余项消除逻辑冒险 。 例如,对于图 4 - 40所示电路,只要在其 K图上两卡诺圈相切处加一个卡诺圈 (示于图
4 - 40(b))就可消除逻辑冒险 。 这样,函数表达式变为
BCCAABF
即增加了一个冗余项 。 冗余项是简化函数时应舍弃的多余项,
但为了电路工作可靠又需加上它 。 可见,最简化设计不一定都是最佳的 。
以上三种方法各有特点 。 增加冗余项适用范围有限;加滤波电容是实验调试阶段常采取的应急措施;加选通脉冲则是行之有效的方法 。 目前许多 MSI器件都备有使能 (选通控制 )
端,为加选通信号消除毛刺提供了方便 。