第 5章 组合逻辑设计实践 (一 )
数字逻辑设计及应用文档标准和电路定时常用的中规模组合逻辑器件
5.1 文档标准结构化的理念
说明书,接口及功能描述
方框图 block diagram,主要功能模块及其互联
原理图 schematic diagram( P229图 5-17)
定时图 timing diagram ( P231图 5-19)
结构化逻辑器件描述
电路描述,解释电路内部如何工作门的符号
&
≥1
1
信号名和有效电平
信号的命名
与信号相关的有效电平
高电平有效( active high)
低电平有效( active low)
有反相圈的引脚表示低电平有效给定逻辑功能只在符号框的内部发生
READY
REQUEST GO
READY_L
REQUEST_L GO_L
等效门符号 (摩根定理)
反相器缓冲器
“圈到圈,的逻辑设计
A
A S E L
B
D A T A
A
A S E L
B
A D A T A _ L
B D A T A _ L
D A T A
5.2 电路定时
X
Z
Y
F
W
传播延迟 propagation delay
——信号通路输入端的变化引起输出端变化所需的时间
tpHL 和 tpLH 可能不同
5.2 电路定时传播延迟 propagation delay
定时分析:取最坏情况延迟
X
Z
Y
F
W
tpHL 和 tpLH 可能不同最大延迟典型延迟最小延迟
’ 0
8
’ 0
8
’ 04
’ 32
’ 32
’ 32
P233 表 5-2
15
2022
22
5.2 电路定时定时图(时序图)
timing diagram
GO
READY
DAT
tDAT tDAT
GO READY
DAT
tRDY tRDY
5.2 电路定时
GO READY
DAT
GO
READY
DAT
tRDYmin
tRDYmax
定时图(时序图)
timing diagram
5.2 电路定时
WRITE_L
DATAOUT
DATAIN
tOUTmax
tsetup tOUTmin
常用中规模组合逻辑电路编码器译码器多路复用器奇偶校验比较器加法器译码器和编码器多输入、多输出电路译码器( decoder)
一般来说,输出编码比输入编码位数多编码器( encoder)
输出编码比输入编码位数少,则常称为编码器使能输入输入编码 输出编码使能输入有效才能实现正常映射功能一种最常用的情况使能输入编码 输出编码译码器( decoder)
编码器( encoder)
n位二进制码
2n中取 1码使能输入编码 输出编码
2n中取 1码
n位二进制码
5.4 译码器 ( decoder)
二进制译码器
2-4译码器
Y0
Y1
Y2
Y3
I0
I1
EN
0 X X 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
输 入
EN I1 I2
输 出
Y3 Y2 Y1 Y0
2-4二进制译码器真值表
5.4 译码器 ( decoder)
0 X X 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
输 入
EN I1 I2
输 出
Y3 Y2 Y1 Y0
2-4二进制译码器真值表Y0 = EN · ( I1’ · I2’ )
Y1 = EN · ( I1’ · I2 )
Y2 = EN · ( I1 · I2’ )
Y3 = EN · ( I1 · I2 )
Yi = EN · mi
0 0 0 0 0 0 0 1
0 0 0 0 0 0 1 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0
0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0
0 1 0 0 0 0 0 0
1 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
I2 I1 I0 Y7 Y1 Y0Y2Y3Y4Y5Y6
3-8二进制译码器真值表
3-8
译码器
I2
I1
I0
Y0
Y1
Y7
Yi = EN · mi
1 1 1 1 1 1 1 0
1 1 1 1 1 1 0 1
1 1 1 1 1 0 1 1
1 1 1 1 0 1 1 1
1 1 1 0 1 1 1 1
1 1 0 1 1 1 1 1
1 0 1 1 1 1 1 1
0 1 1 1 1 1 1 1
大规模元件的逻辑符号
Y0
Y1
Y2
Y3
G
A
B
1/2 74x139
Y0
Y1
Y2
Y3
G
A
B
1/2 74x139
Y0
Y1
Y2
Y3
G
A
B
1/2 74x139
G_L
A
B
Y0_L
Y1_L
Y2_L
Y3_L
双 2-4译码器 74x139
74x139
1 X X 1 1 1 1
0 0 0 1 1 1 0
0 0 1 1 1 0 1
0 1 0 1 0 1 1
0 1 1 0 1 1 1
输 入
G B A
输 出
Y3_L Y2_L Y1_L Y0_L
1/2 74x139双 2-4译码器真值表
3-8译码器 74x138
G1
G2A_L
G2B_L
Y3 = G1 · G2A · G2B · C’· B · A
使 能 选 择
Y3_L = Y3’
= (G1 · G2A_L’ · G2B_L’ · C’·B·A)’
= G1’ + G2A_L + G2B_L + C+B’+A’
5.4 译码器(续 )
二进制译码器使能输入编码 输出编码
n位二进制码
2n中取 1码
2-4译码器
Y0
Y1
Y2
Y3
I0
I1
EN
Yi = EN · mi
0 X X 0 0 0 0
1 0 0 0 0 0 1
1 0 1 0 0 1 0
1 1 0 0 1 0 0
1 1 1 1 0 0 0
输 入
EN I1 I2
输 出
Y3 Y2 Y1 Y0
2-4二进制译码器真值表当使能端有效时
Yi = mi
74x139
EN
低位高位Yi = EN · mi
G1
G2A_L
G2B_L
EN
Yi_L = Yi’ = ( EN · mi )’
EN = G1 · G2A · G2B
= G1 · G2A_L’ · G2B_L’
Y0_L
Y1_L
Y7_L
Y2_L
Y3_L
Y4_L
Y5_L
Y6_L
EN
N0
N1
N2
N3
EN_L
+5V
D0_L
D7_L
D8_L
D15_L
用 74x138设计 4-16译码器思路:
16个输出需要片 74x138?
Y0
Y7
A
B
C
G1
G2A
G2B
Y0
Y7
A
B
C
G1
G2A
G2B
U1
U2
任何时刻只有一片在工作。
4个输入中,
哪些位控制片选哪些位控制输入思考:用 74x138设计 5-32 译码器
32个输出需要多少片 74x138?
控制任何时刻只有一片工作
—— 利用使能端
5个输入的低 3位控制输入
5个输入的高 2位控制片选
—— 利用 2-4 译码器
P252 图 5- 39
用译码器和逻辑门实现逻辑函数
F =?(X,Y,Z) (0,3,6,7)
=? (X,Y,Z) (1,2,4,5)
对于二进制译码器,Yi = EN · mi
当使能端有效时,Yi = mi
对低电平有效输出,Yi_L = Yi’
当使能端有效时,Yi_L = mi’= MiA
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
74x138
用译码器和逻辑门实现逻辑函数
Z
Y
X
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
74x138
F
+5V
F =?(X,Y,Z) (0,3,6,7) 当使能端有效时
Yi = mi
用译码器和逻辑门实现逻辑函数
Z
Y
X
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
74x138+5V
F
F =?(X,Y,Z) (0,3,6,7)
= M1 · M2 · M4 · M5 = m1’· m2’· m4’· m5’
=m0*m3*m6*m7
F =? (X,Y,Z) ( 1,2,4,5 )
Z
Y
X
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
74x138+5V
F
二-十进制译码器输入,BCD码输出:十中取一码 Y0
Y9
I0
I1
I2
I3多余的 6个状态如何处理?
输出均无效:拒绝,翻译,
作为任意项处理
——电路内部结构简单二
-
十进制译码器
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 1 1 1 1 1 1 1 1 1
1 0 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1
1 1 1 0 1 1 1 1 1 1
1 1 1 1 0 1 1 1 1 1
1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 0 1 1
1 1 1 1 1 1 1 1 0 1
1 1 1 1 1 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 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 1 1 1 1 1 1 1 1
I3 I2 I1 I0
0
1
2
3
4
5
6
7
8
9
Y0_L Y9_L
伪码任 意 项七段显示译码器
a b c d e f g dp
公共阴极
a
b
c
d
e
f g
dp
常用的有:
半导体数码管( LED)
液晶数码管( LCD)
a b c d e f g dp
公共阳极七段显示译码器
输入信号,BCD码(用 A3A2A1A0表示)
输出:七段码(的驱动信号) a ~ g
1 表示亮,0 表示灭
a
b
c
d
e
f g
1111110 1101101 0011111
七段显示译码器的真值表
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 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
A3 A2 A1 A0 a b c d e f g
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
BCD - 七段显示译码器的卡诺图
Ya = A3A2A2A0 + A3A1 + A2A0
Yb = A3A1 + A2A1A0 + A2A1A0
BCD - 七段显示译码器的卡诺图
Yc = A3A2 + A2A1A0
Yd = A2A1A0 + A2A1A0 + A2A1A0
BCD - 七段显示译码器的卡诺图
Ye = A2A1 + A0
Yf = A3A2A0 + A1A0 + A2A1
BCD - 七段显示译码器的卡诺图
Yg = A3A2A1 + A2A1A0
逻辑图,P261 图 5- 45
回顾:组合电路的综合要求设计一个七段显示译码器
逻辑抽象,得到真值表
选择器件类型
采用基本门电路实现,利用卡诺图化简
采用二进制译码器实现,变换为标准和形式
电路处理,得到电路图
5.5 编码器( encoder)
二进制编码器
A0
A1
A2
I0
I1
I7
1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
I0 I1 I2 I3 I4 I5 I6 I7 A2 A1 A0
3位二进制编码器的真值表
2n
个输入
n
个输出
5.5 编码器( encoder)
A0 = I1 + I3 + I5 + I7
A1 = I2 + I3 + I6 + I7
A2 = I4 + I5 + I6 + I7
前提:任何时刻只有一个输入端有效。
问题:当某时刻出现多个输入有效?
优先级( priority)
1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
I0 I1 I2 I3 I4 I5 I6 I7 A2 A1 A0
3位二进制编码器的真值表优先编码器
A2
A1
A0
IDLE
I7
I6
I5
I4
I3
I2
I1
I0
将 I0~ I7 转换为 H0~ H7,
保证其中,任何时刻只有一个有效
H7 = I7
H6 = I6 · I7’
H5 = I5 · I6’ · I7’

H0 = I0 · I1’ · I2’ · … · I6’ · I7’
A2 = H4 + H5 + H6 + H7
A1 = H2 + H3 + H6 + H7
A0 = H1 + H3 + H5 + H7
数大优先如果没有输入有效,则 IDLE 为 1
IDLE = I1’ · I2’ · … · I6’ · I7’
输入输出使能输出,用于级联EO
选通输出GS
EI_L有效没有输入请求 EO_L有效使能输入 EI
EI_L有效有输入请求 GS_L有效
P265 图 5- 50 表 5- 23
A2
A1
A0
GS
EO
EI
I7
I0
A2
A1
A0
GS
EO
EI
I7
I0
Q15_L
Q8_L
Q7_L
Q0_L
Y0
Y1
Y2
Y3
GS
2个 74x148级联为 16- 4优先编码器
输入:由 8?64,需 8片 74x148
每片优先级不同(怎样实现?)
保证高位无输入时,次高位才工作
—— 高位芯片的 EO端接次高位芯片的 EI端用 8-3优先编码器 74x148级联为 64-6优先编码器
A2
A1
A0
GS
EO
EI
I7
I0
片间优先级的编码
—— 利用第 9片 74x148
每片的 GS端接到第 9片的输入端
第 9片的输出作为高 3位( RA5~ RA3)
片内优先级片间优先级? 输出,6位低 3位高 3位
8片输出 A2~ A0
通过或门作为最终输出的低 3位
RA2~ RA0
分析判定优先级电路:(利用 74x148 )
8个 ___电平有效输入 I0_L~ I7_L,_____的优先级最高
地址输出 A2~ A0,____电平有效
若输出 AVALID高电平有效,则表示 _______________
A2
A1
A0
GS
EO
EI
74x148
I7
I0
I0_L
I7_L
A2
A1
A0
AVALID
低 I0_L
至少有一个输入有效高
P328 5.48
设计判定优先级电路,(利用 74x148 )
8个输入 I0~ I7高电平有效,I7优先级最高
地址输出 A2~ A0,高电平有效
如果没有输入有效,为 111且输出 IDLE有效
I7
I0
A2
A1
A0
IDLE
A2
A1
A0
GS
EO
EI
I7
I0
74x148
P328 5.47