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 码做减法方便,
因此得到应用。