第三章 组合逻辑电路
学习要求:
?了解组合逻辑电路的特点;
?熟练掌握组合电路分析和设计的基本方法;
?掌握几种常用的组合逻辑电路的功能及其
中规模芯片的使用方法和应用;
?了解竞争、冒险的概念及消除冒险的基本
方法。
3.1 概述
如果一个逻辑电路在任何时刻产生的稳定
输出值仅仅取决于该时刻各输入值的组合,而
与过去的输入值无关,则称该电路为组合逻辑
电路,
组合逻辑电路需要讨论的两个基本问题
是分析与设计,
如前所述,组合逻辑电路的功能描述有逻
辑图、逻辑表达式和真值表等;
3.2 组合逻辑电路的分析
所谓逻辑电路的分析, 就是找出给定逻辑电路输出和输入
之间的逻辑关系, 并指出电路的逻辑功能 。 分析过程一般按下
列步骤进行:
① 根据给定的逻辑电路, 从输入端开始, 逐级推导出输出
端的逻辑函数表达式 。
② 根据输出函数表达式 ( 必要时化简 ) 列出真值表 。
③ 用文字概括出电路的逻辑功能。
解,A B CP ?1
ABCAPAP ???? 12
A B CBPBP ???? 13
A B CCPCP ???? 14
ABCCABCBABCAPPPF ????????? 432
?化简:
CBAA B C
CBAA B CF
????
??? )(
?1
A
CB
A
C
F
P1
P2
P3
P4
B
&
&
&
&
例 1,分析下图 给定的组合电路。
&
?1A
CB
?1 F
?列出真值表
?功能评述
由真值可知,当 A、
B,C取相同值时,F为
1,否则 F为 0。 所以该
电路是一个, 一致性
判定 电路 "。
A B C F
0 0 0 1
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
例 2,分析图示电路, 指出该电路的逻辑功能 。
例 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
解:
① 写出函数表达式:
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
例 2真值表
1111 ???? ???? iiiiiiiiiiiii CBACBACBACBAS
11 ?? ??? iiiiiii CACBBAC
变换后得:
③ 分析功能 。
由真值表可见, 当三个输入变量 Ai,Bi,Ci中有一个为
1或三个同时为 1时, 输出 Si=1,而当三个变量中有两个或
两个以上同时为 1时, 输出 Ci+1=1,它正好实现了 Ai,Bi,Ci
三个一位二进制数的加法运算功能, 这种电路称为一位全
加器 。 其中, Ai,Bi分别为两个一位二进制数相加的被加数,
加数, Ci为低位向本位的进位, Si为本位和, Ci+1是本位向
高位的进位 。 一位全加器的符号如图 (b)所示 。
如果不考虑低位来的进位, 即 Ci=0,则这样的电路称
为半加器, 其真值表和逻辑电路分别如下所示 。
半加器真值表
Ai Bi Ci+1 Si
0 0
0 1
1 0
1 1
0 0
0 1
0 1
1 0
半加器 电路图
&
A
i
B
i
S
i
C
i + 1
=1
3.3 组合逻辑电路的设计
设计任务:
根据给定要求的文字描述或逻辑函数,在特定
条件下,找出用最少的逻辑门来实现给定逻辑功
能的方案,并画出逻辑电路图。 原则:电路要最
简(要求所用器件的种类和数量都尽可能少,且
器件之间的连线也最少 )。
设计的一般步骤:
根据题意列真值表
逻辑式 ?化简
卡诺图 ?化简
画逻辑电路图写最简逻辑式
组合逻辑电路的设计一般可按以下步骤进行:
① 逻辑抽象 。 将文字描述的逻辑命题转换成真值表叫逻辑抽象, 首先
要分析逻辑命题, 确定输入, 输出变量;然后用二值逻辑的 0,1两种状态
分别对输入, 输出变量进行逻辑赋值, 即确定 0,1 的具体含义;最后根据
输出与输入之间的逻辑关系列出真值表 。
② 选择器件类型 。 根据命题的要求和器件的功能及其资源情况决定采
用哪种器件 。 例如, 当选用 MSI组合逻辑器件设计电路时, 对于多输出函
数来说, 通常选用译码器实现电路较方便, 而对单输出函数来说, 则选用
数据选择器实现电路较方便 。
③ 根据真值表和选用逻辑器件的类型, 写出相应的逻辑函数表达式 。
当采用 SSI集成门设计时, 为了获得最简单的设计结果, 应将逻辑函数表
达式化简, 并变换为与门电路相对应的最简式 。
④ 根据逻辑函数表达式及选用的逻辑器件画出逻辑电路图 。
例 1:用与非门设计一个三变量 "多数表决电路 "。
解,第一步,建立真值表;
输入即表达者,共有 3个,分别
用 A,B,C表示,并设“同意”
为 1,“反对”为 0。
输出即决议是否通过,用 F表示,
并设 "通过 "为 1,"否决 "为 0。
A B C F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
第二步,写出 "最小项之和 "表达式;
第三步,化简并转换成适当形式;
第四步,画出逻辑图。
1
00 01 11 10
0
1
AB
C
111
&
A
C
B
F&
&
&
F(A,B,C)=?m(3,5,6,7)
F(A,B,C)=AB+AC+BC
=AB+AC+BC =AB?AC ? BC
例 2:用与非门设计一位
数制范围指示器,十进
制数用 8421BCD码表示,
当输入大于 5时,电路输
出为 1,否则为 0。
解,第一步 建立真值表
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
A B C D F
0
0
0
0
0
1
1
1
1
1
d
d
d
d
d
d
8421BCD码只利用
了十种组合,还冗
余六种组合。
00 01 11 10
00
01
11
10
AB
CD
d
d
1 1
0
0
1 d
d1
0
0
0 1
d
d
第二步 写出逻辑表达式
第三步 化简
F(A,B,C,D)=?m(5,6,7,8,9)+?d(10,11,12,13,14,15)
F(A,B,C,D)
=A+BD+BC
第四步 画出逻辑电路图
A
FB
1
&
&
C &
?
D
F(A,B,C,D)=A + BD + BC
=A·BD·BC
例 3:
用“与非”门 设
计一个将 8421BCD码转
换成余三码的代码转换
电路。
解:
第一步:
建立真值表
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
B8 B4 B2 B1 W X Y Z
0
0
0
0
0
1
1
1
1
1
d
d
d
d
d
d
1
0
1
0
1
0
1
0
1
0
d
d
d
d
d
d
1
0
0
1
1
0
0
1
1
0
d
d
d
d
d
d
0
1
1
1
1
0
0
0
0
1
d
d
d
d
d
d
第二步,写出函数表达式;
W(A,B,C,D)=Σm(5,6,7,8,9)+Σd(10,11,12,13,14,15)
X(A,B,C,D)=Σm(1,2,3,4,9)+Σd(10,11,12,13,14,15)
Y(A,B,C,D)=Σm(0,3,4,7,8)+Σd(10,11,12,13,14,15)
Z(A,B,C,D)=Σm(0,2,4,6,8)+Σd(10,11,12,13,14,15)
第三步,化简并转换成适当形式;
W=A+BC+BD
X=BC+BD+BCD
Y=CD+CD
Z=D
00 01 11 10
00
01
11
10
AB
CD
d
d
W WX
XY
YZ
WZ d
dWY
X
XZ
XYZ WYZ
d
d
CD
CD
用与非门实现要转换成与非 —与非表达式:
W=A+BC+BD=A·BC·BD
X=BC+BD+BCD=BC·BD·BCD
Y=CD+CD =CD·CD
Z=D
第四步,画出电路图
&
C
X
&&
&
B D
W
&&
&
&
Z Y
&
&
D C B A
3.4 常用组合逻辑器件及应用
3.4.1
用文字, 符号或数码表示特定对象的过程称为编码 。
在数字电路中用二进制代码表示有关的信号称为二进制编
码 。 实现编码操作的电路就是编码器 。 按照被编码信号的
不同特点和要求, 有二进制编码器, 二 —十进制编码器,
优先编码器之分 。
1,二进制编码器
用 n位二进制代码对 N=2n个一般信号进行编码的电路, 叫
做二进制编码器 。 例如 n=3,可以对 8个一般信号进行编码 。
这种编码器有一个特点:任何时刻只允许输入一个有效信号,
不允许同时出现两个或两个以上的有效信号, 因而其输入是
一组有约束 (互相排斥 )的变量 。
现以三位二进制编码器为例, 分析编码器的工作原理 。
图 4-9是三位二进制编码器的框图, 它的输入是 I0~I78个高电
平信号, 输出是三位二进制代码 F2,F1,F0。 为此, 又把它
叫做 8线 —3线编码器 。 输出与输入 的对应关系如表 4-6所示 。
图 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 – 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 - 6可得出编码器的输出函数为
因为任何时刻 I0~I7当中仅有一个取值为 1,利用这个约束
条件将上式化简,得到
?
?
?
??
?
?
????
????
????
75310
76321
76542
IIIIF
IIIIF
IIIIF
图 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
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的相应输入变量相加, 便可得出编码器的各输出表达
式:
?
?
?
?
?
?
?
?
?
??????????
????????
????????
????
97531
97531
7632
7632
7654
7654
98
98
YYYYYYYYYYA
YYYYYYYYB
YYYYYYYYC
YYYYD
表 4 – 7 8421 BCD码编码表
图 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
3.
优先编码器常用于优先中断系统和键盘编码 。 与普通
编码器不同, 优先编码器允许多个输入信号同时有效, 但
它只按其中优先级别最高的有效输入信号编码, 对级别较
低的输入信号不予理睬 。 常用的 MSI优先编码器有 10线 —4
线 (如 74LS147),8线 —3线 (如 74LS148)。
74LS148二进制优先编码器的逻辑符号如图 4-12所示 。
功能表如表 4-8所示 。
图 4 – 12 74LS148逻辑符号
7
4
LS
1
4
8
E
1
7
6
5
4
3
2
1
0
CS
C
B
A
E
0
表 4 – 8 74LS148的功能表
图 4 - 12中, 小圆圈表示低电平有效, 各引出端功能
如下:
7~0为状态信号输入端, 低电平有效, 7的优先级别最
高, 0的级别最低;
C,B,A 为代码 (反码 )输出端, C为最高位;
S1为使能 (允许 )输入端, 低电平有效;当 S1=0时, 电
路允许编码;当 S1=1时, 电路禁止编码, 输出 C,B,A均
为高电平; S0和 CS为使能输出端和优先标志输出端, 主要
用于级联和扩展 。
从功能表可以看出, 当 S1=1时, 表示电路禁止编码,
即无论 7~0中有无有效信号, 输出 C,B,A均为 1,并且
CS=S0=1。 当 S1=0时, 表示电路允许编码, 如果 7~0中有
低电平 (有效信号 )输入, 则输出 C,B,A是申请编码中级
别最高的编码输出 (注意是反码 ),并且 CS=0,S0=1;如果
7~0中无有效信号输入, 则输出 C,B,A均为高电平, 并
且 CS=1,S0=0。
从另一个角度理解 S0和 CS的作用 。 当 S0=0,CS=1时,
表示该电路允许编码, 但无码可编;当 S0=1,CS=0时,
表示该电路允许编码, 并且正在编码;当 S0=CS=1时, 表
示该电路禁止编码, 即无法编码 。
用两片 74LS148接成 16线 -4线优先编码器,
把代码状态的特定含义翻译出来的过程称为译码,实
现译码操作的电路称为 译码器 。译码是编码的反操作。
1,二进制译码器
设二进制译码器的输入端为 n个,则输出端为 2n个,
且对应于输入代码的每一种状态,2n个输出中只有一
个为 1(或为 0),其余全为 0(或为 1)。常见的 MSI
译码器有 2—4译码器,3—8译码器和 4—16译码器。
二进制译码器可以译出输入变量的全部状态,故又
称为变量译码器。
3.4.2 译码器
常用的译码器有二进制译码器、码变换(二 -十进制)译
码器和显示译码器等。
3位二进制译码器,
A
2
A
1
A
0
Y
0
Y
1
Y
2
Y
3
Y
4
Y
5
Y
6
Y
7
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
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 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
真值表
输 入, 3位二进制代码
输 出, 8个互斥的信号
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
0127
0126
0125
0124
0123
0122
0121
0120
AAAY
AAAY
AAAY
AAAY
AAAY
AAAY
AAAY
AAAY
& & & & & && &
1 1 1
A
2
A
1
A
0
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
Y
0
逻辑表达式 逻辑图
电路特点,与门组成的阵列
3 线 -8 线译码器
集成二进制译码器 74LS138:
集成二进制译码器 74LS138:
A2,A1,A0为二进制译码输入端,为译码输出端(低电平
有效),S1、, 为选通控制端。当 S1= 1,时,
译码器处于工作状态;当 S1= 0,时,译码器处于
禁止状态。
07 ~YY
2S 3S 032 ?? SS
132 ?? SS
可见,译码器的每
一个输出函数对应输
入变量的一组取值,
当使能端有效时,它
正好是输入变量最小
项的非。 因此变量译
码器也称为最小项发
生器。
真值表
输 入,自然二进制码 输 出,低电平有效
用两片 3线 -8线译码器 74LS138组成 4线 -16线译码器,
如果用 表示 i端的输出,则输出函数为iY
321321
)7~0(
SSSSSSS
iSmY ii
??????
??
可见, 当使能端有效 (S=1)时, 每个输出函数也正好等于
输入变量最小项的非 。
二进制译码器的应用很广, 典型的应用有以下几种:
① 实现存储系统的地址译码;
② 实现逻辑函数;
③ 带使能端的译码器可用作数据分配器或脉冲分配器。
【 例 1】 试用 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 – 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
??
?
?
?
??
??
?
?
?
?
76531
74211
)7,6,5,3(),,(
)7,4,2,1(),,(
mmmmmCBAC
mmmmmCBAS
iiii
iiii
例 2:用二进制译码器实现一位全加器
&
&
A
i
B
i
C
i -1
1
S
i
C
i
A
0
Y
0
A
1
Y
1
A
2
Y
2
Y
3
Y
4
ST
A
Y
5
ST
B
Y
6
ST
C
Y
7
74L S 138
② 画出用二进制译码器和与非门实现这些函数的接线图。
① 写出函数的标准与或表达式,并变换为与非 -与非形式。
用译码器构成数据分配器
把二进制译码器的使能端作为数据输入端,二进制代码输入端作
为地址码输入端,则带使能端的二进制译码器就是数据分配器。
S 3
S
1
S
2




1
Y
0
Y
1
Y
2
S 3 74 L S 138 Y
3
Y
4
S 1 Y
5
S 2
Y
6
Y
7
A
2
A
1
A
0
D 由 74LS138构成的 1路 -8路数据分配器
数据输入端
S1=1
S2=0
地址输入端
%%%%%%%%%%%%
321321
)7~0(
SSSSSSS
iSmY ii
??????
??
D
iSmY ii
?
?? )7~0(
/S3=DS1=1
由于:
/S2=0
所以:
2,二 —十进制译码器
二 —十进制译码器也称 BCD译码器, 它的功能是将
输入的一位 BCD码 (四位二元符号 )译成 10个高, 低电平
输出信号, 因此也叫 4—10译码器 。
图 3.3.10是二 —十进制译码器 74LS42的逻辑图和逻
辑符号 。 功能表如表所示 。
图 3.3.10 二 —十进制译码器 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
表,二 —十进制译码器 74LS42的真值表
3.
与二进制译码器不同, 显示译码器是用来驱动显示
器件, 以显示数字或字符的 MSI部件 。 显示译码器随显
示器件的类型而异, 与辉光数码管相配的是 BCD十进制
译码器, 而常用的发光二极管 (LSD)数码管, 液晶数码
管, 荧光数码管等是由 7个或 8个字段构成字形的, 因而
与之相配的有 BCD七段或 BCD八段显示译码器 。 现以驱
动 LSD数码管的 BCD七段译码器为例, 简介显示译码原
理 。
发光二极管 (LSD)由特殊的半导体材料砷化镓, 磷砷化镓
等制成, 可以单独使用, 也可以组装成分段式或点阵式 LSD显
示器件 (半导体显示器 )。 分段式显示器 (LSD数码管 )由 7条线
段围成 字型, 每一段包含一个发光二极管 。 外加正向电压
时二极管导通, 发出清晰的光, 有红, 黄, 绿等色 。 只要按
规律控制各发光段的亮, 灭, 就可以显示各种字形或符号 。
LSD数码管有共阳, 共阴之分 。 图 3.3.11(a)是共阴式 LSD数码
管的原理图, 图 3.3.11(b)是其表示符号 。 使用时, 公共阴极接
地, 7个阳极 a~g由相应的 BCD七段译码器来驱动 (控制 ),如图
3.3.11(c)所示 。
图 3.3.11 数字显示译码器
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
BCD七段译码器的输入是一位 BCD码 (以 D,C,B,A
表示 ),输出是数码管各段的驱动信号 (以 Fa~Fg表示 ),也
称 4—7译码器 。 若用它驱动共阴 LSD数码管, 则输出应为
高有效, 即输出为高 (1)时, 相应显示段发光 。 例如, 当
输入 8421码 DCBA=0100时, 应显示, 即要求同时点亮
b,c,f,g段, 熄灭 a,d,S段, 故译码器的输出应为
Fa~Fg=0110011,这也是一组代码, 常称为段码 。 同理,
根据组成 0~9这 10个字形的要求可以列出 8421BCD七段译
码器的真值表, 见表 4 - 12(未用码组省略 )。
b=c=f=g=1,
a=d=e=0时
c=d=e=f=g=1,
a=b=0时
共阴极
表 4-12 BCD七段译码器真值表
A
3
A
2
A
1
A
0
00 01 11 10
00 1 0 × 1
01 0 1 × 1
11 1 1 × ×
10 1 0 × ×
0201023 AAAAAAAa ????
a的卡诺图
A
3
A
2
A
1
A
0
00 01 11 10
00 1 1 × 1
01 1 0 × 1
11 1 1 × ×
10 1 0 × ×
b的卡诺图 A 3 A 2
A
1
A
0
00 01 11 10
00 1 1 × 1
01 1 1 × 1
11 1 1 × ×
10 0 1 × ×
c的卡诺图
01012 AAAAAb ??? 012
AAAc ???
A
3
A
2
A
1
A
0
00 01 11 10
00 1 0 × 1
01 0 1 × 0
11 1 0 × ×
10 1 1 × ×
d的卡诺图 A 3 A 2
A
1
A
0
00 01 11 10
00 1 0 × 1
01 0 0 × 0
11 0 0 × ×
10 1 1 × ×
e的卡诺图
012120102 AAAAAAAAAd ???? 0102 AAAe ??
A
3
A
2
A
1
A
0
00 01 11 10
00 1 1 × 1
01 0 1 × 1
11 0 0 × ×
10 0 1 × ×
f的卡诺图 A 3 A 2
A
1
A
0
00 01 11 10
00 0 1 × 1
01 0 1 × 1
11 1 0 × ×
10 1 1 × ×
g的卡诺图
0212013 AAAAAAAf ????
1212013 AAAAAAAg ????
逻辑表达式
1212013
0212013
0102
012120102
012
01012
0201023
AAAAAAAg
AAAAAAAf
AAAAe
AAAAAAAAAd
AAAc
AAAAAb
AAAAAAAa
????
????
??
????
???
???
????
逻辑图
a b c d e f g
A
3
A
2
A
1
A
0
11 1 1
& & & & & & & & &
& & & & & & &
MSI BCD七段译码器就是根据上述原理组成的, 只是
为了使用方便, 增加了一些辅助控制电路 。 这类集成译码
器产品很多, 类型各异, 它们的输出结构也各不相同, 因
而使用时要予以注意 。 图 3.3.11(c)是 BCD七段译码器驱动
LSD数码管 (共阴 )的接法 。 图中, 电阻是上拉电阻, 也称限
流电阻, 当译码器内部带有上拉电阻时, 则可省去 。 数字
显示译码器的种类很多, 现已有将计数器, 锁存器, 译码
驱动电路集于一体的集成器件, 还有连同数码显示器也集
成在一起的电路可供选用 。
集成显示译码器 74LS48
16 15 1 4 1 3 1 2 11 1 0 9
74L S 48
1 2 3 4 5 6 7 8
V
CC
f g a b c d e
A
1
A
2
L T B I/ R B O R B I A
3
A
0
G ND
引脚排列图
输 入 输 出功能或
十进制数
LT
RBI
A
3
A
2
A
1
A
0
R B OBI /
a b c d e f g
R B OBI / ( 灭灯 )
LT
( 试灯 )
RBI
( 动态灭零 )
× ×
0 ×
1 0
××××
××××
0 0 0 0
0( 输入 )
1
0
0 0 0 0 0 0 0
1 1 1 1 1 1 1
0 0 0 0 0 0 0
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1 1
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
1 ×
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1 1 1 1 1 1 0
0 1 1 0 0 0 0
1 1 0 1 1 0 1
1 1 1 1 0 0 1
0 1 1 0 0 1 1
1 0 1 1 0 1 1
0 0 1 1 1 1 1
1 1 1 0 0 0 0
1 1 1 1 1 1 1
1 1 1 0 0 1 1
0 0 0 1 1 0 1
0 0 1 1 0 0 1
0 1 0 0 0 1 1
1 0 0 1 0 1 1
0 0 0 1 1 1 1
0 0 0 0 0 0 0



由真值表可以看出,为了增强器件的功能,在 74L S 48 中还设置了
一些辅助端。这些辅助端的功能如下:
( 1 )试灯输入端
LT
:低电平有效。当
LT
= 0 时,数码管的七段
应全亮,与输入的译码信号无关。本输入端用于测试数码管的好坏。
( 2 )动态灭零输入端
RB I
:低电平有效。当
LT
= 1,
RB I

0,且译码输入全为 0 时,该位输出不显示,即 0 字被熄灭;当译码输
入不全为 0 时,该位正常显示。本输入端用于消隐无效的 0 。如数据
003 4,50 可显示为 34, 5 。
( 3 )灭灯输入 / 动态灭零输出端
RBOBI /
:这是一个特殊的端
钮,有时用作输入,有时用作输出。当
RBOBI /
作为输入使用,且
RBOBI /
= 0 时,数码管七段全灭,与译码输入无关。当
RBOBI /

为输出使用时,受控于
LT

R B I
:当
LT
= 1 且
R B I
= 0 时,
RBOBI /
= 0 ;其它情况下
RBOBI /
= 1 。本端钮主要用于显示多位
数字时,多个译码器之间的连接。
辅助端功能
1
0 0 0 0 0 0 0 0 1 0 0 1



0 0 1 1 0 1 1 1 0 0 0 0
LT
R B I R B O
A
3
A
2
A
1
A
0
LT
R B I R B O
A
3
A
2
A
1
A
0
LT
R B O R B I
A
3
A
2
A
1
A
0
LT
R B O R B I
A
3
A
2
A
1
A
0
LT
R B O R B I
A
3
A
2
A
1
A
0
LT
R B I R B O
A
3
A
2
A
1
A
0
数码显示电路的动态灭零
整数部分:高位的 RBOBI / 与低位的 RBI 相连
小数部分:低位的 RBOBI / 与高位的 RBI 相连
小结
把代码状态的特定含义翻译出来的过程称为译
码,实现译码操作的电路称为译码器。实际上译
码器就是把一种代码转换为另一种代码的电路。
译码器分二进制译码器, 十进制译码器及字符
显示译码器, 各种译码器的工作原理类似, 设计
方法也相同 。
二进制译码器能产生输入变量的全部最小项,
而任一组合逻辑函数总能表示成最小项之和的形
式, 所以, 由二进制译码器加上或门即可实现任
何组合逻辑函数 。 此外, 用 4线 -16线译码器还可
实现 BCD码到十进制码的变换 。
1、半加器, 能对两个 1位二进制数进行相加而求得和及进位的逻辑电路称为半加器。 半加器真值表
A
i
B
i
S
i
C
i
0 0
0 1
1 0
1 1
0 0
1 0
1 0
0 1
iii
iiiiiii
BAC
BABABAS
?
????
=1
&
A
i
B
i
S
i
C
i
A
i
B
i
S
i
C
i

CO
半加器符号
半加器电路图
加数
本位
的和
向高
位的
进位
3.4.3 加法器
一,一位加法器
2、全加器
能对两个 1位二进制数进行相加并考虑低位来的进位,即相当
于 3个 1位二进制数相加,求得和及进位的逻辑电路称为全加器。
A
i
B
i
C
i- 1
S
i
C
i
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 0
1 0
0 1
1 0
0 1
0 1
1 1
A i B i
C i -1 00 01 11 10
0 0 1 0 1
1 1 0 1 0
S i 的卡诺图
A i B i
C i -1 00 01 11 10
0 0 0 1 0
1 0 1 1 1
C i 的卡诺图
17421 ???????? iiii CBAmmmmS
iiiii
iii
BACBA
BAmmC
???
???
? 1
53
)(
Ai,Bi:加数,Ci-1,低位
来的进位,Si:本位的和,
Ci:向高位的进位。
iiiii
iiiiiiiiiiiiiiiii
BACBA
BACBABABACBACBABAmmC
???
?????????
?
???
1
11153
)(
)(
全加器的逻辑图和逻辑符号
=1
&
&
A
i
B
i
C
i -1
S
i
C
i
( a ) 逻辑图 ( c ) 国标符号
A
i
B
i
C
i -1
S
i
C
i
A
i
B
i
C
i -1
S
i
C
i
(b) 曾用符号
C I C O

&
FA=1
1
111111
11117421
)()()()(
?
??????
????
???
????????
????????
iii
iiiiiiiiiiiiiiii
iiiiiiiiiiiii
CBA
CBACBACBCBACBCBA
CBACBACBACBAmmmmS
11 ?? ??? iiiiiii CBCABAC
用与门和或门实现
1111 ???? ???? iiiiiiiiiiiii CBACBACBACBAS
S
i
C
i
1 1 1
A
i
B
i
C
i - 1
≥ ≥
& & & & & & &
实现多位二进制数相加的电路
1、串行进位加法器
构成,把 n位全加器串联起来,低位全加器的进位输出连接
到相邻的高位全加器的进位输入。
C
3
S
3
C
2
S
2
C
1
S
1
C
0
S
0
C
0 - 1A
3
B
3
A
2
B
2
A
1
B
1
A
0
B
0
∑ CO
CI
CO
CI
∑ ∑ ∑CO
CI
CO
CI
CI
CI
CI
CI
CI
CI
CI
CI
特点,进位信号是由低位向高位逐级传递的,速度不高。
一,多位加法器:
2、并行进位加法器(超前进位加法器)
iii BAG ? iii BAP ??进位生成项 进位传递条件
11)( ?? ????? iiiiiiiii CPGCBABAC
进位表达式
?
?
?
???????
??
?
?
?
??????
??
?
?
?
?????
??
?
?
?
??
??
?
?
?
?
?
10012301231232332333
233
100120121221222
122
10010110111
011
10000
1000
CPPPPGPPPGPPGPGCPGC
CPS
CPPPGPPGPGCPGC
CPS
CPPGPGCPGC
CPS
CPGC
CPS
11 ?? ????? iiiiii CPCBAS
和表达式
4位超前进位加
法器递推公式
S
0
S
1
S
2
S
3
C
3
C
0 -1
A
0
B
0
A
1
B
1
A
2
B
2
A
3
B
3
=1
&
&
≥ 1
P
0
G
0
P
1
G
1
P
2
G
2
P
3
G
3
≥ 1
≥ 1
=1
&
&
&
&
=1
&
&
&
C
0
C
1
C
2
≥ 1
&
&
=1
=1
=1
=1
&
=1
&
&
超前进位发生器
1 6 15 1 4 1 3 1 2 1 1 1 0 9
74L S 283
1 2 3 4 5 6 7 8
V
CC
B
2
A
2
S
2
B
3
A
3
S
3
C
3
TTL 加法器 74L S 283 引脚图
1 6 15 1 4 1 3 1 2 1 1 1 0 9
4008
1 2 3 4 5 6 7 8
V
DD
B
3
C
3
S
3
S
2
S
1
S
0
C
0 - 1
CM O S 加法器 4008 引脚图
A
3
B
2
A
2
B
1
A
1
B
0
A
0
V
SSS 1 B 1 A 1 S 0 B 0 A 0 C 0 - 1 G ND
A
15
~ A
12
B
15
~ B
12
A
11
~ A
8
B
11
~ B
8
A
7
~ A
4
B
7
~ B
4
A
3
~ A
0
B
3
~ B
0
S
15
S
14
S
13
S
12
S
11
S
10
S
9
S
8
S
7
S
6
S
5
S
4
S
3
S
2
S
1
S
0
4 位加法器 4 位加法器 4 位加法器 4 位加法器
C
15
C
11
C
7
C
3
C
0 -1
加法器的级连





4








三, 加法器的应用
1,8421 BCD码转换为余 3码
B C D 码 0 0 1 1
余 3 码
S
3
S
2
S
1
S
0
C
3
C
0 -1
A
3
A
2
A
1
A
0
B
3
B
2
B
1
B
0
S
3
S
2
S
1
S
0
C
3
C
0 -1
A
3
A
2
A
1
A
0
B
3
B
2
B
1
B
0
=1 =1 =1 =1
被加数 / 被减数 加数 / 减数 加减控制
BCD码 +0011=余 3码
2、二进制并行加法 /减法器
C0-1= 0时,B?0=B,电路
执行 A+B运算;当 C0-1= 1
时,B?1=B,电路执行 A
- B=A+B运算。
两个用 BCD码表示的数字相加, 并以 BCD码给出其和
的电路称为 BCD码加法器 。 两个一位十进制数相加, 若考
虑低位的进位, 其和应为 0~19。 8421 BCD码加法器的输入,
输出都应用 8421 BCD码表示, 而四位二进制加法器是按二
进制数进行运算的, 因此必须将输出的二进制数 (和数 )进
行等值变换 。 下表列出了与十进制数 0~19相应的二进制数
及 8421 BCD码 。 从表中看出, 当和小于等于 9时不需要修
正, 当和大于 9时需要加 6(0110)修正, 即当和大于 9时, 二
进制和数加 6(0110)才等于相应的 8421 BCD码 。 从表中还
看出, 当和大于 9时, D10=1,因此可以用 D10来控制是否需
要修正, 即 D10=1时, 和加 6,D10=0时则不加 。
3,用四位加法器构成一位 8421 BCD码加法器:
十进制数 0~19与相应的二进制数及 8421BCD码
D10可以据表求出:当 B4=1时, D10一定为 1;当 B4=0,
B3B2B1B0从 1010到 1111时, D10=1。 故可求得
1323410 BBBBBD ???
下图表示用 2片四位二进制全加器完成两个一位 8421
BCD码的加法运算电路, 第 Ⅰ 片完成二进数相加的操作, 第
Ⅱ 片完成和的修正操作 。 图中, 第一片输出的二进制数为 C4、
S3,S2,S1,S0,第二片完成和的修正操作, 根据上式可求
得 8421BCD码的进位输出为
13234 SSSSCC ???
一位 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
小结
能对两个 1位二进制数进行相加而求得和及进位的
逻辑电路称为半加器 。
能对两个 1位二进制数进行相加并考虑低位来的进
位, 即相当于 3个 1位二进制数的相加, 求得和及进
位的逻辑电路称为全加器 。
实现多位二进制数相加的电路称为加法器 。 按照
进位方式的不同, 加法器分为串行进位加法器和超
前进位加法器两种 。 串行进位加法器电路简单, 但
速度较慢, 超前进位加法器速度较快, 但电路复杂 。
加法器除用来实现两个二进制数相加外, 还可用
来设计代码转换电路, 二进制减法器和十进制加法
器等 。
用来完成两个二进制数的大小比较的逻辑电路称
为数值比较器,简称比较器。
一, 1位数值比较器
设 A> B时 L1= 1; A< B时 L2= 1; A= B时 L3= 1。
得 1位数值比较器的真值表。
A B L
1
( A > B ) L
2
( A < B ) L
3
( A = B )
0 0
0 1
1 0
1 1
0 0 1
0 1 0
1 0 0
0 0 1
3.3.4 数值比较器
?
?
?
??
?
?
????
?
?
BABAABBAL
BAL
BAL
3
2
1
A
B
1
1
≥ 1
L 1 ( A > B )
L 3 ( A = B )
L 2 ( A < B )
&
&








二, 4位数值比较器
比 较 输 入 级 联 输 入 输 出
A
3
B
3
A
2
B
2
A
1
B
1
A
0
B
0
A ' > B ' A ' < B ' A ' = B ' A > B A < B A = B
A
3
> B
3
A
3
< B
3
A
3
= B
3
A
3
= B
3
A
3
= B
3
A
3
= B
3
A
3
= B
3
A
3
= B
3
A
3
= B
3
A
3
= B
3
A
3
= B
3
×
×
A
2
> B
2
A
2
< B
2
A
2
= B
2
A
2
= B
2
A
2
= B
2
A
2
= B
2
A
2
= B
2
A
2
= B
2
A
2
= B
2
×
×
×
×
A
1
> B
1
A
1
< B
1
A
1
= B
1
A
1
= B
1
A
1
= B
1
A
1
= B
1
A
1
= B
1
×
×
×
×
×
×
A
0
> B
0
A
0
< B
0
A
0
= B
0
A
0
= B
0
A
0
= B
0
× × ×
× × ×
× × ×
× × ×
× × ×
× × ×
× × ×
× × ×
1 0 0
× 1 0
× 0 1
1 0 0
0 1 0
1 0 0
0 1 0
1 0 0
0 1 0
1 0 0
0 1 0
1 0 0
0 1 0
0 0 1
由上表可写出输出的逻辑表达式为,
由上式可得 4位数码比较器 CC14585的逻辑图如下 。
A
3
B
3
A
2
B
2
A
1
B
1
A
0
B
0
A ' > B ' A ' < B ' A ' = B '
L
1
( A > B ) L
2
( A < B ) L
3
( A = B )
≥ 1
1
1
&
≥ 1
1 1
≥ 1
1 1
≥ 1
1
≥ 1 ≥ 1
&&&&&& & & & &
1
&& && && &&
逻辑图
图 3.3.32 4位数码比较器 CC14585的逻辑图
比较器的级联
16 15 1 4 1 3 1 2 11 1 0 9
74L S 85
1 2 3 4 5 6 7 8
V
CC
A
3
B
2
A
2
A
1
B
1
A
0
B
0
B
3
A ' < B ' A ' = B ' A ' > B ' A > B A = B A < B G ND
(a ) TTL 数值比较器引脚图
16 15 1 4 1 3 1 2 11 1 0 9
4585
1 2 3 4 5 6 7 8
V
DD
A
3
B
3
A > B A < B
B
0
A
0
B
1
B
2
A
2
A = B A ' > B ' A ' < B ' A ' = B ' A
1
V
SS
(b) CM O S 数值比较器引脚图
集成数值比较器
四位比较器可直接用来比较两个四位或小于四位的二进
制整数的大小。当两个待比较的数的位数超过四位时,往
往要将多个比较器级联使用。
如用两片 CC14585组成一个 8位数值比较器如下图示:
数据选择器又称多路选择器 (Multiplexer,简称 MUX),其
框图如图所示 。 它有 2n位地址输入, 2n位数据输入, 1位输出 。
每次在地址输入的控制下, 从多路输入数据中选择一路输出,
其功能类似于一个单刀多掷开关,
数据选择器框图及等效开关





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)
3.4.5 数据选择器
1,4选 1数据选择器
输 入
D A
1
A
0
输 出
Y
D
0
0 0
D
1
0 1
D
2
1 0
D
3
1 1
D
0
D
1
D
2
D
3
?
?
?????
3
0
013012011010
i
ii mDAADAADAADAADY
真值表
逻辑表达式








由地址码决
定从4路输
入中选择哪
1路输出。
逻辑图
11
11
D
0
D
1
D
2
D
3
A
1
A
0
& & & &
≥ 1
Y
2,集成数据选择器
16 15 1 4 1 3 1 2 11 1 0 9
74L S 153
1 2 3 4 5 6 7 8
V
CC
2 S
A
0
2 D
3
2 D
2
2 D
1
2 D
0
2 Y
1 S A
1
1 D
3
1 D
2
1 D
1
1D
0
1 Y G N D
集成双 4选 1数据选择器 74LS153
输 入 输 出
S D A
1
A
0
Y
1 × × ×
0 D
0
0 0
0 D
1
0 1
0 D
2
1 0
0 D
3
1 1
0
D
0
D
1
D
2
D
3
选通控制端 S为低电平有效,即 S=0时芯片被选
中,处于工作状态; S=1时芯片被禁止,Y≡0。
集成 8选 1数
据选择器
74LS151
16 15 1 4 1 3 1 2 11 1 0 9
74L S 151
1 2 3 4 5 6 7 8
V
CC
D
4
D
5
D
6
D
7
A
0
A
1
A
2
D
3
D
2
D
1
D
0
Y Y
S G N D
?
?
?????
7
0
012701210120
i
ii mDAAADAAADAAADY ?
?
?
?????
7
0
012701210120
i
ii mDAAADAAADAAADY ?
S = 0 时
S = 1 时,选择器被禁止,无论地址码是什么,Y 总是等于 0
输 入 输 出
D A
2
A
1
A
0
S Y Y
× × × × 1
D
0
0 0 0 0
D
1
0 0 1 0
D
2
0 1 0 0
D
3
0 1 1 0
D
4
1 0 0 0
D
5
1 0 1 0
D
6
1 1 0 0
D
7
1 1 1 0
0 1
D
0
0
D
D
1
1
D
D
2
2
D
D
3
3
D
D
4
4
D
D
5
5
D
D
6
6
D
D
7
7
D
7
4
L
S
1
5
1




Y Y
7 4 L S 1 5 1 ( 2 )
D
7
? D
0
A
2
A
1
A
0
E N
Y Y
7 4 L S 1 5 1 ( 1 )
D
7
? D
0
A
2
A
1
A
0
E N
1
≥ 1
D
15
? D
8
D
7
? D
0
A
3
A
2
A
1
A
0
S
2
S
1
Y
2
Y
1
Y
Y
2
Y
1
数据选择器的扩展
A 3 = 0 时,1S = 0, 2S = 1,片 (2 ) 禁止、片 ( 1 ) 工作
A 3 = 1 时,1S = 1, 2S = 0,片 (1 ) 禁止、片 (2 ) 工作
3,用数据选择器实现逻辑函数
基本原理
数据选择器的主要特点:
?
?
?
?
12
0
n
i
ii mDY
( 1)具有标准与或表达式的形式。即:
( 2)提供了地址变量的全部最小项。
( 3)一般情况下,Di可以当作一个变量处理。
因为任何组合逻辑函数总可以用最小项之和的标准形
式构成。所以,利用数据选择器的输入 Di来选择地址变量
组成的最小项 mi,可以实现任何所需的组合逻辑函数。
只要将逻辑函数的输入变量 A,B,C,…加至数据选择器地址
输入端,并适当选择 Di的值,就可以用 MUX实现函数 F。因此,
用 MUX实现函数的关键在于如何确定 Di的对应值。
1) l≤n
l为函数的输入变量数, n为选用的 MUX的地址输入端数 。
当 l=n时, 只要将函数的输入变量 A,B,C,…
MUX的地址输入端, 根据函数 F所需要的最小项, 确定
MUX中 Di的值 (0或 1)即可;当 l< n时, 将 MUX的高位地址输
入端不用 (接 0或 1),其余同上 。
【 例 1】 试用 8选 1MUX实现逻辑函数:
CBABAF ???
解,首先求出 F的最小项表达式 。
将 F填入 K图,根据 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的逻辑图如图所示 。
?
例 1之 K图
0
AB
C
00 01 11 10
0
1
1 0 1
1 1 1 1
例 1之逻辑图
需要注意的是, 因为函数 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
2) l> n
当逻辑函数的变量数 l大于 MUX的地址输入端数 n时,
不能采用上面所述的简单方法 。 如果从 l个输入变量中选
择 n个直接作为 MUX的地址输入, 那么, 多余的 (l-n)个变
量就要反映到 MUX的数据输入 Di端, 即 Di是多余输入变
量的函数, 简称余函数 。 因此设计的关键是如何求出函数
Di。
确定余函数 Di可以采用代数法或降维 K图法。
【 例 2】 试用 4选 1MUX实现三变量函数:
CBABCACBACBAF ????
解:
① 首先选择地址输入, 令 A1A0=AB,则多余输入变量为
C,余函数 Di=f(c)。
② 确定余函数 Di。
用代数法将 F的表达式变换为与 Y相应的形式:
CABCBACBABA
CBABCACCBACBABCACBACBAF
DAADAADAADAAY
????????
????????
????
1
)(
301201101001
将 F与 Y对照可得
0,,,1 3210 ???? DCDCDD
例 2之逻辑图
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
n变量的逻辑函数, 可以用 n维 (即 n变量 )K图表示, 也可以
用 (n-1),(n-2),…维 K图表示, 这种 (n-1),(n-2),…维 K图称为
降维 K图 。
例 2中的三变量逻辑函数 F可以用图 (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
图,例 2卡诺图法
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
0,,,1 3210 ???? DCDCDD
为了减少画 K图的次数, 也可以直接在 F的三变量 K图上
求出余函数 Di。 例如在图 (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。
⑤ 画出逻辑图。
【 例 3】 试用 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
② 选择地址变量,确定余函数 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 DDDDABCYF )1010()(??
其逻辑图如图 4 - 26(a)所示。
图 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 - 26(a)和 (b)可看出, 显然选择 A,C,D为地
址变量时电路简单, 其数据输入可以不附加任何门 。 因此,
为了在产生余函数时不附加门电路或尽量少附加门电路,
通常要将各种地址选择方案进行比较, 这样做是比较麻烦
的 。 比较简单的方法是观察 F的 K图或将 F化简, 从 F的输
入变量中选择出现比较多的输入变量加到地址输入端, 这
样就能简化电路 。
?? )13,12,11,10,9,5,4,3,0(),,,( mDCBAL
用数据选择器实现函数:例
① 选用 8选 1数据选择器 74LS151
② 设 A2=A,A1=B,A0=C
AB
CD 00 01 11 10
00 1 1 1 0
01 0 1 1 1
11 1 0 0 1
10 0 0 0 1
③ 求 Di D
0=D D2=1 D6=1 D4=D
D1=D D3=0 D7=0 D5=1
D D 1 0 D 1 1 0 A B C 0
L
Y
74 L S 15 1
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
A
2
A
1
A
0
E N
④ 画连线图
小结
数据选择器是能够从来自不同地址的多路数字信
息中任意选出所需要的一路信息作为输出的组合电
路,至于选择哪一路数据输出,则完全由当时的选
择控制信号决定。
数据选择器具有标准与或表达式的形式,提供了
地址变量的全部最小项,并且一般情况下,Di可以
当作一个变量处理。因为任何组合逻辑函数总可以
用最小项之和的标准形式构成。所以,利用数据选
择器的输入 Di来选择地址变量组成的最小项 mi,可
以实现任何所需的组合逻辑函数。
用数据选择器实现组合逻辑函数的步骤:选用数
据选择器 → 确定地址变量 → 求 Di→ 画连线图。
1,竞争与冒险
在组合电路中, 某一输入变量经不同途径传输后, 到达
电路中某一会合点的时间有先有后, 这种现象称为竞争 。
由于竞争而使电路输出发生瞬时错误的现象称为冒险 。 例如,
图 4-38(a)所示电路, 其输出函数为 F=AB+AC。 当 B=C=1时,
应有 F=A+A=1,即不管 A如何变化, 输出 F恒为高 。 而实际
上由于门电路有延迟, 当 A由高变低时, 在输出波形上出现
了一个负脉冲, 如图 4 - 38(b)所示 。
3.5 组合逻辑电路中的竞争与冒险
图 4 – 38 竞争与冒险现象示例 1
&
&
&
B
A
C
F
( a )
( b )
A
A
AB
AC
F
t
p d
1
这就是由竞争所造成的错误输出, 这种宽度很窄的脉冲,
人们形象地称其为毛刺 (图中波形忽略了信号的前后沿,
并假定各门的延迟时间均为 tpd)。
又如图 4-39所示情况, 加到同一门电路的两输入信号
同时向相反方向变化, 由于过渡过程不同也会出现竞争,
也有可能在输出端出现毛刺 (图中未考虑门的延迟时间 )。
这种由于多个输入变量同时变化引起的冒险称为功能冒
险 。
图 4 – 39 竞争与冒险现象示例 2
竞争是经常发生的, 但不一定都会产生毛刺 。 如图 4 -
38(b)中 A由 0变 1时也有竞争, 却未产生毛刺, 所以竞争不
一定造成危害 。 但一旦出现了毛刺, 若下级负载对毛刺敏
感, 则毛刺将使负载电路发生误动作 。
竞争 —冒险,由于门电路延迟时间(传输时间)的存在,
产生组合逻辑之外的干扰脉冲的现象称为竞争 —冒险现象。
2,竞争与冒险的识别
① 代数法 。 当函数表达式在一定条件下可以简化成
F=X+X,或 F=X·X的形式时, X的变化可能引起冒险现象 。
② K图法 。 如果两卡诺圈相切, 而相切处又未被其它卡
诺圈包围, 则可能发生冒险现象 。 如图 4-40所示电路, 其 K
图示于图 4 - 40(a),该图上两卡诺圈相切, 当输入变量 ABC
由 111变为 110时, F从一个卡诺圈进入另一个卡诺圈, 若把
圈外函数值视为 0,则函数值可能按 1 - 0 - 1变化, 从而出现
毛刺 。
③ 实验法 。 两个以上的输入变量同时变化引起的功能冒险
难以用上述方法判断 。 因而发现冒险现象最有效的方法是实验 。
利用示波器仔细观察在输入信号各种变化情况下的输出信号,
发现毛刺则分析原因并加以消除, 这是经常采用的办法 。
图 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
3.
当电路中存在冒险现象时, 必须设法消除它, 否则会
导致错误结果 。 消除冒险现象通常有如下方法:
① 加滤波电路, 消除毛刺的影响 。 毛刺很窄, 其宽
度可以和门的传输时间相比拟, 因此常在输出端并联滤波
电容 C,或在本级输出端与下级输入端之间, 串接一个如
图 4 - 41所示的积分电路来消除其影响 。 但 C或 R,C的引
入会使输出波形边沿变斜, 故参数要选择合适, 一般由实
验确定 。
图 4 – 41 加滤波电路排除冒险
( a )
R
C U
0
( b )
U
1
U
0
② 加选通信号, 避开毛刺 。 毛刺仅发生在输入信号变
化的瞬间, 因此在这段时间内先将门封住, 待电路进入稳
态后, 再加选通脉冲选取输出结果 。 该方法简单易行, 但
选通信号的作用时间和极性等一定要合适 。 例如, 像图 4-
42所示的那样, 在组合电路中的输出门的一个输入端, 加
入一个选通信号, 即可有效地消除任何冒险现象的影响 。
如图 4-42所示电路中, 尽管可能有冒险发生, 但是输出端
却不会反映出来, 因为当险象发生时, 选通信号的低电平
将输出门封锁了 。
图 4 – 42 避开冒险的一种方法
&
&
&
B
A
C
F
选通脉冲
1
③ 增加冗余项消除逻辑冒险 。 例如, 对于图 4 - 40所示
电路, 只要在其 K图上两卡诺圈相切处加一个卡诺圈 (示于图
4 - 40(b))就可消除逻辑冒险 。 这样, 函数表达式变为
BCCAABF ???
即增加了一个冗余项 。 冗余项是简化函数时应舍弃的多余项,
但为了电路工作可靠又需加上它 。 可见, 最简化设计不一定
都是最佳的 。
以上三种方法各有特点 。 增加冗余项适用范围有限;加
滤波电容是实验调试阶段常采取的应急措施;加选通脉冲则
是行之有效的方法 。 目前许多 MSI器件都备有使能 (选通控制 )
端, 为加选通信号消除毛刺提供了方便 。
BCBAY ??
Y
1
AB
C 00 01 11 10
0 0 0 0 1
1 0 1 1 1
A
B
C
1
2
3
≥ 1
4&
&
有圈相切,则有竞争冒险
ACBCBAY ???
增加冗余项,
消除竞争冒险
Y
1
A
B
C
1
2
5
3
4
≥ 1
&
&
&