第四章 组合逻辑电路
组合逻辑电路的分析
译码器( Decoder)
数据选择器
运算器(算数逻辑单元 ALU)
A
B
C
Y
&
&
& &
逻辑图逻辑表达式
1
1
最简与或表达式化简 2
ABY?1
BCY?2
CAY?3
1Y
2Y
3Y
Y
2
CABCABY
从输入到输出逐级写出
ACBCABYYYY 321
组合逻辑电路的分析
A B C Y
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
最简与或表达式
3
真值表
CABCABY
3
4
电路的逻辑功能当输入 A,B、
C中有 2个或 3
个为 1时,输出 Y为 1,否则输出 Y为 0。
所以这个电路实际上是一种
3人表决用的组合电路:只要有 2票或 3票同意,表决就通过。
4
Y 3
≥ 1
≥ 1
1
1
A
B
C Y
Y 1
Y 2
≥ 1逻辑图
BBACBABYYYY
BYYY
BAY
CBAY




213
213
2
1
逻辑表达式例:
BABBABBACBAY
最简与或表达式真值表
A B C Y
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
1
1
1
1
1
0
0
A
B
C
Y&
用与非门实现电路的输出 Y只与输入 A,B
有关,而与输入 C无关。 Y和 A、
B的逻辑关系为,A,B中只要一个为 0,Y=1; A,B全为 1时,
Y=0。所以 Y和 A,B的逻辑关系为与非运算的关系。
电路的逻辑功能
ABBAY
4.1译码器
把代码状态的特定含义翻译出来的过程称为译码,实现译码操作的电路称为译码器。
译码器就是把一种代码转换为另一种代码的电路译码器的功能分类
1,用来表示输入变量状态全部组合的,称变量译码器
N位输入,2N输出。
常见的集成化 译码器 有 2-4,3-8,4-16
2,码制译码器:如 8421码变换为循环码等
3,显示译码器:控制数码管显示
4.1.1变量译码器
设二进制译码器的输入端为 n个,则输出端为 2n个,且对应于输入代码的每一种状态,2n个输出中只有一个为 1(或为 0),其余全为 0(或为 1)。二进制译码器可以译出输入变量的全部状态,
故又称为变量译码器。
1.译码器的设计需求 (设计步骤一)
CPU
外设 0 外设 1 外设 2 外设 3
D0~D31
D0~D31 D0~D31 D0~D31 D0~D31
译码器A0A1 A0A1
CS CS CS CS
Y0 Y1 Y2 Y3
A0=0,A1=0时,外设 0工作
A0=1,A1=0时,外设 1工作
A0=0,A1=1时,外设 2工作
A0=1,A1=1时,外设 3工作
A0=0,A1=0时,Y0=0,Y1,Y2,Y3=1
A0=1,A1=0时,Y1=0,Y0,Y2,Y3=1
A0=0,A1=1时,Y2=0,Y0,Y1,Y3=1
A0=1,A1=1时,Y3=0,Y0,Y1,Y2=1
功能级设计要求:
信号级设计要求:
2.2-4译码器真值表和输出表达式
(设计步骤二)
定义,2- 4译码器是指 2输入- 4输出的变量译码器。 2输入,4输出,对应输入的每一种组合,
唯一只有一个输出为,0”.
真值表
1 1 1 01 1
1 1 0 10 1
1 0 1 11 0
0 1 1 10 0
Y0 Y1 Y2 Y3A B
输 入 输 出只用与非门实现的输出表达式
Y0
Y1
Y2
Y3
A
B
逻辑示意图
ABY
BAY
BAY
BAY
3
2
1
0
输出表达式按照输出表达式画出逻辑图
(步骤三)
ABY
BAY
BAY
BAY
3
2
1
0
输出表达式
A
B
A
B
Y0
Y1
Y2
Y3有没有什么问题?
4.2-4检查可能出现的问题
(步骤四)
2输入- 4输出译码器电路由输入缓冲部分和译码部分组成。
输入缓冲部分使得对外负载只有一个,减轻前面电路的负担。
A
B
A
B
Y0
Y1
Y2
Y3
'A
'B
输入缓冲部分 译 码 部 分
5.画逻辑图时注意几个问题要求:逻辑图要美观,可读性要好具体要注意:
逻辑图中逻辑门 (或逻辑器件 )布局要合理,逻辑性强
逻辑图中的连线布局合理,无连接交叉点要少
相接连线的交叉点要画上连接符
6.3-8译码器定义,逻辑示意图定义,3- 8译码器是指 3输入- 8输出的变量译码器。
Y0
Y1
Y2
Y4
A
B
3- 8译码器逻辑示意图
C为最高位,
A为最低位
Y3
Y5
Y6
Y7
C
3-8译码器真值表和逻辑表达式只用与非门实现的输出表达式
A B CY
BCAY
CBAY
CBAY
CABY
CBAY
CBAY
CBAY
7
6
5
4
3
2
1
0
输出表达式真 值 表
0 1 1 1 1 1 1 10 0 0
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7A B C
输 入 输 出
1 0 1 1 1 1 1 11 0 0
0 1 0
1 1 0
1 1 0 1 1 1 1 1
1 1 1 0 1 1 1 1
1 1 1 1 1 0 1 11 0 1
1 1 1 1 1 1 0 10 1 1
1 1 1 1 1 1 1 1 1 1 0
0 0 1 1 1 1 1 0 1 1 1
A
B
A
B
Y0
Y1
Y2
Y3
CC
Y4
Y5
Y6
Y7
'A
'B
'C
A B CY
BCAY
CBAY
CBAY
CABY
CBAY
CBAY
CBAY
7
6
5
4
3
2
1
0
按照输出表达式画出 3- 8译码器的逻辑图功能表
1 1 1 00 1 1
1 1 0 10 0 1
1 0 1 10 1 0
0 1 1 10 0 0
1 1 1 11 X X
Y0 Y1 Y2 Y3A BE
设置使能端( Enable) E
当 = 0,译码器使能E
当 = 1,译码器禁止E
ABEY
BAEY
BAEY
BAEY
3
2
1
0
Y0
Y1
Y2
Y3
A
B
E
逻辑示意图
7.有使能端 的 2-4译码器E
有使能端 E的 2-4译码器
A
B
A
B
Y0
Y1
Y2
Y3
'A
'B
E
ABEY
BAEY
BAEY
BAEY
3
2
1
0
8.译码器使能端 E的作用
在集成电路中增加控制使能 (Enable)
端 E,是电路设计中常用的技术,使得集成电路更加灵活、可靠。
一、灵活:用于扩展二、可靠:用于选通用作扩展(作用一)

0”

0”

0”

0”

1”

1”

1”

1”“1”,1”,1”
用两片 2-4译码器组成 3-8译码器,
高位输入 C用作选片,A,B用于选中片内译码。
C= 0选中片 I,C= 1选中片 II。
E
5片 2- 4译码器构成 4- 16译码器。第一层的一个译码器用作选片。 E=0时,C D= 00时选中左边一片,译出
Y0… Y3 ;依此类推。
用作扩展(续 )E
E用作扩展(续)
输入输出
3-8译码器扩展为 4-16译码器
I II
Y0 Y1 Y2 Y3 Y4 Y5Y6 Y7 Y8 Y9 Y10Y11Y12Y13Y14Y15
A B C
1E
A B C
1E
A B C D
用作选通(作用二)E
为什么需要选通?
针对门电路的传输延迟造成的竞争、冒险问题提出的。
二输入 AND门( OR门)的输入为 A和 A时,A滞后于 A,
则 Y会出现尖峰信号。
理想情况:
Y= A A= 1
负向 尖峰正向 尖峰与非门上升沿有尖峰或非门下降沿有尖峰端用于选通 (续)E
译码器中设置二级缓冲,
目的是均衡负载,但是由于信号传输的延迟,会在输出端产生,0”重叠
(Overlap)和尖峰信号 (有些书中称为毛刺,英文词为:
Spike,Glitch) 。
为消除尖峰和重叠,增加了 E。
A
B
A
B
Y0
Y1
Y2
Y3
'A
'B
E
延迟产生尖峰若 A B同时到来 (无偏移 Skew)。从功能表上分析,A B从,11”
变到,00”时,输出应从 Y3=0变成 Y0=0,Y1Y2保持为,1”。
但是,由于门的传输延迟,造成 Y1,Y2上出现了尖峰,同时,
Y3,Y0有一段时间同时为,0”,即零重叠。
2(1级 buffer+译码级延迟 )
3(2级 buffer+译码级延迟 )
1(1级 buffer延迟 )
延迟产生尖峰
A
B
A
B
Y0
Y1
Y2
Y3
'A
'B
A
A
'A
B
B
'B
'2 BAY?
BAY '1?
''3 BAY?
BAY?0
延迟产生尖峰当 A B从,11”变到,00”时,输出应从 Y3=0变成 Y0=0。
假设 A B不能同时到来,存在偏移 (Skew),导致尖峰信号更宽。
tspike加宽、两处出现零重叠toverlap=1级延迟
tspike = tskew+1级延迟
A
B
A
B
Y0
Y1
Y2
Y3
'A
'B t
spike
端覆盖输入的变化E
在 A B变化期间,输出是不稳定的,可能会出现尖峰信号。
加一个能覆盖输入变化的正脉冲 (E= 1),使得 A B变化期间强制 Y0-Y3=1,既可消除输出端的干扰。
抑制尖峰和零重叠的正信号应提前(或同时)于译码器的变量输入变化前到来,正信号撤除应滞后于变量输入的变化 (至少滞后 1级缓冲的延迟 )。
E也不能太宽,否则速度会慢。
端功能E
使用 来抑制零重叠和尖峰,译码器的输出波形变窄了,E
使用 E不使用 E
,0”
有多个使能端的译码器件器件一、编号,74LS(HCT,HC) 138:
功能,3-8 译码器( 3个使能端)
器件二、编号,74 LS (HCT,HC) 154
功能 4-16 译码器( 2个使能端)
(前面介绍的器件型号为,74 x x 139 双 2-4译码器 )
E用作扩展(续)
具有多个使能端的 3-8译码器扩展为 4-16译码器输入
I II
Y0 Y1 Y2 Y3 Y4 Y5Y6 Y7 Y8 Y9 Y10Y11Y12Y13Y14Y15
A B C 1E AE2 BE2 A B C 1E AE2
BE2
A B C D E
“1”
使能输出用 3- 8译码器分配地址区
Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
A B C
1E 2E
D0D1D2D3D4D5 D6D7
A0 A1 A2 A3 A4 CE
32x8 R0M
D0D1D2D3D4D5 D6D7
A0 A1 A2 A3 A4 CE
32x8 R0M
D0D1D2D3D4D5 D6D7
A0 A1 A2 A3 A4 CE
32x8 R0M
D0 D1 D2 D3 D4 D5 D6 D7
A0 A1 A2 A3 A4 A5 A6 A7
CPU
A0 A1 A2 A3 A4 A0 A1 A2 A3 A4


A0 A1 A2 A3 A4
使 能A
5 A6 A7
地址总线数据总线第 0片 ROM 第 1片 ROM 第 7片 ROM
用 3- 8译码器分配地址区(续)
CPU的地址空间,A7~A0 共有 256个地址空间
每个 ROM有 32个地址空间地址空间的对应关系如图:
(0~ 31)
(32~ 63)
(64~ 95)
(96~ 127)
(128~ 159)
(160~ 191)
(192~ 223)
(224~ 255)
第 0片 ROM
第 1片 ROM
第 2片 ROM
第 3片 ROM
第 4片 ROM
第 5片 ROM
第 6片 ROM
第 7片 ROM
00000000~00011111
00100000~00111111
01000000~01011111
01100000~01111111
10000000~10011111
10100000~10111111
11000000~11011111
11100000~11111111
00000~11111
00000~11111
00000~11111
00000~11111
00000~11111
00000~11111
00000~11111
00000~11111
ROM地址空间CPU地址空间用译码器完成地址分配地址线有 10位,可以表示 210= 1K个地址空间 ;
地址线有 20位,可以表示 220= 1M个地址空间;
地址线有 30位,可以表示 230= 1G个地址空间;
32位地址可以表示 4G地址;
16M存储器需要 24位地址。
1Mx8存储器的地址译码结构
0A
19A
18A
20
位地址译码器
00········00
00········01
00········10
11········11
1Mx8 bit
9.译码器的其他应用
2-4译码器用作数据分配器( Demultiplexer)
A B Y0 Y1 Y2 Y3
0/1 0 0 0/1 1 1 1
0/1 1 0 1 0/1 1 1
0/1 0 1 1 1 0/1 1
0/1 1 1 1 1 1 0/1
E
数据分配:将输入数据在地址控制下连接到多个输出通道。
10.两位数据分配器
4.1.2二 —十进制译码器十进制的二进制编码
( 二进制编码的十进制数,也叫 BCD编码
Binary Code Decimal to Decimal,BCD)
1.不 完全译码的 BCD 译码器
2.完全译码的 BCD 译码器
1.8-4-2-1 码表示十进制数
B
AD
C
00 1101 10
00
11
01
10
10 3 2
54 7 6
XX X X
98 X X
十进制数 8421码
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
2.不 完全译码的 BCD 译码器的功能表
3.不完全译码的 BCD译码器逻辑化简当 ABCD= 0101~1111时,Y0~9均为任意值,Y0~9表达式为
ADY
DAY
CBAY
DCBAY
DCBAY
9
8
2
1
0
B
AD
C
00 1101 10
00
11
01
10
Y0=0
XX X X
X X
Y1=0 Y3=0 Y2=0
Y4=0 Y5=0 Y7=0 Y6=0
Y8=0 Y9=0
4.不完全译码的 BCD译码器逻辑图
ADY
DAY
CBAY
DCBAY
DCBAY
9
8
2
1
0
5.完全译码的 BCD 译码器当输入 ABCD出现 0101~1111时,译码器 输出 Y0~9均为
,1”,Y0~9表达式为
DCBAY
DCBAY
DCBAY
9
1
0
4.1.3完全译码的 BCD译码器
DCBAY
DCBAY
DCBAY
9
1
0
1.显示译码器显示数字
A B C D a b c d e f g
0 0 0 0 0 0 0 0 0 0 0 1
1 1 0 0 0 1 0 0 1 1 1 1
2 0 1 0 0 0 0 1 0 0 1 0
3 1 1 0 0 0 0 0 0 1 1 0
4 0 0 1 0 1 0 0 1 1 0 0
5 1 0 1 0 0 1 0 0 1 0 0
6 0 1 1 0 1 1 0 0 0 0 0
7 1 1 1 0 0 0 0 1 1 1 1
8 0 0 0 1 0 0 0 0 0 0 0
9 1 0 0 1 0 0 0 1 1 0 0
显示译码器逻辑示意图及功能描述
a
b
c
e
A
B
d
f
g
C
D
LT
RBI
BI/RBO
功能描述
ABCD为要显示的数据,A为最低位,D为最高位。
LT为测试输入,RBI为灭零输入,BI/RBO为熄灭输入 /灭零输出正常工作时,LT,RBI,BI/RBO均为,1” 。
BI/RBO=,0”,所有的数码段都熄灭。
LT=“0”,BI/RBO=“1”,测试状态,数码显示都为,8”,表示数码管正常。
RBI=“0”,LT=“1”,BI/RBO=“1”时,当
ABCD=“0000”,所有的数码段都熄灭。所以
RBI=“0”只是灭零。
十进制 输入 输出或功能 LT RBI A B C D BI/RBO a b c d e f g
0 1 1 0 0 0 0 1 0 0 0 0 0 0 1
1 1 × 1 0 0 0 1 1 0 0 1 1 1 1
2 1 × 0 1 0 0 1 0 0 1 0 0 1 0
3 1 × 1 1 0 0 1 0 0 0 0 1 1 0
4 1 × 0 0 1 0 1 1 0 0 1 1 0 0
5 1 × 1 0 1 0 1 0 1 0 0 1 0 0
6 1 × 0 1 1 0 1 1 1 0 0 0 0 0
7 1 × 1 1 1 0 1 0 0 0 1 1 1 1
8 1 × 0 0 0 1 1 0 0 0 0 0 0 0
9 1 × 1 0 0 1 1 0 0 0 1 1 0 0
10 1 × 0 1 0 1 1 1 1 1 0 0 1 0
11 1 × 1 1 0 1 1 1 1 0 0 1 1 0
12 1 × 0 0 1 1 1 1 0 1 1 1 0 0
13 1 × 1 0 1 1 1 0 1 1 0 1 0 0
14 1 × 0 1 1 1 1 1 1 1 0 0 0 0
15 1 × 1 1 1 1 1 1 1 1 1 1 1 1
BI × × × × × × 0 1 1 1 1 1 1 1
RBI 1 0 0 0 0 0 0 1 1 1 1 1 1 1
LT 0 × × × × × 1 0 0 0 0 0 0 0
A B CDCB
A B C DDA B CDCBADCBAg
CBABDCA
A B C DDCABDCBADA B CDCABDCBADCBAf
CBA
A B C DCDBACDBADCABDA B CDCBADCBADCABDCBAe
A B CCBACBA
A B C DCDBADCBADA B CDCBADCBAd
CDCBA
A B C DB C DACDBADA B CDCBADCBAc
BCABDCBA
A B C DB C DACDBADCABDCBADBCADCBAb
BDCADCBA
A B C DB C DACDBADCABDCBADCBADBCADCBAa














2.用,与或非,门实现的逻辑表达式
DCBA B Cg
CBDCAABfCBAe
A B CCBACBAdCDCBAc
BDBCACBAbBDCADCBAa




显示译码器七段数字显示管所显示的数字