数据选择器

Download Report

Transcript 数据选择器

2.3 常用的中规模组合逻辑电路
2.3.1 译码器
2.3.2 数据选择器
2.3.3 编码器
2.3.4 数据比较器
2.3.5 运算器(算数逻辑单元 ALU)
2.3.6 奇偶校验器
习题4.3,4.5,4.12,4.15,4.18,4.22,4.23
2.3.2 数据选择器(Data Selector)
原理:在控制信号作用下,从多个输入中每次选中一个输
出。因此又称多路开关(Multiplexer-MUX)。是计算
机系统中使用最多的一类中规模器件。
例:4选1(4通道选1)数字选择器:
逻辑框图
S1
S0
D3 D2 D1 D0
Y
真值表
S1
S0
Y
0
0
D0
0
1
D1
1
0
D2
1
1
D3
Y  S0 S1D0  S0 S1D1  S0 S1D2  S0 S1D3
数据选择器的内部结构
D0
S0
S1
S0
D3 D2 D1 D0
Y
S1
D1
S0
S1
D2
+
S0
S1
Y  S 0 S1D0  S 0 S1D1  S 0 S1D 2  S 0 S1D3
D3
S0
S1
控制变量S1 S0的组合在同一时间内只能有一个为“1”,
因此输出只能选中其中的一个
Y
数据选择器用于总线发送控制
三态门
控制总线
A
A  BUS
B
B  BUS
C
C  BUS
H
H  BUS
数据选择器
控制总线
S0
S1
S2
8选1数据
选择器
ABC
想想看:数据选择器还
有哪些应用?
H
多位结构的数字选择器
4位2选1
S
2位4选1
1D0 1D1 2D0 2D1 3D0 3D1 4D0 4D1
1Y
2Y
S1 1D0 1D1 1D2 1D3
S0
1Y
4Y
3Y
2D0 2D1 2D2 2D3
2Y
带控制端的数据选择器
逻辑框图
真值表
E
S1
S0
Y
1
X
X
0
0
0
0
D0
使能(Enable)控制端
0
0
1
D1
E =1,选择器被禁止
0
0
1
0
D2
1
1
D3
S1 E D 3 D 2 D 1 D 0
S0
Y
E =0,选择器输出Y= Di
Y  E(S 0 S1D0  S 0 S1D1  S 0 S1D 2  S 0 S1D3 )
有使能端的2位4选1数据选择器
(带互补输出:W=Y)
逻辑框图
S11E 1D0 1D1 1D2 1D3 2E 2D0 2D1 2D2 2D3
S0
1Y 1W
2Y 2W
选择器扩展: 16选1选择器
中规模器件只有有限个输入,当需要
更大规模电路时,就需要扩展。
S0
S1
S2
S2
如果手中没有16选1的选择器,
16选1数据
选择器
……
D15 D14
D0
可以用8选1、4选1等扩展实现。
选择器扩展:用4选1选择器
扩展成16选1选择器
16选1功能表
S3
S2
S1
S0
Y
0
0
0
0
Y0
0
1
Y1
1
0
Y2
1
1
Y3
0
0
Y4
0
1
Y5
1
0
Y6
1
1
Y7
0
0
Y8
0
1
Y9
1
0
Y10
1
1
Y11
0
0
Y12
0
1
Y13
1
0
Y14
1
1
Y15
0
1
1
1
0
1
S1
S0
S1
S0
一定要选两次,分成4组,每组选出一
个,再从4个中选择一次。
两种不同的扩展方案,从功能表上分析,
可以先用低两位控制,也可以先用高两
位控制。
选择器扩展:用双4选1选择器(无E)
扩展成16选1选择器(1)
选择器无选通控制端,
只能用两级选择结构
D0
S1
D3 D4
D
D3 D0
S1 0
S0 Y
Y
S0
S3
S2
D7
D3
D8
D11D12
D15
D
D3 D0
D3
S1 0
S0 Y
Y
D
D3
S1 0
S0 Y
逻辑结构:S1 S0控制第一层选择,S3 S2控制第二层选择。
选择器扩展:用双4选1选择器(无E)
扩展成16选1选择器(2)
选择器无选通控制端,
只能用两级选择结构
D0
S3
D12D1
D0
D3 D0
S1
S0 Y
Y
S2
S1
S0
D13
D3
D0
D3
S1
S0 Y
D2
D14D3
D15
D0
D3 D0
D3
S1
S0 Y
Y
P.121 图4-34
逻辑结构:S3 S2控制第一层选择,S1 S0控制第二层选择。
选择器扩展:带E的双4选1选择器
扩展成16选1选择器
用译码器+带E的数据选择器,一级选择就可以。
高两位控制端经译码后分别控制数据选择器的使能端,以实
现扩展。输出级是三态门,因此可以“线与”。
译码器与数据选择器的比较
译码器
数据选择器
A
B
Y0 Y1 Y2 Y3
S1
S0
Y
0
0
0
1
1
1
0
0
D0
1
0
1
0
1
1
0
1
D1
0
1
1
1
0
1
1
0
D2
1
1
1
1
1 0
1
1
D3
Y  A B
0

Y1  A B

Y2  AB
Y  AB
 3
Y  S0 S1D0  S0 S1D1  S0 S1D2  S0 S1D3
A
B
Y0
Y1
Y2
Y3
S1 D 3 D 2 D 1 D 0
S0
Y
数据选择器与数据分配器
数据选择器
数据分配器
S1
S0
Y
0
0
D0
0
1
D1
1
0
D2
1
1
D3
Y  S0 S1D0  S0 S1D1  S0 S1D2  S0 S1D3
S1 D 3 D 2 D 1 D 0
S0
Y
Din
S1
S0 D 3 D 2 D 1 D 0
译码器实现数据分配器
S1
S0
Din
A
B
E
Y0
Y1
Y2
Y3
译码器与数据选择器的比较





都是与非,与或非逻辑的全组合
都可以有E控制端,用于扩展和选通
都可以实现逻辑函数(最小项的全组合)
扩展应用:译码器都要用E,选择器可以不
用E(扩展时要先画真值表,找规律)
选择器的输出结构可以带有三态输出、OC
门输出等结构,因此选择器可以用于总线
发送器。
E 用作扩展(译码器)
5片2-4译码器构成4-16译码器。第一层的一个译码
器用作选片。E=0时,C D=00时选中左边一片,译出
Y0…Y3 ;依此类推。
译码器实现逻辑函数


译码器输出可以看成是N个输入变量组成
的2N个最小项,再经一级与非门,组成“与
非-与非”逻辑,既可表达“与-或”表达
式。
例如:F=ABC+ABC+ABC=m
Y
1+m2+m7
m
A
0
Y1
Y2
1
B
C
Y7 m7
F
数据选择器实现逻辑函数
数据选择器: 逻辑结构就是与-或表达式。
数据选择器可以看成是N个控制端选择2N个最小项组成
的“与-或”表达式。选择某些输入为“1”,就是选中这
些最小项组成逻辑函数。逻辑变量接到选择控制端,逻
辑表达式中包含的最小项取“1”,其余取“0”。
例如,用八选一数据选择器实现函数:F  B  AC  AC
数据选择器实现逻辑函数
8选1数据选择器可以实现4变量函数,
3个变量用在选择控制端,1个变量在数据输入。
例: F  ( AC  B) N  ( AC  AC ) N
F '  AC  B, F ' '  AC  AC
F  F' N  F'' N
B
A 00 01
C
0 1
1
1
1
1
11 10
1
0
0
0
F'  A C  B,
B
A 00 01
C
0 0
1
1
1
0
11 10
1
0
0
1
F' '  AC  AC
8选1数据选择器实现4变量函数
S0 S1 S2
输入 F’ F’’
函数F的值
0 0 0
D0
1
0 N 1  N  0  N
1 0 0
D1
1
1
0 1 0
D2
0
1 1 0
D3
1
0 N 0 N 0  0
1 N 1  N 1  1
0 0 1
D4
1
1
1 0 1
D5
1
0 1 1
D6
0
0 N 1  N  0  N
1 N  0  N 1  N
1 1 1
D7
0
0 N 0 N 0  0
N
“1”
N 1  N 1  1
N 1  N 1  1
E
C
B
A
“0”
S2
S1
S0
D0
D7
F
2.3.3 编码器 (Encoder)




编码器(Encoder)原理
优先编码器(Priority Encoder)
8-3优先编码器
扩展应用:16-4 优先编码器
编码器(Encoder)原理


功能:将译码器反过来,对应输入的每
一个状态,输出一个编码。
4-2编码,将输入的4个状态编成2位二
进制数码; 8-3编码,将输入的8个状
态编成3位二进制数码;BCD编码,将
10个输入编成BCD码。
编码器(Encoder)原理
例:4-2编码器
I0
I1
功能表
I0
I1
I2
I3
A0 A1
I2
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
I3
1
1
1
0
1
1

 A0  I 0 I1 I 2 I 3  I 0 I1 I 2 I 3  I 0 I1 I 2 I 3  I 0 I1 I 2 I 3


 A1  I 0 I1 I 2 I 3 I 0 I1 I 2 I 3  I 0 I1 I 2 I 3  I 0 I1 I 2 I 3
A0
A1
8421码编码器
X0
X1
Y0
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
Y3  X 8  X 9
0
0
0
1
0
0
0
0
0
0 1 1 0
Y2  X 4  X 5  X 6  X 7
0
0
1
0
0
0
0
0
0
0 1 1 1
Y 1 X 2 X 3 X 6  X 7
0
1
0
0
0
0
0
0
0
1 0 0 0
Y0  X 1  X 3  X 5  X 7  X 9
1
0
0
0
0
0
0
0
0
1 0 0 1
8421
编码器
X9
Y1
Y2
Y3
8421码编码器
Y3  X 8  X 9
Y3
Y2
Y1
Y0
Y2  X 4  X 5  X 6  X 7
Y 1 X 2 X 3 X 6  X 7
Y0  X 1  X 3  X 5  X 7  X 9
局限:只有互斥输入时,
才能用这种编码器。即在
任一时刻所有输入线中只
允许有一个为“1”,否则
编码器会发生混乱。必须 X X X X X X
9
8
7 6
5
4
用优先编码器。
X3
X2
X1
优先编码器
当两条或两条以上线为“0”时,优先按输入编号大的
编码,称优先编码器(Priority Encoder) 。
以8-3优先编码器为例。
8-3
优先编码器
优先编码功能表
Ei
0
0
0
0
0
0
0
0
0
1
0
X
X
X
X
X
X
X
0
1
X
1
X
X
X
X
X
X
0
1
1
X
2
X
X
X
X
X
0
1
1
1
X
3
X
X
X
X
0
1
1
1
1
X
4
X
X
X
0
1
1
1
1
1
X
5
X
X
0
1
1
1
1
1
1
X
6
X
0
1
1
1
1
1
1
1
X
7
0
1
1
1
1
1
1
1
1
X
A0 A1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
A2
0
0
0
0
1
1
1
1
1
1
GS
0
0
0
0
0
0
0
0
1
1
E0
1
1
1
1
1
1
1
1
0
1
7
6
5
4
3
2
1
0
(A2,A1,A0用反码编码,Gs为编码输出,Eo为使能输出,Ei为使能输入)
A 0  E i (7  765  76543  7654321)  E i (7  65  643  6421)
用公式化简:
A 1  E i (7  76  76543  765432)  E i (7  6  543  542) A+AB=A+B
A 2  E i (7  76  765  7654)  E i (7  6  5  4)
E 0  E i 76543210
(E0=0,表示本片没有编码,多片相连时低位可以编码)
3-8优先编码器逻辑图
P125 图4-40
3-8优先编码器扩展为16-4优先编码器
15
Ei
8
76543210
Gs A2 A1
A3
A2 A1
A0E0
A0
7
Ei
Gs
0
76543210
A2 A1 A0 E0
E0
若高位片有“0”输入,高位Eo=1,应禁止低位片,以(A2~0)高
作为(A2~0)16-4 ,高位片的Gs(=0)作为A3
若高位片无“0”输入,高位Eo=0,低位片工作,以(A2~0)
低
作为(A2~0)16-4 ,高位片的Gs(=1)作为A3
2.3.4 数据比较器
A3A2 A1 A0
B3B2 B1 B0
若A3>B3 则A>B,
从高位开始比较, 若A <B 则A<B,
3
3
若A3=B3 则再比较低位
功能:比较A、B两数大小,判断A>B、A<B、A=B
Ai>Bi的条件:Ai=1,Bi=0;即 Ai  Bi  1或Z  Ai  Ai Bi  1
Ai<Bi的条件:Ai=0,Bi=1;即 Ai  Bi  1或W  Bi  Ai Bi  1
Ai=Bi的条件: Ai  Bi  1或W  Ai  Ai Bi  Bi  Ai B  1
i
数据比较器功能表
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
( A  B)  W3  Y3 W2  Y3 Y2 W1  Y3 Y2 Y1 W0  Y3 Y2 Y1 Y0
表达式:( A  B)  Z 3  Y3 Z 2
( A  B)  Y3 Y2 Y1 Y0
 Y3 Y2 Z 1  Y3 Y2 Y1 Z 0  Y3 Y2 Y1 Y0
(Yi表示Ai=Bi; Wi表示Ai<Bi; Zi表示Ai>Bi
数据比较器逻辑图
P129 图4-43
这是4位并行比较器,一次判断4位数大小。
按此思想可以推广到多位并行比较。
但是位数多了以后会出现组合爆炸,因此用
分段比较。
分段比较:多片比较器构成更长位数的方法
比较器不仅输出比较结果,还要能接受其
它片输出的结果。
A
B
4位
比较器
A>B
A<B
A=B
A>B
A<B
A=B
8位比较器:P130 图4-45
74LS85
2.3.5 运算器(算数逻辑单元 ALU)


十进制加法与二进制加法
加法器
– 四位串行进位加法器
– 快速加法器
– 16位加法器

算术运算逻辑单元
– 四位算术逻辑运算单元
– 功能
– 超前进位扩展器
我们所熟悉的十进制加法
计算器中用的加法,按照十进制数逐位相加。
将十进制数按二进制编码(BCD码),用4位二进制表示一位
十进制。典型的是8421 码和余3码。
十进制数
8421码
十进制数
余3码
0
0000
0
0011
1
0001
1
0100
2
0010
2
0101
3
0011
3
0110
4
0100
4
0111
5
0101
5
1000
6
0110
6
1001
7
0111
7
1010
8
1000
8
1011
9
1001
9
1100
8421码和余3码十进制数如何直接运算
(1) 8421 码加法:两个8421码相加,结果仍然要求是8421码。
(146)10  ( 259)10  ( 405)10
0001
0100
0110

0010 0101 1001
0011 1001 1111

0110
0101
0011 1010

0000
8421 BCD码
修正
修正
0110
0100
(8)10  (8)10  (16)10
0101
1000
8421 BCD码

1000
0001 0000

0110
修正
0110
 (16)10
0001
 (405)10
(52)10  (199)10  (251)10
0000
0101
0010

0001 1001 1001
0001 1110 1011

0110
0110
0101
0110
0010
8421 BCD码
修正
 (251)10
8421 码加法,如果和数在
1010-1111之间,需要+6修
正才能得到8421码的相加和。
BCD码和余3码十进制数如何直接运算
(2) 余3 码加法:两个余3码相加,结果可以方便地得到8421码。
0101
1010

8421码 (13)10
0111 1001

0101 1000 1100
1010 0000 0101

0110
0100
7+6
0110
1011

0110
减6修正
0101
8421码 (5)10
余3码 146+259
减6修正
0000
0101
2+3

1001
0001 0011
0100
余3码
余3码
8421码 (405)10
余3 码加法,如果和数在
1010-1111之间,减6
修正就能得到8421码的
相加和。
由于余3 码做减法方便,
因此得到应用。