4.2 数据选择器 (Data Selector)
1.原理:在控制信号作用下,从多个输入中每次选中一个输出。因此又称多路开关 (Multiplexer- MUX)。是计算机系统中使用最多的一类中规模器件。
例,4选 1( 4通道选 1)数字选择器:
D311
D201
D110
D000
YS0S1
310210110010 DSSDSSDSSDSSY
S1
S0
D0D1D2D3
Y
真值表逻辑框图数据选择器的内部结构
1
0SS
+ Y
D0
D1
D2
D3
1
0
S
S
1
0
S
S
310210110010 DSSDSSDSSDSSY
1
0
S
S
S1
S0
D0D1D2D3
Y
控制变量 S1 S0的组合在同一时间内只能有一个为,1”,
因此输出只能选中其中的一个
2.数据选择器用于总线发送控制
A B C
BU SA? BU SB? BU SC?
三态门控制总线 BUSH? H
A B C H
S0S
1S
2
8选 1数据选择器数据选择器控制总线 想想看:数据选择器还有哪些应用?
3.多位结构的数字选择器
4位 2选 1
S1
S0
1D31D21D11D0
1Y
2D32D22D12D0
2Y
S
2D12D01D11D0
1Y
4D14D03D13D0
3Y2Y 4Y
2位 4选 1
4.带控制端的数据选择器
D311
D201
D110
D000
YS0S1
)( 310210110010 DSSDSSDSSDSSEY
S1
S0
D0D1D2D3
Y
真值表逻辑框图
0
0
0
0
X 01 X
EE
使能( Enable)控制端
= 1,选择器被禁止
= 0,选择器输出 Y= Di
E
E
5.有使能端的 2位 4选 1数据选择器
(带互补输出,W= Y)
S1
S0
1D31D21D11D0
1Y 1W
2D32D22D12D0
2Y 2W
E1 E2逻辑框图
6.选择器扩展,16选 1选择器
S0
S1
S2
16选 1数据选择器
D14 D0D15
……
S2
如果手中没有 16选 1的选择器,
可以用 8选 1,4选 1等扩展实现。
中规模器件只有有限个输入,当需要更大规模电路时,就需要扩展。
7.选择器扩展,用 4选 1选择器扩展成 16选 1选择器
S3 S2 S1 S0 Y
0 0 0 0 Y0
0 1 Y1
1 0 Y2
1 1 Y3
0 1 0 0 Y4
0 1 Y5
1 0 Y6
1 1 Y7
1 0 0 0 Y8
0 1 Y9
1 0 Y10
1 1 Y11
1 1 0 0 Y12
0 1 Y13
1 0 Y14
1 1 Y15
16选 1功能表一定要选两次,分成 4组,每组选出一个,再从 4个中选择一次。
两种不同的扩展方案,从功能表上分析,
可以先用低两位控制,也可以先用高两位控制。
S1
S0
S1
S0
8.选择器扩展,用双 4选 1选择器 (无 E)
扩展成 16选 1选择器 (1)
S0
S1D0 D3
Y
D0 D3
Y S0
S1D0 D3
Y
D0 D3
Y
S0
S1D0 D3
Y
S1
S0
S3
S2
D0 D3 D4 D7 D8 D11D12 D15
逻辑结构,S1 S0控制第一层选择,S3 S2控制第二层选择。
选择器无选通控制端,
只能用两级选择结构
9.选择器扩展,用双 4选 1选择器 (无 E)
扩展成 16选 1选择器 (2)
S0
S1D0 D3
Y
D0 D3
Y S0
S1D0 D3
Y
D0 D3
Y
S0
S1D0 D3
Y
S3
S2
S1
S0
D0 D1 D2 D3
P.121 图 4-34
选择器无选通控制端,
只能用两级选择结构逻辑结构,S3 S2控制第一层选择,S1 S0控制第二层选择。
D12 D13 D14 D15
10.选择器扩展,带 E的双 4选 1选择器扩展成 16选 1选择器高两位控制端经译码后分别控制数据选择器的使能端,以实现扩展。输出级是三态门,因此可以,线与,。
用译码器+带 的数据选择器,一级选择就可以。E
11.译码器与数据选择器的比较
S1 S0 Y
0 0 D0
0 1 D1
1 0 D2
1 1 D3
310210110010 DSSDSSDSSDSSY
S1
S0
D0D1D2D3
Y
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
ABY
BAY
BAY
BAY
3
2
1
0
Y0
Y1
Y2
Y3
A
B
译码器 数据选择器
12.数据选择器与数据分配器
S1 S0 Y
0 0 D0
0 1 D1
1 0 D2
1 1 D3
310210110010 DSSDSSDSSDSSY
S1
S0
D0D1D2D3
Y
数据选择器
Y0
Y1
Y2
Y3
A
B
S1
S0
Din
D0D1D2D3
数据分配器译码器实现数据分配器
S1
S0
Din E
13.译码器与数据选择器的比较
都是与非,与或非逻辑的全组合
都可以有 E控制端,用于扩展和选通
都可以实现逻辑函数(最小项的全组合)
扩展应用:译码器都要用 E,选择器可以不用 E(扩展时要先画真值表,找规律)
选择器的输出结构可以带有三态输出,OC
门输出等结构,因此选择器可以用于总线发送器。
用作扩展(译码器)E
5片 2- 4译码器构成 4- 16译码器。第一层的一个译码器用作选片。 E=0时,C D= 00时选中左边一片,译出
Y0… Y3 ;依此类推。
14.译码器实现逻辑函数
译码器输出可以看成是 N个输入变量组成的 2N个最小项,再经一级与非门,组成,与非 -与非,逻辑,既可表达,与 -或,表达式。
例如,F= ABC+ABC+ABC=m1+m2+m7m
1
m7
A
B
C
Y1
Y2
Y7
Y0
F
15.数据选择器实现逻辑函数
CACABF
数据选择器,逻辑结构就是与 -或表达式。
数据选择 器可以看成是 N个控制端选择 2N个最小项组成的,与 -或,表达式。选择某些输入为,1”,就是选中这些最小项组成逻辑函数。逻辑变量接到选择控制端,逻辑表达式中包含的最小项取,1”,其余取,0”。
例如,用八选一数据选择器实现函数:
数据选择器实现逻辑函数
NCACANBCAF )()(
CACAFBCAF '','
NFNFF '''
0011
0111
BA
C 00 01 11 10
0
1 1001
0110
BA
C 00 01 11 10
0
1
8选 1数据选择器可以实现 4变量函数,
3个变量用在选择控制端,1个变量在数据输入。
例,
,' BCAF CACAF''
16.8选 1数据选择器实现 4变量函数
00D71 1 1
10D60 1 1
01D51 0 1
11D40 0 1
11D31 1 0
00D20 1 0
11D11 0 0
01D00 0 0
函数 F的值F’’F’输入S0 S1 S2
NNN 01
111 NN
000 NN
111 NN
111 NN
NNN 01
NNN 10
000 NN
“1”
“0”
S2
S1
S0
N
E
F
D0 D7C
B
A
4.3 编码器 (Encoder)
编码器 (Encoder)原理
优先编码器 (Priority Encoder)
8-3优先编码器
扩展应用,16-4 优先编码器
1.编码器 (Encoder)原理
功能:将译码器反过来,对应输入的每一个状态,输出一个编码。
4-2编码,将输入的 4个状态编成 2位二进制数码; 8-3编码,将输入的 8个状态编成 3位二进制数码; BCD编码,将
10个输入编成 BCD码。
编码器 (Encoder)原理功能表
I0 I1 I2 I3 A0 A1
0 1 1 1 0 0
1 0 1 1 1 0
1 1 0 1 0 1
1 1 1 0 1 1
例,4-2编码器



3210321032103210
32103210321032100
1 IIIIIIIIIIIIIIIIA
IIIIIIIIIIIIIIIIA
I0
I1
I2
I3
A0
A1
2.8421码编码器
8421
编码器
X0
X1
X9
Y0
Y1
Y2
Y3
X9 X8 X7 X6 X5 X4 X3 X2 X1 Y3 Y2 Y1 Y0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 0 0 1 0 0 0 0 1 1
0 0 0 0 0 1 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0 0 0 1 0 1
0 0 0 1 0 0 0 0 0 0 1 1 0
0 0 1 0 0 0 0 0 0 0 1 1 1
0 1 0 0 0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0 0 1 0 0 1975310
76321
76542
983
XXXXXY
XXXXY
XXXXY
XXY




8421码编码器
975310
76321
76542
983
XXXXXY
XXXXY
XXXXY
XXY




X2 X1X9
Y0Y1Y2Y3
X8 X7 X6 X5 X4 X3
局限:只有互斥输入时,
才能用这种编码器。即在任一时刻所有输入线中只允许有一个为,1”,否则编码器会发生混乱。必须用优先编码器。
3.优先编码器当两条或两条以上线为,0”时,优先按输入编号大的编码,称优先编码器 (Priority Encoder) 。
以 8-3优先编码器为例。
8-3
优先编码器优先编码功能表
1
0
1
1
1
1
1
1
1
1
E0
X
1
0
X
X
X
X
X
X
X
0
1111XXXXXXX1
1
0
0
0
0
0
0
0
0
GS
1
1
1
1
1
1
1
1
0
7
1111111110
1111111110
1101111100
10111110X0
1001110XX0
011110XXX0
01010XXXX0
0010XXXXX0
000XXXXXX0
A2A1A0654321iE
(A2,A1,A0用反码编码,Gs为编码输出,Eo为使能输出,Ei为使能输入 )
)1642364567()17 6 5 4 3 2376545767(0 ii EEA
)25435467()27 6 5 4 337 6 5 4677(1 ii EEA
)4567()4765576677(2 ii EEA
7 6 5 4 3 2 1 00 iEE?
7
6
5
4
3
2
1
0
用公式化简:
A+ AB= A+ B
(E0= 0,表示本片没有编码,多片相连时低位可以编码 )
8 - 3优先编码器逻辑图
P125 图 4- 40
4,8-3优先编码器扩展为 16-4优先编码器
iEiE
A3 A2 A1 A0
A2 A1 A0E0 A2 A1 A0 E0GsGs
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
15 78 0
E0
若高位片有,0”输入,高位 Eo=1,应禁止低位片,以 (A2~0)高作为 (A2~0)16-4,高位片的 Gs(=0)作为 A3
若高位片无,0”输入,高位 Eo=0,低位片工作,以 (A2~0)
低 作为 (A
2~0)16-4,高位片的 Gs(=1)作为 A3
4.4 数据比较器功能:比较 A,B两数大小,判断 A>B,A<B,A=B
A3A2 A1 A0
B3B2 B1 B0 从高位开始比较,
若 A3>B3 则 A>B,
若 A3<B3 则 A<B,
若 A3=B3 则再比较低位
Ai>Bi的条件,Ai=1,Bi=0;即 11
iiiii BAAZBA 或
Ai<Bi的条件,Ai=0,Bi=1; 即 11
iiiii BABWBA 或
Ai=Bi的条件,11
iiiiiiii BABBAAYBA 或数据比较器功能表
A3,B3 A2,B2 A1,B1 A0,B0 A>B A<B A=B
A3 > B3 X X X 1 0 0
A3 < B3 X X X 0 1 0
A3 = B3 A2 >B2 X X 1 0 0
A3 = B3 A2 <B2 X X 0 1 0
A3 = B3 A2 =B2 A1 >B1 X 1 0 0
A3 = B3 A2 =B2 A1 <B1 X 0 1 0
A3 = B3 A2 =B2 A1 = B1 A0 >B0 1 0 0
A3 = B3 A2 =B2 A1 = B1 A0 <B0 0 1 0
A3 = B3 A2 =B2 A1 = B1 A0 =B0 0 0 1
表达式:
0123
01230123123233
01230123123233
)(
)(
)(
YYYYBA
YYYYZYYYZYYZYZBA
YYYYWYYYWYYWYWBA



(Yi表示 Ai= Bi; Wi表示 Ai<Bi; Zi表示 Ai>Bi
数据比较器逻辑图
P129 图 4- 43
这是 4位并行比较器,一次判断 4位数大小。
按此思想可以推广到多位并行比较。
但是位数多了以后会出现组合爆炸,因此用分段比较。
1.分段比较,多片比较器构成更长位数的方法比较器不仅输出比较结果,还要能接受其它片输出的结果。
A
B
4位比较器
A>B
A<B
A=B
A>B
A<B
A=B
74LS85
8位比较器,P130 图 4- 45
4.5 运算器(算数逻辑单元 ALU)
十进制加法与二进制加法
加法器
– 四位串行进位加法器
– 快速加法器
– 16位加法器
算术运算逻辑单元
– 四位算术逻辑运算单元
– 功能
– 超前进位扩展器我们所熟悉的十进制加法计算器中用的加法,按照十进制数逐位相加。
将十进制数按二进制编码 (BCD码 ),用 4位二进制表示一位十进制。典型的是 8421 码和余 3码。
十进制数 8421码
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
十进制数 余 3码
0 0011
1 0100
2 0101
3 0110
4 0111
5 1000
6 1001
7 1010
8 1011
9 1100
8421码和余 3码十进制数如何直接运算
010100000100
0110
010110100011
0110
111110010011
100101010010
011001000001
)405()259()146(
101010

8421 BCD码修正修正
10)405(?
011001010010
01100110
101111100001
100110010001
001001010000
)251()199()52(
101010

8421 BCD码修正
10)251(?
01100001
0110
00000001
1000
1000
)16()8()8(
101010

8421 BCD码修正
10)16(?
(1) 8421 码加法:两个 8421码相加,结果仍然要求是 8421码。
8421 码加法,如果和数在
1010- 1111之间,需要+ 6修正才能得到 8421码的相加和。
BCD码和余 3码十进制数如何直接运算
00110001
1001
1010
余 3码 7+6
8421码 (13)10
0101
0110
1011
0110
0101
余 3码 2+3
减 6修正
8421码 (5)10
01 0100 0001 00
01 10
01 0100 0010 10
11 0010 0001 01
10 0101 1101 00
余 3码 146+259
减 6修正
8421码 (405)10
(2) 余 3 码加法:两个余 3码相加,结果可以方便地得到 8421码。
余 3 码加法,如果和数在
1010- 1111之间,减 6
修正就能得到 8421码的相加和。
由于余 3 码做减法方便,
因此得到应用。
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
半加器符号半加器电路图加数本位的和向高位的进位
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
用与或非门实现
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 的卡诺图
1111 iiiiiiiiiiiii CBACBACBACBAS 11 iiiiiii CBCABAC
先求 Si和 Ci。为此,合并值为 0的最小项。
再取反,得:
1111 iiiiiiiiiiiiii CBACBACBACBASS
11 iiiiiiii CBCABACC
C
i
S
i
&
≥ 1
&
≥ 1
A
i
B
i
C
i -1
1
1
1
1111 iiiiiiiiiiiii CBACBACBACBAS
11 iiiiiii CBCABAC
实现多位二进制数相加的电路称为加法器 。
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
位超前进位加法器