610 likes | 702 Views
第6章 组合电路设计实例. 桶式移位器 简单浮点编码器 双优先级编码器 级联比较器 关模比较器. 桶式移位器. 具有 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.
E N D
第6章 组合电路设计实例 桶式移位器 简单浮点编码器 双优先级编码器 级联比较器 关模比较器 制作:金燕华
桶式移位器 • 具有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 思路:输出的每一位都是从16个输入中选出的。 ——多路复用器(数据选择器) 制作:金燕华
74x151 EN A BY C Y D0 D7 D[15:0] EN CBA Y D7~D0 S[2:0] D[15:8] Y Y S3 EN CBA Y D7~D0 S[2:0] D[7:0] S[3:0] 方案一:利用74x151 1、如何扩展路复用器? 16个输入端;4个地址选择端; 当S=0101时 Y=D5 制作:金燕华
74x151 EN A BY C Y D0 D7 EN CBA Y D7~D0 S[2:0] D[15:8] DIN[15:8] Y S3 EN CBA Y D7~D0 S[2:0] D[7:0] DIN[7:0] 方案一:利用74x151 2、当S=0101时,如何使输出为 DIN6, …, DIN15, …, DIN4? DIN[0,15:9] 通过控制数据输入端的连接 当S=0101时 Y=D5 DIN[8:1] 制作:金燕华
DIN[14:7] DIN[6:0,15] 74x151 DOUT15 74x151 DIN[13:6] DIN[5:0,15,14] 74x151 DOUT14 74x151 DIN[0,15:9] DIN[8:1] 74x151 DOUT1 74x151 DIN[15:8] DIN[7:0] 74x151 DOUT0 74x151 DIN[15:0] DOUT[15:0] S3 S[2:0] S[3:0] P334 图6-1 制作:金燕华
DIN[14:7] DIN[6:0,15] DOUT[15:0] 74x251 P334 图6-1 74x251 DIN[13:6] DIN[5:0,15,14] 74x251 74x251 DIN[0,15:9] DIN[8:1] 74x251 74x251 DIN[15:8] DIN[7:0] 74x251 74x251 DIN[15:0] S3 S[2:0] S[3:0] 利用三态输出 74x251 基本原理: 利用多路复用器,通过控制数据输入端的连接使输出产生移位。 负载太大 制作:金燕华
74x157 G S A4~A0 B4~B0 Y4~Y0 DIN[3:0] DIN[2:0,3] 方案二:利用74x157 如何利用2输入4位多路复用控制移位? 基本原理: 利用多路复用器,通过控制数据输入端的连接使输出产生移位。 当S=0时,Y=A,不移位 当S=1时,Y=B,相当于右移一位 改变A端输入数据的连接顺序 可以使输出:左/右移动一或多位 制作:金燕华
74x157 DI[15:12] A4~A0 B4~B0 GS Y4~Y0 YO[15:12] DI[14:11] DI[11:8] A4~A0 B4~B0 GS Y4~Y0 YO[11:8] DI[10:7] DI[7:4] A4~A0 B4~B0 GS Y4~Y0 YO[7:4] DI[6:3] DI[3:0] A4~A0 B4~B0 GS Y4~Y0 YO[3:0] DI[2:0,15] DI[15:0] YO[15:0] S0 通 过 S0 控 制 16 位 多 路 复 用 器 移 位 制作:金燕华
DI[15:0] DO[15:0] 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 S[3:0] S0 S1 S2 S3 Si=1: 移动1位 移动2位 移动4位 移动8位 Si=0: 不移动 节省器件,延迟大,P335 图6-2 制作:金燕华
从第一个“1”开始取4位 3位指数 浮点编码器 11010110100 = 1101×27 + 0110100 00100101111 = 1001×25 + 01111 00000000010 = 0010×20 + 0 2111 2101 2000 截位误差 浮点数的表示: B = M × 2E + T 由第一个“1”的位置决定 首先解决的几个问题: ⑴ 如何确定第一个“1”的位置? ⑵ 如何确定3位指数? ⑶ 如何从第一个“1”开始选出4位? —— 优先编码器 —— 优先编码器的输出 —— 数据选择器 制作:金燕华
74x148 EI A2 A1 A0 GS EO E2_L I7 I1 I0 E1_L B10_L E0_L B4_L B3_L (1)如何确定第一个“1”的位置? —— 优先编码器 (2)如何确定3位指数? (3)如何从第一个“1”开始选出4位M3M2M1M0? 11010110100 00100101111 00000000010 B = M×2E+T 通常 M3=1 只有B10_L~B3_L都无效 M3=0 (由GS端获得) 制作:金燕华
74x151 EN A B C Y Y D0 D1 D7 (1)如何确定第一个“1”的位置? P337 图6-3 (2)如何确定3位指数? (3)如何从第一个“1”开始选出4位M3M2M1M0? —— 多路复用器 只需要选出 M2 M1 M0 同样的,通过改变 数据输入端的连接 可以得到M2M1M0 E0_L E1_L E2_L M2_L B9_L B8_L B2_L 通常 M3=1 只有B10_L~B3_L都无效 M3=0(由GS端获得) 制作:金燕华
74x148 EI A2~A0 GS EO I7~I0 其他输入不变 强制最高优先输入无效 利用74x148 找出最高优先级 双优先级编码器 可以找出最高和第二高优先级的编码器 如何找第二高优先级? 先“排除”最高优先输入 再用74x148找一次 —— 利用译码器和“与门”实现 (注意有效电平) 需要2个优先编码器 1个译码器、若干“与门” 制作:金燕华
74x138 74x148 GI EI A2~A0 GS EO G2A,B I7~I0 Y7~Y0 CBA A[2:0] AVALID 74x148 EI A2~A0 GS EO I7 I0 R_L[7:0] 最高优先输入为0,其余输入为1 B[2:0] BVALID 制作:金燕华
74x157 G S 1A~4A 1B~4B 1Y~4Y 关模比较器 • 输入:两个8位无符号二进制整数 X 和 Y 一个控制信号 M • 输出:8位无符号二进制整数 Z • 逻辑功能:M = 1,Z = min(X,Y) M = 0,Z = max(X,Y) 思路:(核心问题) (1)比较X,Y的大小 (2)使Z为X,Y之一 (3)控制逻辑 —— 比较器(8位) ——多路复用器(二选一) ——根据M和X,Y大小控制 多路复用器的地址选择端。 制作:金燕华
M 控制逻辑 X 比较器 Y X>Y 多路 复用 器 Z 思路:(核心问题) (1)比较X,Y的大小 (2)使Z为X,Y之一 (3)控制逻辑 —— 比较器(8位) ——多路复用器(二选一) ——根据M和X,Y大小控制 多路复用器的地址选择端。 关模比较器原理框图 制作:金燕华
M 控制逻辑 X 比较器 X>Y Y 74x157 多路 复用器 G S 1A~4A 1B~4B Z 1Y~4Y 74x682 P7~0 Q7~0 74x157 P=Q P>Q G S 1A~4A 1B~4B 1Y~4Y M X[7:0] Z[7:0] Y[7:0] S=0 Y=A S=1 Y=B 制作:金燕华
M P>Q_L S 0 0 0 1 1 0 1 1 74x157 G S 1A~4A 1B~4B 1Y~4Y 74x682 P7~0 Q7~0 74x157 P=Q P>Q G S 1A~4A 1B~4B 1Y~4Y M X[7:0] Z[7:0] Y[7:0] S=0 Y=A S=1 Y=B M=1,min(X,Y) M=0,max(X,Y) 0 1 1 0 P341图6-8 制作:金燕华
第6章 组合电路设计实例 桶式移位器 简单浮点编码器 双优先级编码器 级联比较器 关模比较器 制作:金燕华
桶式移位器 思路:输出的每一位都是从16个输入中选出的 ——多路复用器(数据选择器) 需要解决的问题: (1)需要多少个16选1的多路复用器? (2)如何控制输出移位? • 具有n个数据输入和n个数据输出 • 控制输入:指定输入输出之间如何移动数据 (移位方向、移位类型、移动的位数) 设计一个简单16位桶式移位器(向左移位) 16个数据输入和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 制作:金燕华
74x151 EN A BY C Y D0 D7 D[15:0] EN CBA Y D7~D0 S[2:0] D[15:8] Y Y S3 EN CBA Y D7~D0 S[2:0] D[7:0] S[3:0] 方案一:利用74x151 1、如何扩展路复用器? 16个输入端;4个地址选择端; 当S=0101时 Y=D5 制作:金燕华
74x151 74x151 EN CBA D0 D1 D2 D3 D4 D5 D6 D7 EN CBA D0 D1 D2 D3 D4 D5 D6 D7 S[2:0] S[2:0] S[2:0] DI0 DI1 DI2 DI3 DI4 DI5 DI6 DI7 DI2 DI3 DI4 DI5 DI6 DI7 DI0 DI1 DI1 DI2 DI3 DI4 DI5 DI6 DI7 DI0 Y Y Y Y Y0 Y2 Y1 2、如何产生移位?? 通过控制数据输入端的连接产生移位 制作:金燕华
74x151 74x151 74x151 EN A BY C Y D0 D7 绿色表示高位 红色表示低位 EN CBA Y D7~D0 S[2:0] DIN[15:8] DIN[0,15:9] Y1 Y0 S3 EN CBA Y D7~D0 S[2:0] DIN[7:0] DIN[8:1] 2、如何产生移位?? 通过控制数据输入端的连接产生移位 制作:金燕华
DIN[14:7] DIN[6:0,15] 74x151 DOUT15 74x151 DIN[13:6] DIN[5:0,15,14] 74x151 DOUT14 74x151 DIN[0,15:9] DIN[8:1] 74x151 DOUT1 74x151 DIN[15:8] DIN[7:0] 74x151 DOUT0 74x151 DIN[15:0] DOUT[15:0] S3 S[2:0] S[3:0] P334 图6-1 制作:金燕华
DIN[14:7] DIN[6:0,15] DOUT[15:0] 74x251 P334 图6-1 74x251 DIN[13:6] DIN[5:0,15,14] 74x251 74x251 DIN[0,15:9] DIN[8:1] 74x251 74x251 DIN[15:8] DIN[7:0] 74x251 74x251 DIN[15:0] S3 S[2:0] S[3:0] 利用三态输出 74x251 基本原理: 利用多路复用器,通过控制数据输入端的连接使输出产生移位。 并行处理 负载太大 制作:金燕华
74x157 G S A4~A0 B4~B0 Y4~Y0 DIN[3:0] DIN[2:0,3] 方案二:利用74x157 如何利用2输入4位多路复用控制移位? 基本原理: 利用多路复用器,通过控制数据输入端的连接使输出产生移位。 当S=0时,Y=A,不移位 当S=1时,Y=B,相当于移动一位 改变A端输入数据的连接顺序 可以使输出:左/右移动一或多位 制作:金燕华
74x157 DI[15:12] A4~A0 B4~B0 GS Y4~Y0 YO[15:12] DI[14:11] DI[11:8] A4~A0 B4~B0 GS Y4~Y0 YO[11:8] DI[10:7] DI[7:4] A4~A0 B4~B0 GS Y4~Y0 YO[7:4] DI[6:3] DI[3:0] A4~A0 B4~B0 GS Y4~Y0 YO[3:0] DI[2:0,15] DI[15:0] YO[15:0] S0 S = 0 Y = A 不移位 S = 1 Y = B 移动1位 注意移位方向 制作:金燕华
DI[15:0] DO[15:0] 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 74x157 S[3:0] S0 S1 S2 S3 Si=1: 移动1位 移动2位 移动4位 移动8位 Si=0: 不移动 串行方式,节省器件,延迟大,P335 图6-2 制作:金燕华
从第一个“1”开始取4位 3位指数 浮点编码器 11010110100 = 1101× 27 + 0110100 00100101111 = 1001× 25 + 01111 00000000010 = 0010× 20 + 0 2111 2101 2000 截位误差 浮点数的表示: B = M × 2E + T 由第一个“1”的位置决定 首先解决的几个问题: ⑴ 如何确定第一个“1”的位置? ⑵ 如何确定3位指数? ⑶ 如何从第一个“1”开始选出4位? —— 优先编码器 —— 优先编码器的输出 —— 数据选择器 制作:金燕华
74x148 EI A2 A1 A0 GS EO E2_L I7 I1 I0 E1_L B10_L E0_L B4_L B3_L (1)如何确定第一个“1”的位置? —— 优先编码器 (2)如何确定3位指数? (3)如何从第一个“1”开始选出4位M3M2M1M0? 11010110100 00100101111 00000000010 B = M×2E+T 通常 M3=1 只有B10_L~B3_L都无效 M3=0 (由GS端获得) 制作:金燕华
74x151 EN A B C Y Y E0_L E1_L E2_L D0 D1 D7 M2_L B9_L B8_L B2_L (1)如何确定第一个“1”的位置? P337 图6-3 (2)如何确定3位指数? (3)如何从第一个“1”开始选出4位M3M2M1M0? —— 多路复用器 只需要选出 M2 M1 M0 同样的,通过改变 数据输入端的连接 可以得到M2M1M0 E2 E1 E0 注意 有效 电平 M2 B2 B3 B9 通常 M3=1 只有B10_L~B3_L都无效 M3=0(由GS端获得) 制作:金燕华
74x148 EI A2~A0 GS EO I7~I0 其他输入不变 强制最高优先输入无效 利用74x148 找出最高优先级 双优先级编码器 可以找出最高和第二高优先级的编码器 如何找第二高优先级? 先“排除”最高优先输入 再用74x148找一次 —— 利用译码器和“与门”实现 (注意有效电平) 需要2个优先编码器 1个译码器、若干“与门” 制作:金燕华
74x138 74x148 GI EI A2~A0 GS EO G2A,B I7~I0 Y7~Y0 CBA A[2:0] AVALID 74x148 EI A2~A0 GS EO I7 I0 R_L[7:0] 最高优先输入为0,其余输入为1 B[2:0] BVALID 制作:金燕华
Q[23:0] P[23:0] P0~P7 P=Q Q0~Q7 P>Q [7:0] PEQQ P0~P7 P=Q Q0~Q7 P>Q [15:8] PGTQ P0~P7 P=Q Q0~Q7 P>Q [23:16] 级联比较器 3片74x682构成24位比较器 P338 6.1.4 P340 图6-7 制作:金燕华
74x157 G S 1A~4A 1B~4B 1Y~4Y 关模比较器 • 输入:两个8位无符号二进制整数 X 和 Y 一个控制信号 M • 输出:8位无符号二进制整数 Z • 逻辑功能:M = 1,Z = min(X,Y) M = 0,Z = max(X,Y) 思路:(核心问题) (1)比较X,Y的大小 (2)使Z为X,Y之一 (3)控制逻辑 —— 比较器(8位) ——多路复用器(二选一) ——根据M和X,Y大小控制 多路复用器的地址选择端。 制作:金燕华
M 控制逻辑 X 比较器 Y X>Y 多路 复用 器 Z 思路:(核心问题) (1)比较X,Y的大小 (2)使Z为X,Y之一 (3)控制逻辑 —— 比较器(8位) ——多路复用器(二选一) ——根据M和X,Y大小控制 多路复用器的地址选择端。 关模比较器原理框图 制作:金燕华
M 控制逻辑 X 比较器 X>Y Y 74x157 多路 复用器 G S 1A~4A 1B~4B Z 1Y~4Y 74x682 P7~0 Q7~0 74x157 P=Q P>Q G S 1A~4A 1B~4B 1Y~4Y M X[7:0] Z[7:0] Y[7:0] S=0 Y=A S=1 Y=B 制作:金燕华
M P>Q_L S 0 0 0 1 1 0 1 1 74x157 G S 1A~4A 1B~4B 1Y~4Y 74x682 P7~0 Q7~0 74x157 P=Q P>Q G S 1A~4A 1B~4B 1Y~4Y M X[7:0] Z[7:0] Y[7:0] S=0 Y=A S=1 Y=B M=1,min(X,Y) M=0,max(X,Y) 0 1 1 0 P341图6-8 制作:金燕华
组合逻辑部分小结 第4章 组合逻辑设计原理 第5章 组合逻辑设计实践 第6章 组合电路设计实例 制作:金燕华
第4章 基本原理 • 开关代数的公理、定理 • 对偶、反演规则 • 逻辑函数的表示法 • 开关代数基础 • 组合逻辑的基本分析、综合方法 • 冒险 • 分析步骤,利用公式进行化简 • 设计方法、步骤 利用卡诺图化简,电路处理 • 无关项的化简、多输出函数的化简 —— 冒险的检查和消除 制作:金燕华
组合电路的分析 • 分析的目的: • 确定给定电路的逻辑功能 • 分析步骤: • 由输入到输出逐级写出逻辑函数表达式 • 对输出逻辑函数表达式进行化简 • 判断逻辑功能(列真值表或画波形图) 制作:金燕华
B3 B2 B1 B0 G3 G2 G1 G0 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 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 B3 G3 G2 B2 G1 B1 G0 B0 G3 = B3 G2 = B3B2 G1 = B2B1 G0 = B1B0 分析图示逻辑电路的功能 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 解:1、写表达式 2、列真值表 3、分析功能 二进制码至格雷码的转换电路 制作:金燕华
函数化简 电路处理 选定 器件 类型 问题 描述 逻辑 抽象 电路 实现 将函数 式变换 组合电路的综合 用门电路 真值表 或 函数式 用MSI组合电路或PLD 制作:金燕华
P2 X1X0 X1 X0 Y1 Y0 P3 P2 P1 P0 00 01 11 10 Y1Y0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 1 1 0 1 1 00 01 11 10 1 1 1 设计2位数乘法器 1、列真值表 输入:X、Y(2位) 输出:乘积P(4位) 2、用门电路实现 利用卡诺图化简 注意:多输出函数 3、电路处理 P3 = X1·X0·Y1·Y0 制作:金燕华
P2 X1X0 X1X0 X1X0 00 01 11 10 00 01 11 10 00 01 11 10 Y1Y0 Y1Y0 Y1Y0 1 1 1 1 00 01 11 10 00 01 11 10 00 01 11 10 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 P3 = X1·X0·Y1·Y0 P2 = X1·Y1 · (X1·X0·Y1·Y0)’ = X1·Y1·P3’ 制作:金燕华
P2 X1X0 X1X0 X1X0 00 01 11 10 00 01 11 10 00 01 11 10 Y1Y0 Y1Y0 Y1Y0 00 01 11 10 00 01 11 10 00 01 11 10 1 1 1 1 P0 P1 1 1 1 1 1 1 1 1 1 1 1 P3 = X1·X0·Y1·Y0 P2 = X1·Y1·P3’ P1 = X1·Y0·P3’+X0·Y1·P3’ P0 = X0·Y0 制作:金燕华
P3 = X1·X0·Y1·Y0 P2 = X1·Y1·P3’ P1 = X1·Y0·P3’+X0·Y1·P3’ P0 = X0·Y0 比较: 按多输出化简(蓝色) 按单个卡诺图化简(黑色) P3 = X1 ·X0 ·Y1 ·Y0 P2 = X1·X0·Y1 + X1·Y1·Y0’ P1 = X1·Y1’·Y0 + X1·X0’·Y0 +X0·Y1·Y0’+ X1’·X0·Y1 P0 = X0 ·Y0 考虑:用用译码器实现 —— 直接表示为标准和形式 制作:金燕华
输血者 受血者 00 00 A A 01 01 B B X1X0Y1Y0 F 10 10 0 00 0 0 0 0 1 0 01 0 0 01 1 0 10 0 1 0 1 0 0 AB AB 11 11 O O 人的血型有A、B、AB、O四种,输血者的血型与受血者的 血型必须符合下面的关系。 设计逻辑电路判断输血者与受血者的血型是否符合规定。 解:1、逻辑抽象,得真值表 用X1X0对应输血者的血型(00~11) 用Y1Y0对应受血者的血型(00~11) 输出F,1表示可以输血,0表示不行 2、用门电路实现 卡诺图化简 (略) 利用译码器 利用多路复用器 制作:金燕华
第5,6章 设计实践 • 常用的中规模集成电路(MSI) • 编码器、译码器、多路复用器、奇偶校验、 比较器、加法器、三态器件 • 掌握基本功能,级联的方法 • 综合应用:利用基本MSI器件作为基本单元设计更复杂的组合逻辑电路 • 文档标准和电路定时(了解) 制作:金燕华
D = X Y BI BO = X’·Y + X’·BI + Y·BI X0 Y0 X1 Y1 Xn Yn X Y CI CO S X Y CI CO S X Y CI CO S D0 D1 Dn 设计减法器 • 方法一:利用真值表化简 二进制减法表(P22表2-3) • 方法二:利用加法器设计减法器 (X-Y)相当于(X+Y补) 对Y求补:逐位求反+1 1 B_L 制作:金燕华