电子科大-数电-数字逻辑设计第五章(4)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B2_L
74x151
EN A B CY D0 Y D1
D7
—— 多路复用器 只需要选出 M2 M1 M0
M2_L
同样的,通过改变 数据输入端的连接 可以得到M2M1M0
通常 M3=1 只有B10_L~B3_L都无效 M3=0(由GS端获得)
25
双优先级编码器
可以找出最高和第二高优先级的编码器
74x148
EI A2~A0 GS
I7~I0 EO
利用74x148 找出最高优先级
需要2个优先编码器 1个译码器、若干“与门”
如何找第二高优先级? 先“排除”最高优先输入 再用74x148找一次
其他输入不变 强制最高优先输入无效
—— 利用译码器和“与门”实现 (注意有效电平)
26
74x148
EI A2~A0 GS
8位比较器74x682
4
5.10 加法器
半加器(half adder)和 全加器(full adder)
半加器真值表
AB
00 01 10 11
CO S 00 01 01 10
相加的和:S = A’·B + A·B’ =AB
向高位的进位:CO = A·B
全加器真值表
CI X Y CO S
000 0 0 001 0 1 010 0 1 011 1 0 100 0 1 101 1 0 110 1 0 111 1 1
5
5.10 加法器
半加器(half adder)和 全加器(full adder)
CO XY CI 00 01 11 10 00 0 1 0
10 1 1 1
CO = X·Y + Y·CI + X·CI
= X·Y + (X+Y)·CI S = X Y CI
XS
Y CI
CO
全加器真值表
CI X Y CO S
多路
复用
Z
器
关模比较器原理框图
思路:(核心问题) (1)比较X,Y的大小 —— 比较器(8位)
(2)使Z为X,Y之一 ——多路复用器(二选一)
级联比较器 关模比较器
14
桶式移位器
具有n个数据输入和n个数据输出 控制输入:指定输入输出之间如何移动数据
(移位方向、移位类型、移动的位数) 设计一个简单16位桶式移位器(向左移位)
用4位控制输入S[3:0]指定移动位数,例: S=0101, 若输入:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 则输出:5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4
PI0
PI1
PIn-1
C0
PI C1
PI
C2
CI CO CI CO
边
PO
界
PO
级联输出
输
入
PO0
PO1
PI
Cn
CI CO
PO
边
界
输
POn-1
出
主输出
9
并行进位加法器
先行进位法:第 i 位的进位输入信号
可以由该位以前的各位状态决定。 全加器真值表
一位全加器:S = X Y Ci Ci+1 = X·Y + (X+Y)·Ci
23
(1)如何确定第一个“1”的位置? (2)如何确定3位指数? —— 优先编码器
(3)如何从第一个“1”开始选出4位M3M2M1M0?
74x148
EI B10_L I7
A2 E2_L A1 E1_L A0 E0_L
11010110100 00100101111 00000000010 B = M×2E+T
DIN[0,15:9] DIN[8:1]
DIN[15:8] DIN[7:0]
DIN[15:0] S3
S[3:0]
19
74x251 74x251 74x251 74x251
74x251 74x251 74x251 74x251
DOUT[15:0] 利用三态输出 74x251
基本原理: 利用多路复用器, 通过控制数据输 入端的连接使输 出产生移位。
DIND[[787::010]]
EN CBA Y D7~D0
Y
当通S过=控01制0数1时据 输Y入=端D的5 连接
17
P334 图6-1
DIN[14:7] DIN[6:0,15]
DIN[13:6] DIN[5:0,15,14]
74x151 74x151
74x151 74x151
DOUT15 DOUT14
B4_L I1 GS B3_L I0 EO
通常 M3=1 只有B10_L~B3_L都无效 M3=0 (由GS端获得)
24
(1)如何确定第一个“1”的位置?P337 图6-3 (2)如何确定3位指数?
(3)如何从第一个“1”开始选出4位M3M2M1M0?
E0_L E1_L E2_L B9_L B8_L
S3
缺点:运算速度慢,有较大的传输延迟
tADD = tXYCout + (n-2)*tCinCout + tCinS
—— 提高速度:并行加法器
回顾:串行比较器
7
串行比较器
X0 Y0
X1 Y1
XY
XY
CMP EQ1
CMP EQ2
1 EQI EQO
EQI EQO
XN-1 YN-1
XY
EQN-1 CMP EQN
3
内容回顾
译码器 编码器 三态器件 多路复用器 奇偶校验器 比较器
等值比较器
▪ 一位等值比较器(异或 / 同或)
▪ 多位等值比较器 并行比较 每一位都相等 串行比较
数值比较器
▪ 一位数值比较器 ▪ 多位数值比较器
A=B:A⊙B A>B:A·B’ A<B:A’·B
4位比较器74x85
Ci+1 = (Xi·Yi) + (Xi+Yi)·Ci = Gi + Pi ·Ci
进位产生信号 进位传递信号
Ci X Y Ci+1S
000 0 0 001 0 1 010 0 1 011 1 0 100 0 1 101 1 0 110 1 0 111 1 1
10
并行进位加法器
先行进位法:第 i 位的进位输入信号
I7~I0 EO
74x138
GI G2A,B CBA Y7~Y0
A[2:0] AVALID
74x148
EI
A2~A0
I7
GS
EO I0
R_L[7:0] 最高优先输入为0,其余输入为1
B[2:0] BVALID
27
关模比较器
输入:两个8位无符号二进制整数 X 和 Y
一个控制信号 M 输出:8位无符号二进制整数 Z 逻辑功能:M = 1,Z = min(X,Y)
改变A端输入数据的连接顺序
可以使输出:左/右移动一或多位
20
通 过 S0 控 制 16 位 多 路 复 用 器 移 位
21
DI[15:12] DI[14:11]
74x157
A4~A0 B4~B0
Y4~Y0
GS
YO[15:12]
DI[11:8] DI[10:7]
A4~A0 B4~B0
Y4~Y0
GS
YO[11:8]
EN CBA Y D7~D0
Y Y
当S=0101时 Y=D5
16
方案一:利用74x151
2、当S=0101时,如何使输出为 DIN6, …, DIN15, …, DIN4?
S[2:0] DDININD[0[,1155::89]]
EN CBA Y D7~D0
74x151
EN
A
B
Y
C
Y
D0
D7
S3 S[2:0]
DIN[0,15:9] DIN[8:1]
DIN[15:8] DIN[7:0]
DIN[15:0] S3
S[3:0]
18
74x151 74x151
DOUT1
74x151 74x151
DOUT0
DOUT[15:0]
S[2:0]
P334 图6-1
DIN[14:7] DIN[6:0,15]
DIN[13:6] DIN[5:0,15,14]
思路:输出的每一位都是从16个输入中选出的。 ——多路复用器(数据选择器)
15
方案一:利用74x151 74x151
1、如何扩展路复用器?
16个输入端;4个地址选择端;
D[15:0]
EN
EN
A
B
Y
C
Y
D0
S[2:0]
CBA Y
D7
D[15:8]
D7~D0
S3 S[2:0]
D[7:0] S[3:0]
—— 利用带使能端的译码器 使能端作为数据输入端
2
内容回顾
译码器 编码器 三态器件 多路复用器 奇偶校验器 比较器
▪ 奇校验:输入有奇数个1,输出为1 ▪ 偶校验:输入有偶数个1,输出为1 ▪ 利用异或运算实现 ▪ 9位奇偶发生器74x280 ▪ 奇偶校验的应用
—— 检测代码在传输和存储 过程中是否出现差错。
74x157
74x157
74x157
74x157
74x157
74x157
74x157
S[3:0] S0
Si=1: 移动1位 Si=0: 不移动
22
74x157
74x157
74x157
S1 移动2位
S2 移动4位
S3 移动8位
节省器件,延迟大,P335 图6-2
浮点编码器
11010110100 = 1101×227111+ 0110100
M = 0,Z = max(X,Y)
74x157
G S 1Y~4Y 1A~4A 1B~4B
思路:(核心问题) (1)比较X,Y的大小 —— 比较器(8位)
(2)使Z为X,Y之一 ——多路复用器(二选一)
(3)控制逻辑 ——根据M和X,Y大小控制 多路复用器的地址选择端。
28
M
X Y
比较器
控制逻辑
X>Y
EQI EQO
串行加法器
主输入
X0 Y0 X1 Y1 X2 Y2 X3 Y3
C0
边界 输入
XY
XY
XY
XY
CI CO C1 CI CO C2 CI CO C3 CI CO C4
S
S
S
S 边界
S0
S1 级联输出 S2
输出 S3
主输出
8
迭代电路(iterative circuit)
Iterative:重复的, 反复的, [数]迭代的 P297 主输入
11
MSI算术逻辑单元
ALU,arithmetic and logic unit 对2个b位的操作数进行若干不同的算术和逻辑运算
选择特定操作 0算术/1逻辑
输入数据
74x181
S0~S3 M CIN
A0~A3 B0~B3
G P A=B
F0~F3
COUT
输入数据
P310 表5-52
百度文库
12
功能表
设计函数发生器,其功能表如下: S1 S0 Y
DI[7:4] DI[6:3]
A4~A0 B4~B0
Y4~Y0
GS
YO[7:4]
DI[3:0] DI[2:0,15]
A4~A0 B4~B0
Y4~Y0
GS
YO[3:0]
DI[15:0]
YO[15:0] S0
DI[15:0]
74x157
74x157
74x157
DO[15:0]
74x157
74x157
74x157
1、填写真值表
2、选择器件
▪ 用基本门电路实现 利用卡诺图化简
▪ 用译码器实现 转换为最小项之和
▪ 用数据选择器实现
3、电路处理
注意有效电平
00 01 10 11
A·B A+B AB
A’
真值表
S1 S0 A B Y 0 0 00 0 0 01
13
第6章 组合电路设计实例
桶式移位器 简单浮点编码器 双优先级编码器
000 0 0 001 0 1 010 0 1 011 1 0 100 0 1 101 1 0 110 1 0 111 1 1
6
X0 Y0
串行进位加法器
X1 Y1 X2 Y2
X3 Y3
XY
XY
XY
XY
C0 CI CO C1 CI CO C2 CI CO C3 CI CO C4
=0
S
S
S
S
S0
S1
S2
00100101111 = 1001×225101+ 01111
00000000010 = 0010×20000+ 0 浮点数的表示: B = M × 2E + T
截位误差
从第一个“1”开始取4位
3位指数
首先解决的几个问题:
由第一个“1”的位置决定
⑴ 如何确定第一个“1”的位置?—— 优先编码器 ⑵ 如何确定3位指数? —— 优先编码器的输出 ⑶ 如何从第一个“1”开始选出4位—?— 数据选择器
负载太大
S[2:0]
方案二:利用74x157
如何利用2输入4位多路复用控制移位?
DIN[3:0] DIN[2:0,3]
74x157
G S A4~A0 B4~B0
Y4~Y0
基本原理: 利用多路复用器, 通过控制数据输 入端的连接使输
当S=0时,Y=A,不移位
出产生移位。
当S=1时,Y=B,相当于右移一位
可以由该位以前的各位状态决定。
Ci+1 = Gi + Pi ·Ci
C0 = 0
MSI加法器 74x283
P309图5-91
C0 = 0
展开为“与-或”式:三级延迟
C1 = G0+P0·C0
C2 = G1+P1·C1 = G1+P1·(G0+P0·C0)
= G1+P1·G0+ P1·P0·C0
……
Cn = Gn+Pn·Cn (P307)
数字逻辑设计及应用
第5章 组合逻辑设计实践
文档标准和电路定时 常用的中规模组合逻辑器件
1
内容回顾
译码器 编码器 三态器件 多路复用器 奇偶校验器 比较器
▪ 标准MSI多路复用器 74x151、 74x153、74x157
▪ 扩展多路复用器 ▪ 利用多路复用器实现逻辑函数 ▪ 多路分配器
74x151
EN A B CY D0 Y D1
D7
—— 多路复用器 只需要选出 M2 M1 M0
M2_L
同样的,通过改变 数据输入端的连接 可以得到M2M1M0
通常 M3=1 只有B10_L~B3_L都无效 M3=0(由GS端获得)
25
双优先级编码器
可以找出最高和第二高优先级的编码器
74x148
EI A2~A0 GS
I7~I0 EO
利用74x148 找出最高优先级
需要2个优先编码器 1个译码器、若干“与门”
如何找第二高优先级? 先“排除”最高优先输入 再用74x148找一次
其他输入不变 强制最高优先输入无效
—— 利用译码器和“与门”实现 (注意有效电平)
26
74x148
EI A2~A0 GS
8位比较器74x682
4
5.10 加法器
半加器(half adder)和 全加器(full adder)
半加器真值表
AB
00 01 10 11
CO S 00 01 01 10
相加的和:S = A’·B + A·B’ =AB
向高位的进位:CO = A·B
全加器真值表
CI X Y CO S
000 0 0 001 0 1 010 0 1 011 1 0 100 0 1 101 1 0 110 1 0 111 1 1
5
5.10 加法器
半加器(half adder)和 全加器(full adder)
CO XY CI 00 01 11 10 00 0 1 0
10 1 1 1
CO = X·Y + Y·CI + X·CI
= X·Y + (X+Y)·CI S = X Y CI
XS
Y CI
CO
全加器真值表
CI X Y CO S
多路
复用
Z
器
关模比较器原理框图
思路:(核心问题) (1)比较X,Y的大小 —— 比较器(8位)
(2)使Z为X,Y之一 ——多路复用器(二选一)
级联比较器 关模比较器
14
桶式移位器
具有n个数据输入和n个数据输出 控制输入:指定输入输出之间如何移动数据
(移位方向、移位类型、移动的位数) 设计一个简单16位桶式移位器(向左移位)
用4位控制输入S[3:0]指定移动位数,例: S=0101, 若输入:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 则输出:5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4
PI0
PI1
PIn-1
C0
PI C1
PI
C2
CI CO CI CO
边
PO
界
PO
级联输出
输
入
PO0
PO1
PI
Cn
CI CO
PO
边
界
输
POn-1
出
主输出
9
并行进位加法器
先行进位法:第 i 位的进位输入信号
可以由该位以前的各位状态决定。 全加器真值表
一位全加器:S = X Y Ci Ci+1 = X·Y + (X+Y)·Ci
23
(1)如何确定第一个“1”的位置? (2)如何确定3位指数? —— 优先编码器
(3)如何从第一个“1”开始选出4位M3M2M1M0?
74x148
EI B10_L I7
A2 E2_L A1 E1_L A0 E0_L
11010110100 00100101111 00000000010 B = M×2E+T
DIN[0,15:9] DIN[8:1]
DIN[15:8] DIN[7:0]
DIN[15:0] S3
S[3:0]
19
74x251 74x251 74x251 74x251
74x251 74x251 74x251 74x251
DOUT[15:0] 利用三态输出 74x251
基本原理: 利用多路复用器, 通过控制数据输 入端的连接使输 出产生移位。
DIND[[787::010]]
EN CBA Y D7~D0
Y
当通S过=控01制0数1时据 输Y入=端D的5 连接
17
P334 图6-1
DIN[14:7] DIN[6:0,15]
DIN[13:6] DIN[5:0,15,14]
74x151 74x151
74x151 74x151
DOUT15 DOUT14
B4_L I1 GS B3_L I0 EO
通常 M3=1 只有B10_L~B3_L都无效 M3=0 (由GS端获得)
24
(1)如何确定第一个“1”的位置?P337 图6-3 (2)如何确定3位指数?
(3)如何从第一个“1”开始选出4位M3M2M1M0?
E0_L E1_L E2_L B9_L B8_L
S3
缺点:运算速度慢,有较大的传输延迟
tADD = tXYCout + (n-2)*tCinCout + tCinS
—— 提高速度:并行加法器
回顾:串行比较器
7
串行比较器
X0 Y0
X1 Y1
XY
XY
CMP EQ1
CMP EQ2
1 EQI EQO
EQI EQO
XN-1 YN-1
XY
EQN-1 CMP EQN
3
内容回顾
译码器 编码器 三态器件 多路复用器 奇偶校验器 比较器
等值比较器
▪ 一位等值比较器(异或 / 同或)
▪ 多位等值比较器 并行比较 每一位都相等 串行比较
数值比较器
▪ 一位数值比较器 ▪ 多位数值比较器
A=B:A⊙B A>B:A·B’ A<B:A’·B
4位比较器74x85
Ci+1 = (Xi·Yi) + (Xi+Yi)·Ci = Gi + Pi ·Ci
进位产生信号 进位传递信号
Ci X Y Ci+1S
000 0 0 001 0 1 010 0 1 011 1 0 100 0 1 101 1 0 110 1 0 111 1 1
10
并行进位加法器
先行进位法:第 i 位的进位输入信号
I7~I0 EO
74x138
GI G2A,B CBA Y7~Y0
A[2:0] AVALID
74x148
EI
A2~A0
I7
GS
EO I0
R_L[7:0] 最高优先输入为0,其余输入为1
B[2:0] BVALID
27
关模比较器
输入:两个8位无符号二进制整数 X 和 Y
一个控制信号 M 输出:8位无符号二进制整数 Z 逻辑功能:M = 1,Z = min(X,Y)
改变A端输入数据的连接顺序
可以使输出:左/右移动一或多位
20
通 过 S0 控 制 16 位 多 路 复 用 器 移 位
21
DI[15:12] DI[14:11]
74x157
A4~A0 B4~B0
Y4~Y0
GS
YO[15:12]
DI[11:8] DI[10:7]
A4~A0 B4~B0
Y4~Y0
GS
YO[11:8]
EN CBA Y D7~D0
Y Y
当S=0101时 Y=D5
16
方案一:利用74x151
2、当S=0101时,如何使输出为 DIN6, …, DIN15, …, DIN4?
S[2:0] DDININD[0[,1155::89]]
EN CBA Y D7~D0
74x151
EN
A
B
Y
C
Y
D0
D7
S3 S[2:0]
DIN[0,15:9] DIN[8:1]
DIN[15:8] DIN[7:0]
DIN[15:0] S3
S[3:0]
18
74x151 74x151
DOUT1
74x151 74x151
DOUT0
DOUT[15:0]
S[2:0]
P334 图6-1
DIN[14:7] DIN[6:0,15]
DIN[13:6] DIN[5:0,15,14]
思路:输出的每一位都是从16个输入中选出的。 ——多路复用器(数据选择器)
15
方案一:利用74x151 74x151
1、如何扩展路复用器?
16个输入端;4个地址选择端;
D[15:0]
EN
EN
A
B
Y
C
Y
D0
S[2:0]
CBA Y
D7
D[15:8]
D7~D0
S3 S[2:0]
D[7:0] S[3:0]
—— 利用带使能端的译码器 使能端作为数据输入端
2
内容回顾
译码器 编码器 三态器件 多路复用器 奇偶校验器 比较器
▪ 奇校验:输入有奇数个1,输出为1 ▪ 偶校验:输入有偶数个1,输出为1 ▪ 利用异或运算实现 ▪ 9位奇偶发生器74x280 ▪ 奇偶校验的应用
—— 检测代码在传输和存储 过程中是否出现差错。
74x157
74x157
74x157
74x157
74x157
74x157
74x157
S[3:0] S0
Si=1: 移动1位 Si=0: 不移动
22
74x157
74x157
74x157
S1 移动2位
S2 移动4位
S3 移动8位
节省器件,延迟大,P335 图6-2
浮点编码器
11010110100 = 1101×227111+ 0110100
M = 0,Z = max(X,Y)
74x157
G S 1Y~4Y 1A~4A 1B~4B
思路:(核心问题) (1)比较X,Y的大小 —— 比较器(8位)
(2)使Z为X,Y之一 ——多路复用器(二选一)
(3)控制逻辑 ——根据M和X,Y大小控制 多路复用器的地址选择端。
28
M
X Y
比较器
控制逻辑
X>Y
EQI EQO
串行加法器
主输入
X0 Y0 X1 Y1 X2 Y2 X3 Y3
C0
边界 输入
XY
XY
XY
XY
CI CO C1 CI CO C2 CI CO C3 CI CO C4
S
S
S
S 边界
S0
S1 级联输出 S2
输出 S3
主输出
8
迭代电路(iterative circuit)
Iterative:重复的, 反复的, [数]迭代的 P297 主输入
11
MSI算术逻辑单元
ALU,arithmetic and logic unit 对2个b位的操作数进行若干不同的算术和逻辑运算
选择特定操作 0算术/1逻辑
输入数据
74x181
S0~S3 M CIN
A0~A3 B0~B3
G P A=B
F0~F3
COUT
输入数据
P310 表5-52
百度文库
12
功能表
设计函数发生器,其功能表如下: S1 S0 Y
DI[7:4] DI[6:3]
A4~A0 B4~B0
Y4~Y0
GS
YO[7:4]
DI[3:0] DI[2:0,15]
A4~A0 B4~B0
Y4~Y0
GS
YO[3:0]
DI[15:0]
YO[15:0] S0
DI[15:0]
74x157
74x157
74x157
DO[15:0]
74x157
74x157
74x157
1、填写真值表
2、选择器件
▪ 用基本门电路实现 利用卡诺图化简
▪ 用译码器实现 转换为最小项之和
▪ 用数据选择器实现
3、电路处理
注意有效电平
00 01 10 11
A·B A+B AB
A’
真值表
S1 S0 A B Y 0 0 00 0 0 01
13
第6章 组合电路设计实例
桶式移位器 简单浮点编码器 双优先级编码器
000 0 0 001 0 1 010 0 1 011 1 0 100 0 1 101 1 0 110 1 0 111 1 1
6
X0 Y0
串行进位加法器
X1 Y1 X2 Y2
X3 Y3
XY
XY
XY
XY
C0 CI CO C1 CI CO C2 CI CO C3 CI CO C4
=0
S
S
S
S
S0
S1
S2
00100101111 = 1001×225101+ 01111
00000000010 = 0010×20000+ 0 浮点数的表示: B = M × 2E + T
截位误差
从第一个“1”开始取4位
3位指数
首先解决的几个问题:
由第一个“1”的位置决定
⑴ 如何确定第一个“1”的位置?—— 优先编码器 ⑵ 如何确定3位指数? —— 优先编码器的输出 ⑶ 如何从第一个“1”开始选出4位—?— 数据选择器
负载太大
S[2:0]
方案二:利用74x157
如何利用2输入4位多路复用控制移位?
DIN[3:0] DIN[2:0,3]
74x157
G S A4~A0 B4~B0
Y4~Y0
基本原理: 利用多路复用器, 通过控制数据输 入端的连接使输
当S=0时,Y=A,不移位
出产生移位。
当S=1时,Y=B,相当于右移一位
可以由该位以前的各位状态决定。
Ci+1 = Gi + Pi ·Ci
C0 = 0
MSI加法器 74x283
P309图5-91
C0 = 0
展开为“与-或”式:三级延迟
C1 = G0+P0·C0
C2 = G1+P1·C1 = G1+P1·(G0+P0·C0)
= G1+P1·G0+ P1·P0·C0
……
Cn = Gn+Pn·Cn (P307)
数字逻辑设计及应用
第5章 组合逻辑设计实践
文档标准和电路定时 常用的中规模组合逻辑器件
1
内容回顾
译码器 编码器 三态器件 多路复用器 奇偶校验器 比较器
▪ 标准MSI多路复用器 74x151、 74x153、74x157
▪ 扩展多路复用器 ▪ 利用多路复用器实现逻辑函数 ▪ 多路分配器