第 5章 组合逻辑设计实践 (二 )
数字逻辑设计及应用文档标准和电路定时常用的中规模组合逻辑器件
5.6 三态器件
三态缓冲器(三态驱动器)
74x125,低电平使能,输出不反相
74x126,高电平使能,输出不反相 独立使能
74x541,两个公共使能端,低电平使能,
施密特触发输入,输出不反相( P272图 5-57)
标准 SSI和 MSI三态缓冲器
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
74x138
EN1
EN2_L
EN3_L
SSRC0
SSRC1
SSRC2
冲突( fighting)
利用使能端进行时序控制三态器件允许信号共享单个,同线,( party line)典型的三态器件,进入高阻态比离开高阻态快
P0
P1
P7
SDATA
EN1
EN2_L,EN3_L
max(tpLZmax,tpHZmax) min(tpZLmin,tpZHmin)
SSRC[2:0] 0 1 2 37
SDATA P0 P1 P2 P3P7
截止时间
A1
A8
G1
G2 Y1
Y7
74x541
DB[0:7]
A1
A8
G1
G2 Y1
Y7
74x541
数据总线( Data Bus )的表示法
A1 B1
DIR
利用三态缓冲器实现数据双向传送总线收发 P273图 5- 59
DIR
G_L
5.7 多路复用器( multiplexer)
又称多路开关、数据选择器(缩写,mux)
在选择控制信号的作用下,
从多个输入数据中选择其中一个作为输出。
EN
SEL
D0
Dn-1
Y
Enable 使能
Select 选择
n个 1位数据源 数据输出( 1位)

1
0
n
i
ii DmENY
使能选择个 b位数据源 数据输出( b位)
EN_L C B A Y Y_L
1 X X X
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
0 1
D0 D0’
D1 D1’
D2 D2’
D3 D3’
D4 D4’
D5 D5’
D6 D6’
D7 D7’
8输入 1位多路复用器
74x151真值表
A
B
C
输入
G_L S
1 X
0 0
0 1
0 0 0 1
1A 2A 3A 4A
1B 2B 3B 4B
2输入 4位多路复用器
74x157真值表输出
1Y 2Y 3Y 4Y
1A
2A
3A
4A
1G_L 2G_L B A 1Y 2Y
1 1 X X
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
0 0
1C0 2C0
1C1 2C1
1C2 2C2
1C3 2C3
1C0 0
1C1 0
1C2 0
1C3 0
0 2C0
0 2C1
0 2C2
0 2C3
4输入 2位多路复用器 74x153真值表双 4选 1
A
B
1G
2G
扩展多路复用器扩展位
如何实现 8输入,16位多路复用器?
由 8输入 1位?8输入 16位
需要 16片 74x151,
每片处理输入输出中的 1位
选择端连接到每片的 C,B,A
注意:选择端的扇出能力
(驱动 16个负载)
EN
Y
Y
A
B
C
D0
D7
扩展多路复用器扩展数据输入端的数目
如何实现 32输入,1位多路复用器?
数据输入由 8?32,需 4片
如何控制选择输入端?
—— 分为:高位+低位
高位+译码器进行片选
低位接到每片的 C,B,A
4片输出用或门得最终输出
EN
Y
Y
A
B
C
D0
D7
D0
D1
D2
D3
D4
D5
D6
D7
A0
A1
A2
Y
用双 4选 1数据选择器构成 8选 1数据选择器用数据选择器设计组合逻辑电路

1
0
n
i
ii DmENY
当使能端有效时,

1
0
n
i
ii DmY
最小项之和形式
EN
A
B
C
D0
D1
D2
D3
D4
D5
D6
D7
Y
Y
74x151
实现逻辑函数
F =?(A,B,C)(0,1,3,7)
C
B
AVCC
F
YZ
WX
00 01 11 10
00
01
11
10
1
1
1
1
1
1
1Y
WX
00 01 11 10
0
1
1 0 Z Z
Z Z Z’ 0
思考:利用 74x151实现逻辑函数
F =?(W,X,Y,Z)(0,1,3,7,9,13,14)
降维:由 4维?3维
EN
A
B
C
D0
D1
D2
D3
D4
D5
D6
D7
Y
Y
74x151
VCC
Y
X
W
F
Z
利用 74x151实现
F =?(W,X,Y,Z)(0,1,3,7,9,13,14)
0 2 6 4
1 3 7 5
Y
WX
00 01 11 10
0
1
1 0 Z Z
Z Z Z’ 0
多路分配器( demultiplexer)
把输入数据送到 m个目的地之一多路复用器
SRCA
SRCB
SRCZ
多路分配器
BUS
DSTA
DSTB
DSTZ
SRCSEL DSTSEL
DST,destinationSRC,source SEL,select
利用带使能端的二进制译码器作为多路分配器
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
74x138
DST0_L
DST7_L
数据输入 SRC
EN_L
利用 74x139实现 2位 4输出多路分配器( P285)
DSTSEL0
DSTSEL1
DSTSEL2
地址选择
——利用使能端作为数据输入端数据输入 SRC
EN_L
5.8 奇偶校验电路
奇校验电路 ( odd-parity circuit)
如果输入有奇数个 1,则输出为 1。
偶校验电路 ( even-parity circuit)
如果输入有偶数个 1,则输出为 1。
回顾:用什么可以判断 1的个数???
A0? A1?…? An = 1 变量为 1的个数是奇数
0 变量为 1的个数是偶数奇校验电路的输出反相就得到偶校验电路
n个异或门级联,形成具有 n+1个输入和单一输出的电路回顾异或、同或运算
A?B=(A⊙ B)’ A?B’=A⊙ B A?B=A⊙ B’
对于异或门、同或门的任何 2个信号(输入或输出)都可以取反,而不改变结果的逻辑功能( P290 图 5-73)
F=A?B
A
B
F A
B
F A
B
A
B
F F
F=A’?B’ F=(A’?B)’ F=(A?B’)’
I1
I2
I3
I4
IN ODD
菊花链式连接
I1
I2
I3
I4
IM
IN
ODD
树状连接
9位奇偶校验发生器 74x280
( P291 图 5- 75)
9位奇偶校验发生器 74x280( P291 图 5- 75)
A
B
C
D
E
F
G
H
I
EVEN
ODD
74x280
奇偶校验的应用用于检测代码在传输和存储过程中是否出现差错
A
EVEN
ODD
74x280
H
I
A
EVEN
ODD
74x280
H
I
发端收端
DB[0:7] DB[0:7]
ERROR
发端保证有偶数个 1 收端 ODD 有效表示出错奇数 EVEN
5.9 比较器( comparator)
比较 2个二进制数值并指示其是否相等的电路
等值比较器:检验数值是否相等
数值比较器:比较数值的大小( >,=,<)
如何构造 1位等值比较器??
—— 利用异或门(同或门)
A
B DIFF
A
B EQ
DIFF,different EQ,equal
DIFF
A0
B0
A1
B1
A2
B2
A3
B3 给出足够的异或门和宽度足够的或门,
可以搭建任意输入位数的等值比较器。
如何构造多位等值比较器??
必须每位都相等 —— 并行比较—— 串行比较
4位等值比较器迭代比较电路
X Y
CMP
EQI EQO
X0 Y0 X1 Y1 XN-1YN-1
EQ1 EQ2 EQNEQN-1
1
X Y
CMP
EQI EQO
X Y
CMP
EQI EQO
—— 每位串行比较
A
B EQ EQO
EQI
迭代的方法可能节省费用,但速度慢用于级联的输入
EQ_L
A
B
LT_L
GT_L
一位数值比较器
① A>B( A=1,B=0) 则 A·B’=1 可作为输出信号
② A<B( A=0,B=1) 则 A’·B=1 可作为输出信号
③ A=B,则 A⊙ B=1,可作为输出信号输出低电平有效
EQ_L = A·B’+A’·B = A?B = (A⊙ B)’
LT,Less Than
EQ,Equal
GT,Greater Than
(A’·B)’
(A·B’)’
多位数值比较器
A(A3A2A1A0) 和 B(B3B2B1B0)自高而低逐位比较
EQ = (A3⊙ B3)·(A2⊙ B2)·(A1⊙ B1)·(A0⊙ B0)
GT = (A3>B3)
LT = EQ’ · GT’ = ( EQ + GT )’
或 (A3 = B3)· (A2 = B2)·(A1>B1)
或 (A3 = B3)·(A2 = B2)·(A1 = B1)·(A0>B0)
或 (A3 = B3)·(A2>B2)·B3’ A ·B2’
A ·B1’
A0·B0’

⊙⊙
⊙⊙ ⊙
+
+
+
74x85
4位比较器 74x85
A0
A1
A2
A3
ALTBIN
AEQBIN
AGTBIN
级联输入,用于扩展
ALTBOUT = (A<B) + (A=B)·ALTBIN
通常低位的输出接高位的输入
A=B,低位和高位都相等
A高位 >B高位
A高位 =B高位 & A低位 >B低位A>B
AEQBOUT = (A=B)·AEQBIN
AGTBOUT = (A>B) + (A=B)·AGTBIN
比较器的串行扩展
XD[11:0]
YD[11:0]
[3:0] [7:4] [11:8]
X<Y
X=Y
X>Y
+5V
A<BI
A=BI
A>BI
A<BO
A=BO
A>BO
A0~A3
B0~B3
74x85
A<BI
A=BI
A>BI
A<BO
A=BO
A>BO
A0~A3
B0~B3
74x85
A<BI
A=BI
A>BI
A<BO
A=BO
A>BO
A0~A3
B0~B3
74x85
3片 74x85构成 12位比较器低位 高位
P0
P1
P2
P3
P4
P5
P6
P7
8位比较器 74x682
内部逻辑图,P300 图 3-84
问题 1:怎样表示以下输出?
高电平有效,P DIFF Q
高电平有效,P EQ Q
高电平有效,P GE Q
高电平有效,P LT Q
( P301 图 5-85)
GE
LT
问题 2:能否扩展??
注意:没有级联输入端
3片 74x682构成 24位比较器
P0~P7 P=Q
Q0~Q7 P>Q
P0~P7 P=Q
Q0~Q7 P>Q
P0~P7 P=Q
Q0~Q7 P>Q
[7:0]
[15:8]
[23:16]
P[23:0]Q[23:0]
PEQQ
PGTQ
比较器的并行扩展
P338 6.1.4
P340 图 6-7
5.10 加法器半加器( half adder) 和 全加器( full adder)
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
A B SCO
半加器真值表相加的和,S = A’·B + A·B’
= A? B
向高位的进位,CO = A·B
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
CI X Y SCO
全加器真值表
5.10 加法器
S
CO
X
Y
CI
S = X? Y? CI
X·Y
半加器( half adder) 和 全加器( full adder)
0 0 1 0
0 1 1 1
CI
XY
00 01 11 10
0
1
CO
X·CICO = + +Y·CI
= X·Y + (X+Y)·CI
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
CI X Y SCO
全加器真值表串行进位加法器缺点:运算速度慢,有较大的传输延迟
tADD = tXYCout + (n-2)*tCinCout + tCinS
X Y
CI CO
S
X Y
CI CO
S
X Y
CI CO
S
X Y
CI CO
S
C1 C2 C3 C4C0
S0 S1 S2 S3
X0 Y0 X1 Y1 X2 Y2 X3 Y3
=0
回顾:串行比较器
——提高速度:并行加法器
X Y
CI CO
S
X Y
CI CO
S
X Y
CI CO
S
X Y
CI CO
S
C1 C2 C3 C4C0
S0 S1 S2 S3
X0 Y0 X1 Y1 X2 Y2 X3 Y3
X Y
CMP
EQI EQO
X0 Y0 X1 Y1 XN-1YN-1
EQ1 EQ2 EQNEQN-1
1
X Y
CMP
EQI EQO
X Y
CMP
EQI EQO
串行比较器串行加法器 主 输 入主 输 出边界输入边界输出级联输出迭代电路( iterative circuit)
Iterative,重复的,反复的,[数 ]迭代的
PI
CI CO
PO
PI
CI CO
PO
PI
CI CO
PO
C0 C1 C2 Cn
PO0 PO1 POn-1
主 输 出
PI0 PI1 PIn-1
主 输 入边界输入边界输出级联输出
P297
一位全加器,S = X? Y? Ci
Ci+1 = X·Y + (X+Y)·Ci
并行进位加法器先行进位法,第 i 位的进位输入信号可以由该位以前的各位状态决定。
Ci+1 = (Xi·Y i) + (Xi+Yi)·Ci
= Gi + Pi · Ci
进位产生信号 进位传递信号
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1
Ci X Y SCi+1
全加器真值表并行进位加法器先行进位法,第 i 位的进位输入信号可以由该位以前的各位状态决定。
C0 = 0Ci+1 = Gi + Pi · Ci
C0 = 0
C1 = G0+P0·C 0
C2 = G1+P1·C 1 = G1+P1·(G0+P0·C 0)
= G1+P1·G 0+ P1·P 0·C 0
… …
Cn = Gn+Pn·C n ( P307)
展开为,与 -或,式:三级延迟
MSI加法器
74x283
P309图 5-91
MSI算术逻辑单元
ALU,arithmetic and logic unit
对 2个 b位的操作数进行若干不同的算术和逻辑运算
S0~S3
M
CIN
A0~A3
B0~B3
G
P
F0~F3
COUT
A=B
74x181
输入数据输入数据
0算术 /1逻辑选择特定操作
P310 表 5-52
S1 S0 Y
0 0
0 1
1 0
1 1
A·B
A+B
A?B
A’
功能表设计函数发生器,其功能表如下:
S1 S0 A B Y
0 0 0 0
0 0 0 1
真值表
1、填写真值表
2、选择器件
用基本门电路实现利用卡诺图化简
用译码器实现转换为最小项之和
用数据选择器实现
3、电路处理注意有效电平第五章 作业
5.8 5.9
5.12
5.15
5.16
5.19 (a)(c)(e)
5.21
5.22
5.24
5.28
5.36
5.37
5.40
5.45
5.46
5.78
5.79
5.82
5.85
5.89