Download presentation
Presentation is loading. Please wait.
Published byUtami Yuwono Modified 6年之前
2
第三章 组合逻辑电路的分析与设计 逻辑电路设计文档标准 框图 门的符号标准 信号名和有效级 引端的有效级 引端有效级的变换 图面布局及总线 时间图 组合电路分析 穷举法 逻辑代数法 利用摩根定律分析 利用卡诺图 组合电路设计 根据逻辑问题的描述写出逻辑表达式 逻辑电路的变换 组合电路中的竞争与险象 竞争现象 险象 险象的判别 险象的消除 常用MSI组合逻辑器件及应用 译码器 编码器 三态缓冲器 多路选择器 奇偶校验电路 比较器 加法器
3
第三章 组合逻辑电路的分析与设计 Combinational Logic Circuit Analysis & Design
第三章 组合逻辑电路的分析与设计 Combinational Logic Circuit Analysis & Design 逻辑电路的分类:组合逻辑电路 Combinational Logic Circuit 时序逻辑电路 Sequential Logic Circuits 组合逻辑电路的特点:电路输出仅取决于当时的输入, 而与过去的输入情况无关。 时序逻辑电路的特点:电路输出不仅取决于当时的输入, 而且也与过去的输入情况有关, 即与过去的电路状态有关。
4
组合逻辑电路的模型 组合电路 ••• x1 xn f1 fm
5
3.1 逻辑电路设计文档标准 Documentation Standards
用结构化的思想完成一个复杂系统的分析与设计过程: 1. 整个复杂系统划分成若干子系统; 2. 每个子系统划分成较为简单、较为规范的电路单元; 3. 自顶向下地规划设计(Top-down Modular Design) , 从下而上的进行分析和设计(Bottom-up Process); 4. 建立一套标准化的逻辑电路描述文档。 计算机行业中的各类标准文档 电子逻辑布图及规格说明等——专门从事硬件设计与制造方面的工作(由行业标准协会提供,如:内存芯片标准化,IEEE,网络7层协议等) 系统软件协议等——专门从事软件平台设计与编制方面的工作 硬件维护手册、技术手册等——专门从事硬件维护与维修方面的工作(由制造商提供) 软件技术手册、用户参考等——专门从事软件维护与开发方面的工作 应用软件等文档——应用单位用户 (由 应用软件编制人员和用户提供) 作为规范化的技术“语言” ,逻辑电路设计文档标准在对数字系统的分析、设计和技术交流中都很重要。 一个电路系统的文档至少应包括如下五个方面。
6
子系统框图:将一个大系统的划分成几个子系统,由这几个子系统构成说明整个系统组成的总框图。按子系统再分别构成其框图。如上例图。
框图 (Block Diagram): ① 用方框、圆框等粗略表示系统的输入、输出、功能模块(或称子系统),各模块的功能用文字加以说明; 用带箭头连线表示模块之间主要信息通路、流向和控制信号。 1. 系统总框图: 表示一个完整的系统模块。 参见书P80图3.2。 子系统框图:将一个大系统的划分成几个子系统,由这几个子系统构成说明整个系统组成的总框图。按子系统再分别构成其框图。如上例图。
7
2. 逻辑图 (Logic Diagram) 将框图的粗略表示,具体地用文字说明器件类型。例如32位寄存器: 32位寄存器框图及逻辑图 32
4×74LS377 32 (b) 框图 32寄存器 32 (a) 框图 32位寄存器框图及逻辑图 32 8 (C)逻辑图 74LS377
8
3. 原理图 (Schematic Diagram)
在逻辑电路图(Logic Diagram)中,详细标明器件类型、端脚之间的连接、信号名等条件细节,再次细化逻辑电路图。 逻辑图参见书P79图3.1( c )。 原理图参见书P89图3.19。 4. 时间图 (Timing Diagram) 反映逻辑信号之间对应的时间关系,特别是要能反映出关键信号之间因果关系和传输延迟。 参见书P92图3.22和图3.23。
9
5. 结构化逻辑描述 (Structured Logic Description)
说明结构化逻辑器件的内部功能,如PLA、存储器芯片或者某些具有专门功能的中、大规模器件; 用逻辑等式、状态表(图)、功能表或程序表等形式说明。 6. 电路说明 (Circuit Description) 用文字简明叙述电路的使用方法; 解释内部的工作方法; 列出设计和操作中所有可能的潜在缺陷,以及在使用不当中隐含的问题。
10
3.1.2 门的符号标准 (Gate Symbols Standards)
⒈ 逻辑门的符号标准: 长方形符号:中国国标、IEC标准、IEEE标准 变形符号: IEEE标准 常用门的符号表示参见下页所示。
11
异或门 图3.3 常用逻辑门的两种表示形式 电路名称 原符号 变形符号 跟随器 非 门 与 门 或 门 与非门 或非门 与或非门 1 &
图3.3 常用逻辑门的两种表示形式 电路名称 原符号 变形符号 跟随器 非 门 与 门 或 门 与非门 或非门 与或非门 异或门 1 & ≥1 =1
12
⒉ 门的等效符号: 对上述常用门中输入信号进行有效级变换(变反),并按照DeMorgan定律得到的门的等效符号。
⒉ 门的等效符号: 对上述常用门中输入信号进行有效级变换(变反),并按照DeMorgan定律得到的门的等效符号。 实际上,等效变换即为小圆圈(表示反相器)在门的符号上的出现和移动。如下图 1 ≥1 & ≥1 1 & & 逻辑门的等效符号参见下页所示。
13
逻辑门的等效符号 电路名称 原符号 等效符号 跟随器 非 门 与 门 或 门 与非门 或非门 1 1 1 1 & & & & ≥1 ≥1
非 门 与 门 或 门 与非门 或非门 1 1 1 1 & ≥1 ≥1 & & ≥1 ≥1 &
14
3.1.3 信号名和有效级 (Signal Names and Active Levels)
⒈ 信号命名: 为了电路分析,对电路的各个输入、输出信号进行规范化命名,即取名最好源自信号的名称或者是它的缩写。如: 数据信号Datai (Di); 地址信号Addri (Ai); 控制信号Conti (Ci)、Reset、Set、 … ; 检测信号Ready、Error、 …、 等待信号Wait、…; 片选信号CS;使能信号EN; …。 参见书P91图3.21。
15
⒉ 信号的有效级 (Active levels for Signals)
⑴ 控制信号、测试信号等: 此类信号都有一个与之对应的有效级。 当信号处在其有效级时,逻辑电路才能正确地执行其功能。 ⑵ 在正逻辑中,高电平与逻辑“1”等效, 低电平与逻辑“0”等效。 (参见书第二章P27图2.2) ⑶ 有效级分高有效或低有效。 高有效:信号为高电平或为逻辑“1”时为有效; 低有效:信号为低电平或为逻辑“0”时为有效;
16
⑷ 有效级的约定(即表示法): 低电平有效 高电平有效 ACK- ERROR.L ACS(L) CS* /EN RESET# ACK+
用一些符号作为信号名的前缀或后缀,这些符号反映了信号的有效性,如下表所示。 低电平有效 高电平有效 ACK- ERROR.L ACS(L) CS* /EN RESET# ACK+ ERROR.H ACS(H) CS EN RESET 本书采用表中“EN(高有效)、/EN(低有效)”的这一组表示法。
17
⑸ 信号名 不能采用反变量符号, 不能采用逻辑表达式。 如下图中,RDY (准备好) 为 测试信号, /EN (使能) 为 控制信号,
F 逻辑电路
18
⑹ 例:设计一个逻辑。 使得加电(高有效信号)时产生一个低有效输出,系统不复位(低有效信号),内部锁InTerLock关闭(低有效信号),给出一个运行信号(低有效信号) ,数据已准备好(高有效信号)。 确定信号名: 输入变量 加电= PWR,复位= /RST,内部锁= /ITL, 运行= /RUN,数据准备好= READY 输出变量 输出= /OUT READY /OUT & /RUN PWR /ITL /RST
19
3.1.4 引端的有效级(Active levels for pins)
本书采用的是“逻辑非符号体制”。 另一种是“极性符号体制” (略)。 引端的有效级: 是指电路的输入、输出上的物理量 与电路的内部逻辑状态的对应关系。 对应关系:指选用器件的引端的有效级 与所给信号的有效级相匹配。
20
逻辑非符号体制 在本体制下存在两级对应关系: ⑴ 电路的外部逻辑状态与内部逻辑状态的对应关系。
例:所示框图中 a、b、c、d为外部逻辑状态; ENABLE、DO、RDY、SID为内部逻辑状态。 & ≥1 ENABLE … a DO RDY SID b c d 器件框图上不带逻辑非符号(小圆圈) 器件框图上带逻辑非符号 a … b c d ≥1 & ENABLE DO RDY SID
21
例:如图所示 ① 器件框图上不带逻辑非符号(即小圆圈)的输入 a 与 X、输出 c 与 Z 的关系:若 Z = f(X),则 c = f(a) a c X Z a X 1 Z c 1 ② 器件框图上带逻辑非符号的输入a 与 X、输出 c 与Z 的关系:若 Z = f(X),则 c = Z = f(X) = f ( a ) a c X Z a X 1 Z c 1
22
正逻辑约定 ⑵ 电路的输入、输出信号的物理量 与电路的外部逻辑状态的对应关系, 用正逻辑或负逻辑加以约定。
如下图所示: Z = XY c = Z = XY = a b 逻辑电平对应关系:H (高电平) —— “1”(外部逻辑状态) L (低电平) —— “0”(外部逻辑状态) X Y Z 0 0 0 1 1 0 1 1 1 a b c 0 0 0 1 1 0 1 1 1 a b c L L L H H L H H H L & X Y Z a b c
23
负逻辑约定 如下图所示:Z = X+Y c = Z = X +Y = a + b
逻辑电平对应关系:H (高电平) —— “0”(外部逻辑状态) L (低电平) —— “1”(外部逻辑状态) X Y Z 0 0 0 1 1 0 1 1 1 a b c 0 0 0 1 1 0 1 1 1 a b c H H H L L H L L L H ≥1 X Y Z a b c 注:本书采用逻辑非符号体制的正逻辑约定。
24
3.1.5 引端有效级的变换 (Bubble-to-bubble Logic design)
目的:使逻辑电路的功能一目了然 结果:使所选用器件引端的有效级 与 所给的信号有效级 相匹配 方法:对器件引端的有效级进行变换。 例:下面两组的各四种分别表示四个完成同一逻辑功能的器件: 四种 “或” 功能 “与” ≥1 或门(7432) ≥1 或非门(7402) ≥1 与非门(7400) ≥1 与门(7408) & 与门(7408) & 与非门(7400) & 或非门(7402) & 或门(7432)
25
1. 引端有效级的变换,包括: ① 输入引端的变换:或为高有效、或为低有效, ② 输出引端的变换:分别为高有效、或低有效。
1. 引端有效级的变换,包括: ① 输入引端的变换:或为高有效、或为低有效, ② 输出引端的变换:分别为高有效、或低有效。 例 如下图 Busy = REY·REQ 对应了四种电路。 & REY REQ BUSY 高有效输入、高有效输出 & REY REQ /BUSY 高有效输入、低有效输出 & /REY /REQ BUSY 低有效输入、高有效输出 & /REY /REQ /BUSY 低有效输入、低有效输出
26
2. 引端有效级的变换规则 (Bubble-to-bubble Logic Design Rules)
规则1: 任何输入或输出端加上或删去逻辑非符号 (即小圆圈),且其对应的信号有效级变反,则逻辑图的功能不变。 & A /B F & /A /B F & /A B /F
27
规则2: 逻辑图内部连线的两端,同时加上或删去逻辑非符号,则逻辑图的功能不变。 ≥1 & A B C D F ≥1 & A B C D F
28
规则3: 单个逻辑非符号在内部连线两端移动时逻辑图的功能不变。 & ≥1 A B C D F & ≥1 A B C D F
29
规则4: 若一个门的输入输出端同时加上或删去逻辑非符号,或输入、输出信号有效级同时取反,且门的符号“与”、 “或”互变时,则得到的新的逻辑图的功能不变。 ≥1 A B F & A B F ≥1 /A /B /F
30
变换的最终目标 变换后的结果应满足下列规定 ⑴ 器件的 输出信号有效级 应 与 对应的 输出引端的有效级 一致。
⑴ 器件的 输出信号有效级 应 与 对应的 输出引端的有效级 一致。 即输出端有逻辑非符号,输出信号为低有效,否则为高有效。 如前面四个变换规则所示: 若与门的输出端无逻辑非符号,则F为高有效; 与门的输出端有逻辑非符号,则/F为低有效。
31
⑵ 当 输入信号有效级 与其 对应的 输入端有效级 一致时,
⑵ 当 输入信号有效级 与其 对应的 输入端有效级 一致时, 当该信号有效时,则器件内部逻辑功能有效。 即 输入端有逻辑非符号,输入信号为低有效, 否则 输入端没有逻辑非符号,输入信号为高有效。 如:下图所示: 选择输入信号SEL连接到与非门①的输入端(无逻辑非符号),则选择DATA=A时的SEL是高有效; SEL还连接到非门②的输入端(有逻辑非符号),则选择DATA= B时的SEL是低有效。 DATA SEL BSEL A B & 1 ① ② ≥1 ASEL 即输出数据信号DATA如下: { DATA = A 当SEL = 1 B 当SEL = 0
32
则 当该信号无效时,则器件内部逻辑功能才有效。这是应尽量避免出现的情况。
⑶ 若 输入信号有效级 与其 对应的 输入端有效级 不一致时, 则 当该信号无效时,则器件内部逻辑功能才有效。这是应尽量避免出现的情况。 例 下图中选择信号SEL的有效性不明确。 SEL BSEL A B & 1 ① ② ASEL DATA ≥1
33
3.1.6 图面布局及总线 (Drawing Layout and Buses)
在逻辑图及原理图中,规定: 信息流:默认从左至右,或者从上到下,若不能保证则使用箭头提示信息流方向,有单向和双向之分。 A B A B 逻辑器件:输入端画在左边,输出端画在右边。 图中应注明所用集成电路的型号、连线的引端号、电 路在整个原理图中的编号以及输入、输出信号名等。
34
需要分页画出的原理图要合理地划分出每页的模块,既要完整又要使页与页之间的连线尽可能地少,并清楚地标注出它们之间的连接关系。
信息线的交叉点:手工作图时用圆点表示,CAD作图 时用T型。参见书P89图3.18所示。 手工画 机器画 (a) 交叉 (b) 连接 (c) 连接 不允许
35
总线的表示法: 单向总线符号 双向总线符号 2 总线的接点 没有连接的交叉 (a)双线表示总线 (b)单线表示总线
36
3.1.7 时间图 参见书92图3.22和图3.23。
37
3.2 组合电路分析 Combinational Logic Circuit Analysis
电路分析的目的: 根据给定电路,分析该电路输出与输入之间的逻辑关系,得出电路的逻辑功能的描述,进而评估此电路的性能,还可进一步改进电路。 分析的一般步骤:如下图所示: 逻辑 电路图 写出逻辑 表达式 列出 真值表 分析逻辑 功能 改进 电路 用卡诺图 化简 表达式
38
3.2.1 穷举法 穷举法的结果是真值表。 即:列出n个输入变量的所有2n个输入组合,并根据每一个输入组合决定所有门的输出,逐级推出电路的输出,得到真值表。 例:分析如图3输入——1输出的逻辑电路。 x y z F 1 F & ≥1 x 1 y z
39
3.2.2 逻辑代数法 F =(x+y) z + (xyz) F = xz + yz + xyz 与或式
根据电路逐级写出各门的输出表达式,直至写出整个电路的输出逻辑表达式。如下图: F =(x+y) z + (xyz) 根据布尔代数进行表达式变换,如下: F = xz + yz + xyz 与或式 = (x + z)(y + z) ( x + y + z) 或与式 = (xz)(yz)(xyz) 与非—与非式 F & ≥1 x 1 y z 上述表达式对应不同结构的逻辑电路。参见书P95图3.25。
40
3.2.3 利用摩根定律分析 F = (AB C) + (A+B+C) + (A+D) = (A+B) C (A+B+C)(A+D)
若电路采用与非门和或非门实现,函数表达式需要反复应用摩根定律简化: F = (AB C) + (A+B+C) + (A+D) = (A+B) C (A+B+C)(A+D) = (( A+B ) C) ( A+B+C )(A+D) = (A+B) C (A+D) 对应不同结构的逻辑电路,参见书P96图3.26、 P97图3.27 。
41
3.2.4 利用卡诺图化简函数,通过函数表达式或真值表分析其逻辑功能。
利用卡诺图化简函数,通过函数表达式或真值表分析其逻辑功能。 例1:分析如图逻辑电路。 F & ≥1 A ⊕ C B P1 P2 P3 P4 P5 P6 P1 = AC P2 = A + B P3 = B + C P4 = A ⊕C P5 = P1 P2 = AC A+B = A + B P6 = P3 + P4 = B + C + A ⊕C = A B C F = P5 P6 = (A + B) A B C = = 1 这是一个输出恒为 1 的逻辑电路。
42
F = AB BC CA = AB + BC + CA 例2:分析如图逻辑电路。 写出最简表达式:
& A B C F 例2:分析如图逻辑电路。 写出最简表达式: F = AB BC CA = AB + BC + CA 从表达式直接看不出明确的逻辑关系,再通过真值表来分析: A B C F 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 从真值表可以得出: 这是一个三变量非一致电路。
43
A8 = B8 + B4 + B2 = B8 B4 B2 A4 = B4 ⊕ B2 = B4B2 + B4B2 A2 = B2
通过真值表来分析: 例3:分析如图逻辑电路。 B8 B4 B2 B1 A8 A4 A2 A1 写出最简表达式: A8 = B8 + B4 + B2 = B8 B4 B2 A4 = B4 ⊕ B2 = B4B2 + B4B2 A2 = B2 A1 = B1 =1 B8 1 B4 B2 B1 A8 A4 A2 A1 ≥1 这是一个BCD码对9变补器。
44
y0 = x0 y1 = x1⊕x0 y2 = x2⊕(x1+ y1) = x2⊕(x1+ x1⊕ x0) = x2⊕(x1+ x0)
例4:分析如图逻辑电路。 =1 x3(MSB) x2 x1 x0(LSB) y3 y2 y1 y0 ≥1 1. 写出最简表达式: y0 = x0 y1 = x1⊕x0 y2 = x2⊕(x1+ y1) = x2⊕(x1+ x1⊕ x0) = x2⊕(x1+ x0) y3 = x3⊕(x2+ y2) = x3⊕(x2+ x2⊕(x1+ x0)) = x3⊕(x2+ x1+ x0)
45
x3x2x1x0 y3y2y1y0 y0 = x0 y1 = x1⊕x0 y2 = x2⊕(x1+ x0)
2. 函数最简表达式: 3. 通过真值表来分析: x3x2x1x0 y3y2y1y0 y0 = x0 y1 = x1⊕x0 y2 = x2⊕(x1+ x0) y3 = x3⊕(x2+ x1+ x0) 1 1 1 1 结论: 这是一个二进制变补器,也称16变补器。
46
3.3 组合电路设计 Combinational Logic Circuit Design
目的:根据要实现的逻辑功能,利用逻辑代数方法实现逻辑电路分析的一般步骤,如下图所示: 分析设计要求 确定输入输出变量;逻辑关系;有无无关项d 列出真值表 填入卡诺图进行化简 由卡诺图得到最简与或式 写出最简逻辑表达式 根据所选用门的类型 表达式变换 画出电路逻辑图 要求:电路用最少的逻辑门(集成块)、最少的输入端数。
47
3.3.1 根据逻辑问题的描述写出逻辑表达式 一、逻辑问题描述—真值表—逻辑表达式 1. 半加器 Half-Adder
例 设计一个二进制一位全加器。 1. 半加器 Half-Adder 输入变量:加数A、B Sh = AB + AB = A⊕B 输出函数:和 Sh、进位Ch = AAB BAB Ch = AB = AB A B Sh A B Sh Ch 0 0 0 1 1 0 1 1 1 & A B Sh Ch A B Ch 1
48
2. 全加器Full-Adder Si = Ai⊕Bi ⊕Ci-1
输出函数:本位和 Si、本位向高位的进位Ci Ai Bi Ci-1 Si Ci 0 0 1 0 0 1 1 1 AiBi Ci-1 Si Ci AiBi Ci-1 1 1 Si = Ai⊕Bi ⊕Ci-1 = AiBi Ci-1 + AiBiCi-1 + AiBiCi-1 + AiBi Ci-1 Ci = AiBi + Ai Ci-1 + Bi Ci-1 二级与或电路参见书P98图3.28( c )。
49
2. 全加器Full-Adder Si = Ai⊕Bi ⊕Ci-1 Ci = AiBi + Ai Ci-1 + Bi Ci-1
用异或门和与、或门构成电路: Si = Ai⊕Bi ⊕Ci-1 Ci = AiBi + Ai Ci-1 + Bi Ci-1 Ai Bi Ci-1 Ci Si =1 & ≥1
50
2. 全加器Full-Adder Ci = AiBi + Ai Ci-1 + Bi Ci-1 Si = m1 + m2 + m4 + m7
用“与或非”门实现全加器 1 Ci = AiBi + Ai Ci-1 + Bi Ci-1 Ci AiBi Ci-1 Si = m1 + m2 + m4 + m7 1 m1 = Ci-1 • Ci m2 = Bi • Ci 禁止法 Ci AiBi Ci-1 m4 = Ai • Ci 1 m7 = Ai • Bi • Ci-1 故 Si = Ci-1 • Ci + Bi • Ci + Ai • Ci + Ai • Bi • Ci-1 = Ci • ( Ci-1 + Bi + Ai ) + Ai • Bi • Ci-1
51
2. 全加器Full-Adder Ci = AiBi + Ai Ci-1 + Bi Ci-1
用“与或非”门实现全加器 Si = Ci • ( Ci-1 + Bi + Ai ) + Ai • Bi • Ci-1 A i B i C i-1 ≥1 & Si Ci 全加器 Ai Bi Ci-1 Si Ci
52
二、逻辑问题描述—简化真值表—逻辑表达式
5. 比较器 Comparators 输入变量:两个正整数 x = x2x1 , y = y2y1 输出函数:三个比较结果F1(x > y),F2(x < y),F3(x = y) x2 y2 x1 y1 F1 F2 F3 1 0 d d 0 1 0 0 1 1 ① 根据先比较高位后比较低位的原则,列出使函数为1的简化真值表:
53
F3 = x2y2x1y1 + x2y2x1y1 + x2y2x1y1 + x2y2x1y1
②由简化真值表直接写出逻辑表达式: x2 y2 x1 y1 F1 F2 F3 1 0 d d 0 1 0 0 1 1 比较电路 x2 x1 y2 F1 F2 y1 F3 F1 = x2y2 + x2y2x1y1 + x2y2x1y1 F2 = x2y2 + x2y2x1y1 + x2y2x1y1 F3 = x2y2x1y1 + x2y2x1y1 + x2y2x1y1 + x2y2x1y1 逻辑电路图参见书P98图3.28(c)。
54
三、逻辑问题描述——逻辑表达式 ALARM = PANIC + ENABLE • EXITING • SECURE
6. 由逻辑问题描述直接写出逻辑表达式。 例 设计一个房间报警电路。如果 ① 意外事件发生输入PANIC为1; ② 使能输入ENABLE为1、出口标志输入EXITING为0、 房间没有加密(SECURE); 则 报警输出ALARM为1。 如果 窗(WINDOW)、门(DOOR)及车库(GARAGE)都是1 则 房间加密(SECURE)。 ALARM = PANIC + ENABLE • EXITING • SECURE SECURE = WINDOW • DOOR • GARAGE ALARM = PANIC + ENABLE • EXITING • (WINDOW • DOOR • GARAGE)
55
报警电路逻辑图 PANIC ENABLE EXTING WINDOW DOOR GARAGE SECURE ALARM 1 & ≥1
56
思考题:设计一个两位二进制数乘法器。 x2x1 y2y1 z4z3z2z1 分析:输入变量 X = x2x1 Y = y2y1 x2x1
输出变量 Z = z4z3z2z1 x2x1 y2y1 z4z3z2z1 x2x1 z4 y2y1 1 1 z3 1 1 z2 z1
57
思考题:设计一个两位二进制数乘法器。 z4 = x2x1 y2y1 z3 = x2x1y2 + x2y2y1
分析:输入变量 X = x2x1 Y = y2y1 输出变量 Z = z4z3z2z1 x2x1 z4 y2y1 1 1 z4 = x2x1 y2y1 z3 = x2x1y2 + x2y2y1 z2 = x2x1y1 + x2y2y1 + x2x1y2 + x1y2y1 z1 = x1y1 输出函数: z3 1 1 z2 z1
58
思考题:开关控制电路 分析:输入变量K1、 K2、 K3、 K4、 K5、 K6、和 K7
某一集体宿舍,共住有7人,公用一套照明设施,每人床头都有一个控制开关,要求每按动开关一下,就改变一次灯的状态(即亮→灭、灭→亮)。试设计出此灯控开关电路。 分析:输入变量K1、 K2、 K3、 K4、 K5、 K6、和 K7 输出变量 F 设开关初态F = 0 当K1 K2 K3 K4 K5 K6K6 均为 0 可以从四变量输入分析入手,找出生成输出函数的特征和规律。
59
思考题: 码制转换电路 输入为2421码ABCD 输出为余3码Y3Y2Y1Y0 分析 列出真值表: 十进制数 A B C D
分析 列出真值表: 十进制数 A B C D Y3Y2Y1Y0 1 2 3 4 5 6 7 8 9 d
60
AB CD Y3 AB CD Y2 A B C D Y3Y2Y1Y0 d A B C D Y3Y2Y1Y0 d A B C D Y3Y2Y1Y0 d A B C D Y3Y2Y1Y0 d A B C D Y3Y2Y1Y0 d d 1 d d 1 d AB CD Y1 AB CD Y0 1 d d d 1 d
61
Y3 = A Y2 = AB + AC + AD + BCD Y1 = A⊕C⊕D Y0 = D AB CD Y3 AB CD Y2 AB
62
3.3.2 逻辑电路的变换 transform of Logic Circuit
一、“与—或”电路变换为“与非—与非”电路 例 F = A + BC + DEH + G = A + BC + DEH + G (原函数二次求反) = A BC DEH G (运用反演规则) = A BC DEH G
63
F = A + BC + DEH + G = A BC DEH G 对应的二个不同的电路如下: A 1 & B C D E H G F A
≥1 B C D E H G F A & ≥1 B C D E H G F 1
64
二、“或—与”电路变换为“或非—或非”电路
例 F = (A + B)(C + D)(E + H + G) = (A + B)(C + D)(E + H + G) (原函数二次求反) = (A + B)+(C + D)+(E + H + G) (运用反演规则) = (A + B) • (C + D) • (E + H + G) (运用反演规则) A ≥1 B C D E H F & G A ≥1 B C D E H F G &
65
三、“与—或”电路变换为“与或非”电路 例 F = AC + AB (图a) = AC + AB (原函数二次求反) (图b)
1 ≥1 & ( c ) F = AC + AB (运用反演规则) = (A + C)(A + B) = AB + AC F = AB + AC (图c) A B C F ≥1 & 1 (a) A B C F ≥1 & 1 (b)
66
四、减少集成块的数量 Reduce the Numbers of IC
目前采用的小规模门电路SSI是把几个相同的门封装在同一个集成块中,在逻辑电路中使用的SSI的数目越少,则电路的印刷电路扳的面积、功耗、总成本越小,而可靠性越高。 所以,减少SSI的数目是化简的最终目标。 在实际统计中,对SSI的计算与分立元件的计算不一样。例: F1 = x2y2 + x2y2x1y1 + x2y2x1y1 F2 = x2y2 + x2y2x1y1 + x2y2x1y1 F3 = x2y2x1y1 + x2y2x1y1 + x2y2x1y1 + x2y2x1y1 分立元件:非(×4) 2与(×2)4与(×8)3或(×2)4或(×1) SSI 器件:4与非(×9):74LS20—4输入双与非门(×5) 3与非(×2):74LS10—3输入三与非门(×1) 2与非(×2):用上面74LS20或10剩余的一个与非门
67
3.4 组合电路中的竞争与险象 Timing Races and Hazards
在实际电路中,信号的变化不是即时的,有一定的边沿时间,信号在电路中传送必定有导线上的传播时延,信号通过门电路也必定有时间延迟(模拟特性)。 例 信号边沿及门的时延产生的尖峰脉冲 A F td 1 ≥1 A 与A信号的边沿时间使 F中产生幅度较小、宽度较窄的负尖峰脉冲 再考虑门的传播延迟时间 td 越大,则F 中出现的脉冲将越宽
68
3.4.1 竞争现象 时延td(Delays) 例 出现竞争的电路图和时间图
竞争现象 同一信号或同时变化的某些信号,经过不同路径到达某一点时有时差,这种现象称为竞争。 险象一定是竞争的结果。对于有错误输出的竞争称之为临界竞争,对于未产生错误输出的竞争称之为非临界竞争。 例 出现竞争的电路图和时间图
69
F = AC + BC 且 A = B = 1(仅考虑信号C的影响)
例 F = AC + BC 且 A = B = 1(仅考虑信号C的影响) A B C AC BC F & 1 ≥1
70
3.4.2 险象 Hazard 一、静态险象( Static Hazards )
由于临界竞争的存在,在输出端得到稳定输出之前,输出中有一短暂的错误输出(干扰),这种现象称之为险象。通常将险象分为静态险象和动态险象两种类型。 一、静态险象( Static Hazards ) 在输入信号变化时,按逻辑表达式的输出不应有变化的情况下,实际上会在输出端产生一个“1”或“0”的窄脉冲的情况,则称之为静态险象。它可进一步分为: ⑴ 功能险象 ⑵ 逻辑险象
71
⒈ 功能险象 例 如图所示 F = AC + BC, 设 A=1 当 BC :00 →11 时,F应当恒为1 产生的条件:
⒈ 功能险象 产生的条件: ① 有K(K >1)个信号同时发生变化; ② 变化的K个变量组合所对应的2k个mi中必定既有1,又有0; ③ 输入变量变化前后的稳态输出相同。 ≥1 F 例 如图所示 F = AC + BC, 设 A=1 当 BC :00 →11 时,F应当恒为1 情况一:ABC:100 →110 →111 则 F: 1 →1 →1 无险象 情况二:ABC:100 →101 →111 则 F: 1 →0 →1 有险象 A AC & 1 C C 1 1 & B BC
72
⒈ 功能险象 例 如图所示 F = AC + BC, 设 A=1 当 BC :00 →11 时,F应当恒为1 产生的条件:
⒈ 功能险象 产生的条件: ① 有K(K >1)个信号同时发生变化; ② 变化的K个变量组合所对应的2k个mi中必定既有1,又有0; ③ 输入变量变化前后的稳态输出相同。 例 如图所示 F = AC + BC, 设 A=1 当 BC :00 →11 时,F应当恒为1 情况一:ABC:100 →110 →111 则 F: 1 →1 →1 无险象 功能险象是逻辑函数所固有的,它无法用改变设计的方法消除,只能通过控制输入信号的变化次序来避免。 情况二:ABC:100 →101 →111 则 F: 1 →0 →1 有险象 1 1
73
⒉ 逻辑险象 产生的条件: 例 如图所示 F = AC+BC, 当 A = B = 1,F = C + C ≡1。
⒉ 逻辑险象 产生的条件: ① 仅有一个输入信号发生变化; ② 输入变量变化前后的稳态输出相同。 例 如图所示 F = AC+BC, 当 A = B = 1,F = C + C ≡1。 A B C AC BC F & 1 ≥1 实际上,当 C: 1 → 0 时 F 产生险象。
74
总之,静态险象的产生是: 由于同一个输入信号经过不同的路径又会合到同一个门上的竞争所引起的。
在电路中,若输入信号变化前后,稳态的输出均为1,且在1的输出上出现一个负向窄脉冲,则该险象称为静态 1 险象,如前例所示 ; 反之若稳态输出为0,且在0的输出上出现一个正向窄脉冲,则该险象称为静态 0 险象,如下例所示。
75
如图所示 F = (A + B + C) (C + D) (B + D) 当 A = B = D = 0 时, 则 F = C·C ≡ 0
例 具有静态 0 险象的电路及时间图 如图所示 F = (A + B + C) (C + D) (B + D) 当 A = B = D = 0 时, 则 F = C·C ≡ 0 实际上,当 C :0 → 1 时,F 产生静态 0 险象。 A B D C P1 P2 F P3 1 ≥1 &
76
二、动态险象 ( Ddynamic Hazards )
在多级组合逻辑电路中,若输入的变化通过多条路径向输出端会合时,使在输出稳定之前输出变化三次,其间经过暂时状态01或者10,这种险象称之为动态险象。 输入变化的第一次会合只可能产生静态险象,只有在产生了静态险象,输入变化的再一次会合,才有可能产生动态险象。 动态险象是由静态险象引起的,它也是竞争的结果。 消除了静态险象,则动态险象也不会出现。
77
例 F = (A+B) (B+C) + B 当 A = C = 0 时 F = BB + B
P1 P2 P3 F 1 ≥1 &
78
3.4.3 险象的判别 Finding Static Hazards
一、卡诺图判别法 Using Maps 用卡诺图可以判别出两级与或电路和或与电路是否存在静态险象。 ⒈ 静态 1 险象判别 在两级与或电路或两级“与非—与非”电路中只可能出现静态 1 险象。 在卡诺图中,与或式中的每个与项对应于圈1的一个卡诺圈,如果两个卡诺圈存在着部分相切,而这个相切的部分又没有被另外的卡诺圈所包含,则该电路必然存在静态 1 险象。
79
例 静态 1 险象的判别与消除电路 F = AC + BC 当 A = B = 1 时
例 静态 1 险象的判别与消除电路 F = AC + BC 当 A = B = 1 时 C F A B AC BC & 1 ≥1 AB C 两圈相切于在变量C的交替面,当C由1→0时,BC先由1 →0而AC尚未由0 →1,使F产生一个负向脉冲 1
80
例 静态 1 险象的判别与消除电路 F = AC + BC 当 A = B = 1 时 F = AC + BC + AB F F
例 静态 1 险象的判别与消除电路 F = AC + BC 当 A = B = 1 时 C F A B AC BC & 1 ≥1 C F A B AC AB & 1 ≥1 BC AB C 增加与项AB,当AB=11时, 无论 C 如何变化,使输出F 总是1,从而消除了险象。 1 F = AC + BC + AB
81
⒉ 静态 0 险象判别 在两级或与电路或两级“或非—或非”电路中只可能出现静态 0 险象。
⒉ 静态 0 险象判别 在两级或与电路或两级“或非—或非”电路中只可能出现静态 0 险象。 在卡诺图中,按照圈0单元的卡诺圈是否存在着部分相切,而这个相切的部分又没有被另外的卡诺圈所包含,则该电路必然存在静态 0 险象。 例 如图所示电路 F = (A+B+C) (C+D) (B+D)
82
F = (A+B+C) (C+D) (B+D) 静态 0 险象的判别与消除电路
P1 D P2 P3 F & ≥1 1 两圈相切于在变量D的交替面 两圈相切于在变量C的交替面 两圈相切于在变量B的交替面 有三处相切,对应着三个静态0险象;分别增加三个卡诺圈,使输出F总是0,从而消除险象。 F = (A+B+C) (C+D) (B+D) (A+B+D) (A+C+D) (B+C)
83
二、逻辑表达式判别法 如果电路中存在出现险象的可能性,其逻辑表达式有如下特点:
⑴ 当某一变量同时以原变量和反变量的形式出现在逻辑表达式中,则该变量就具备了竞争的条件。 ⑵ 保留被研究变量,消去其他变量(其他变量取某些定 值,这些定值是被研究变量产生竞争的条件)。 ⑶ 若得到的表达式为下列形式之一,则有险象存在:
84
有险象存在的表达式形式 F = A + A —— 静态 1 险象(如A从1→0) F = A · A —— 静态 0 险象(如A从0→1)
—— 动态险象 例1 F = AC + BC 式中变量 C 具备竞争条件 当 AB = 11时,C从 1→0 ,产生静态 1 险象 例2 F = AC + BC + AB 式中变量 C 具备竞争条件 但当 AB = 11时,F≡ 1,不存在险象
85
3.4.4 险象的消除 Designing Hazard-free circuit
消除险象的方法主要有: 一、增加多余项(与项)或乘以多余因子(或项)消除 逻辑险象 AB CD 例 F = ACD + BC + BD 1 将相切的部分均用多余的卡诺圈包含起来,则可消除静态 1 险象,得到: F = ACD + BC + BD + ABD + ABC + CD
86
二、在输出端连接低通环节以减弱干扰 用低通滤波电路滤掉窄脉冲干扰,但将使输出变化的上升、下级沿增大,降低工作速度也使信号质量变坏。 V1
R C
87
三、利用取样脉冲避开险象 改电平控制为脉冲控制。 这是在特定的电路系统中采用的方法。在一般的组合电路中慎用。 B P1 P2 F A B C
SP & B SP P1 P2 H F 改电平控制为脉冲控制。 这是在特定的电路系统中采用的方法。在一般的组合电路中慎用。
88
3.5 常用MSI组合逻辑器件及应用 3.5.1 译码器 Decoders 译码器的一般结构如图所示:
一般译码器输入端数n 总是小于输出端数m; 输入编码为n位二进制编码; 一个n位字表示 2n 个不同的编码值,通常为:0~( 2n -1)。有时编码值可以少于 2n 个。 输入 编码字 使能 输出 译码器 映射
89
一、二进制译码器原理 Binary Decoder Circuit Structures
最常用的译码器是二进制译码器。又称为n- 2n译码器。 其中:输入编码为n位二进制数; 输出编码为2n取1码。 换句话说,译码器输出为2n个最小项 (最小项发生器)。
90
例 2-4 译码器 真值表 输入代码字:I1 、I0 输入使能:EN 输出代码字:Y3 Y2 Y1 Y0 功能描述:当 EN = 1
例 译码器 真值表 输 入 输 出 EN I1 I0 Y3 Y2 Y1 Y0 0 d d 输入代码字:I1 、I0 输入使能:EN 输出代码字:Y3 Y2 Y1 Y0 功能描述:当 EN = 1 且输入代码字是i的二进制表示, 则输出Yi (i为十进制数)位为1, 其他位均为0。 逻辑图 I0 I1 Y1 Y0 Y2 Y3 EN & 1 Y0 Y1 Y2 Y3 I0 I1 EN 2-4 译码器 逻辑框图
91
二、MSI译码器 1.双2-4译码器74LS139 输 入 输 出 /G B A /Y3 /Y2 /Y1 /Y0 1 d d 0 0 0
输 入 输 出 /G B A /Y3 /Y2 /Y1 /Y0 1 d d /1Y0 /1Y1 /1Y2 /1Y3 /1G 1A 1B 1 & 74LS139 1G 2G 1A 1B 2B 2A 1Y2 1Y0 2Y0 2Y1 2Y2 2Y3 1Y1 1Y3 1 2 3 15 14 13 4 5 6 7 9 12 11 10
92
2. 3-8 译码器74LS138 74LS138真值表 输 入 输 出 G1 /G2A /G2B C B A
输 入 输 出 G1 /G2A /G2B C B A /Y7 /Y6 /Y5 /Y4 /Y3 /Y2 /Y1 /Y0 d d d d d d d d d d d d d d d
93
/Y0 /Y1 74LS138 /Y2 /Y3 /Y4 /Y5 A /Y6 B /Y7 C G1 /G2A /G2B & G1 Y0 G2A
15 14 13 12 7 11 10 Y4 Y5 Y6 Y7 9 B C G2A G2B
94
译码器74LS138的使用要点 74LS138的输出信号为低有效,它有三个使能端输入端(G1、/G2A、/G2B),只有在三个使能输入全部有效时,才能有正确的有效输出。 74LS138的内部功能可用逻辑表达式描述如下: Yi = G1 ∙ G2A ∙ G2B ∙ mi 其中,Yi为内部输出编码字的第i位, mi为输入变量C、B、A的最小项。 74LS138 G1 A 6 4 5 1 2 3 Y2 Y0 Y1 Y3 15 14 13 12 7 11 10 Y4 Y5 Y6 Y7 9 B C G2A G2B 74LS138 外部信号之间的关系为: / Yi = G1 ∙ /G2A ∙ /G2B ∙ mi
95
3. BCD译码器74LS49 (Severn-segment Decoders)
74LS49是常用的一种BCD码MSI器件,它的 输入编码为4位的BCD码,输出为7位编码字。 C d e a b f g 七段显示器件结构
96
74LS49 真值表 输 入 输 出 /BI D C B A a b c d e f g 0 d d d d 0 0 0 0 0 0 0
输 入 输 出 /BI D C B A a b c d e f g d d d d 74LS49 真值表 C d e a b f g
97
⒈ 74LS49七段译码器的逻辑图 参见书P118图3.51。 ⒉ 逻辑符号 74LS49 a b c d e f g BI A B C D
⒉ 逻辑符号 74LS49 A 3 5 1 2 b a c 10 9 12 8 6 d e f g 13 B C BI 4 11 D
98
设计BCD七段数码显示译码器 真值表如下所示: 输入信号:BCD码DCBA 输出信号:控制数码管发光的信号 a、b、c、d、e、f、g d
99
输 入 输 出 /BI D C B A a b c d e f g 0 d d d d 0 0 0 0 0 0 0 0 1 0 0 0 0
输 入 输 出 /BI D C B A a b c d e f g d d d d d d d d d d d C d e a b f g
100
由真值表填出卡诺图 输 入 输 出 D C B A a b c d e f g 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1
输 出 D C B A a b c d e f g d d d d d d d 1 d 1 d 1 d a c b 1 d 1 d 1 d d e f C d e a b f g 1 d g
101
反函数的最小覆盖(为得到与电路对应的“或与”式)
DC BA 1 d 1 d 1 d a b c 1 d 1 d 1 d 1 d d e f g
102
a = (C + A)( D + C + B + A) (D + B)
由卡诺图写出表达式,如下: DC BA 1 d 1 d 1 d a b c a = CA + DCBA + DB a = (C + A)( D + C + B + A) (D + B) b = CBA + CBA + DB b = (C + B + A)(C + B + A) (D + B) c = CBA + DC c = C + B + A)(D + C)
103
d = (C + B + A)(C + B + A) (C + B + A)
由卡诺图写出表达式,如下: DC BA 1 d 1 d 1 d 1 d d e f g d = CBA + CBA + CBA d = (C + B + A)(C + B + A) (C + B + A) e = A + CB e = A( C + B) g = CBA + DCB g = (C + B + A)(D + C + B) f = BA + CB + DCA f = (B + A)(C + B)(D + C + A)
104
三 、二进制译码器的级联 Cascading Binary Decoders
例 用两个 3-8 译码器组成 4-16 译码器。 N3N2N1N0 4-16 译码器 DEC15DEC14 ••• DEC1DEC0
105
用两片74LS138 U1和U2级联起来,见左图。 ①将输入的最高位N3分别接到U1. /G2A及U2
用两片74LS138 U1和U2级联起来,见左图。 ①将输入的最高位N3分别接到U1./G2A及U2 .G1; ②整个级联电路的使能输入/EN分别接到U1 ./ G2B和U2 ./ G2A 。 /DEC0 /DEC1 /DEC2 /DEC4 /DEC6 /DEC5 /DEC7 /DEC8 /DEC9 /DEC11 /DEC14 /DEC13 /DEC15 U1 +5V R N0 N1 N2 N3 /EN /DEC3 /DEC10 /DEC12 74LS138 G1 A Y2 Y0 Y1 Y3 Y4 Y5 Y6 Y7 B C G2A G2B U2
106
当 /EN = 0时 ①若N3 = 0 则U2的输出无效(输出1), U1的输出为 按N2N1N0译码: /DECi = mi ( i = 0 ~ 7 ) ②若N3 = 1 则U1的输出无效(输出1), U2的输出为 按N2N1N0译码: /DECi = mi ( i = 8 ~ 15 ) /DEC0 /DEC1 /DEC2 /DEC4 /DEC6 /DEC5 /DEC7 /DEC8 /DEC9 /DEC11 /DEC14 /DEC13 /DEC15 U1 +5V R N0 N1 N2 N3 /EN /DEC3 /DEC10 /DEC12 74LS138 G1 A Y2 Y0 Y1 Y3 Y4 Y5 Y6 Y7 B C G2A G2B U2
107
总的级联译码器的输出逻辑表达式为: /DECi = /EN + mi i = 0 ~ 15 式中 :mi 为 N3N2N1N0 的对应最小项。
U1 +5V R N0 N1 N2 N3 /EN /DEC3 /DEC10 /DEC12 74LS138 G1 A Y2 Y0 Y1 Y3 Y4 Y5 Y6 Y7 B C G2A G2B U2
108
例 设计一个 5-32 二进制译码器。 采用四片 74LS138 和一片74LS139组成一个树形结构的级联译码器。
例 设计一个 5-32 二进制译码器。 采用四片 74LS138 和一片74LS139组成一个树形结构的级联译码器。 树形结构的5-32译码器: ① 将输入的高位地址N4N3作为片选信号分别接到 U2 ~U5 的/G2A; ②将输入的低位地址N2N1N0作为片内信号分别接到 U2 ~U5的地址端CBA。
109
74LS138 U1 U2 U5 EN1 /EN2 ½ 74LS139 /EN0 ~7 /EN3 /EN8 ~15 N3 /EN16 ~23
1G 1A 1B 1Y2 1Y0 1Y1 1Y3 EN1 /EN2 /EN3 /EN0 ~7 /EN8 ~15 N4 U1 /EN16 ~23 /EN24 ~31 /DEC0 /DEC1 /DEC2 /DEC4 /DEC6 /DEC5 /DEC7 /DEC27 /DEC30 /DEC29 /DEC31 U2 /DEC3 /DEC26 /DEC28 74LS138 G1 A Y2 Y0 Y1 Y3 Y4 Y5 Y6 Y7 B C G2A G2B U5 /DEC25 /DEC24
110
总的级联译码器的输出逻辑表达式为 /DECi = EN1 + /EN2 + /EN3 + mi i = 0 ~ 31
式中 mi 为 N4N3N2N1N0 的对应最小项。 此例中的树形结构又称为二级译码,速度较前例 4-16 译码器的一级译码要慢。 当 n数更大时,可以采用树形结构的多级译码方案。 例 设计一个 二进制译码器。 9 512 9-512 译码器
111
四、MSI二进制译码器应用举例 (Decoder Applications)
⒈ 用二进制译码器实现组合逻辑函数 (Implementing Logic Functions Using Decoders) 因为 n-2n 二进制译码器的输出对应于 n 变量函数的 2n 个最小项,所以可以借用此器件来实现任何组合逻辑函数。
112
例1 用译码器74LS138实现 F(x,y,z) = ∑m(1,4,6,7)
逻辑图如下所示: 74LS138 G1 A Y2 Y0 Y1 Y3 Y4 Y5 Y6 Y7 B C G2A G2B & F z y x +5V 74LS20 R
113
例2 设计一个一位全加器。 设: 由真值表得到 Si = ∑m3(1,2,4,7) Ci = ∑m3(3,5,6,7)
例2 设计一个一位全加器。 设: 输入端分别为:被加数输入xi、加数输入yi 、 低位向本位的进位输入Ci-1 输出端分别为:本位的和输出Si 本位向高位的进位输出Ci 则一位全加器的真值表如下所示。 Ci-1yi xi Si Ci 0 0 1 0 0 1 1 1 由真值表得到 Si = ∑m3(1,2,4,7) Ci = ∑m3(3,5,6,7)
114
Si = ∑m3(1,2,4,7) Ci = ∑m3(3,5,6,7) 一位全加器逻辑图
由一片74LS138和一片74LS20组成的一位全加器。 74LS138 G1 A Y2 Y0 Y1 Y3 Y4 Y5 Y6 Y7 B C G2A G2B ≥1 si xi yi Ci-1 +5V ½ 74LS20 ci 一位全加器逻辑图 R Si = ∑m3(1,2,4,7) Ci = ∑m3(3,5,6,7)
115
⒉ 将译码器作为数据分配器(Demultiplexers)
⑴ 数据分配器工作原理 如图所示为四路数据分配器的等效说明电路和逻辑图。 等效电路 Y3 Y1 Y2 I Y0 逻辑图 Y3 Y2 Y1 Y0 A1 A0 I
116
四输出多路分配器逻辑符号 图中: I:传送数据输入端; & A1,A0:地址码输入端; Y3,Y2,Y1,Y0: 输入的数据通道
这种分配器被称为 “1~4多路分配器”。 表达式为:Yi = I 其中: i 为地址码 An-1……A0 的十进制值。
117
⑵ 用二进制译码器作为数据分配器 例1 用1/2 74LS139作为四输出数据分配器。
⑵ 用二进制译码器作为数据分配器 例1 用1/2 74LS139作为四输出数据分配器。 将使能端G 作为传送数据输入端,即 I 接至 G 端; 将地址输入端作为地址码输入端,即 A0位接A 地址端; A1 位接B 地址端。 则: /Yi = I i 为地址码 A1A0 的十进制数 74LS139 1G 2G 1A 1B 2B 2A 1Y2 1Y0 2Y0 2Y1 2Y2 2Y3 1Y1 1Y3 A0 I A1 数据输出
118
例2 用74LS138作为八输出数据分配器 将G作为数据输入端,G2A、G2A端接地; 将地址端CBA分别接地址码A2A1A0位。
则: yi = I i 为地址码 A2A1A0 的十进制数 74LS138 G1 A Y2 Y0 Y1 Y3 Y4 Y5 Y6 Y7 B C G2A G2B I A0 A1 A2 数据输出 “1”
119
3.5.2 编码器 Encoders 当译码器的输出编码位数少于输入编码位数时,这种器件称为编码器。
通用结构如图所示,其中输入端为2n 个,输出为 n 位二进制数,因此它的输入输出关系正好与译码器的相反。 约束条件:同一时刻只能有一个输入端有效。 2n位输入 n位输出 二进制编码器原理图 I0 I1 I2n-1 y0 yn-1 y1 二进制 编码器
120
Y0 = I1 + I3 + I5 + I7 Y1 = I2 + I3 + I6 + I7 Y2 = I4 + I5 + I6 + I7
例 一个8位输入、3位输出的编码器。 设计一个8-3二进制编码器。 输入: I0 ~ I7,输出: Y0 ~ Y2 ① 简化真值表 ② 输出函数表达式 Y0 = I1 + I3 + I5 + I7 Y1 = I2 + I3 + I6 + I7 Y2 = I4 + I5 + I6 + I7 当且仅当输入代码中的 一位为 1 ,输出编码不 可能重复。 I7 I6 I5 I4 I3 I2 I1 I0 Y2 Y1 Y0
121
例 Y1 = I2+I3+I6+I7 即 Y1 = I010+I011+I110+I111 ③电路图 ④ 逻辑符号
≥ 1 8-3 编码器 Y0 Y2 Y1 I0 I1 I2 I3 I5 I6 I7 I4 Ii与Yj之间的关系:使Yj 为 1 的是那些Ii ,其下标 i 的二进制数的第 j 位均为1。 例 Y1 = I2+I3+I6+I7 即 Y1 = I010+I011+I110+I111
122
根据前述的输出与输入下标的关系可以直接写出16-4 编码器的输出函数表达式,如下:
Y0 = I1 + I3 + I5 + I7 + I9 + I11 + I13 + I15 Y1 = I2 + I3 + I6 + I7 + I10 + I11 + I14 + I15 Y2 = I4 + I5 + I6 + I7 + I12 + I13 + I14 + I15 Y3 = I8 + I9 + I10 + I11 + I12 + I13 + I14 + I15
123
编码器应用举例 设计一个输血——受血判别器。 输入变量: 输血者血型 Ai、 Bi、 ABi 、 Oi
受血者血型 Ao、 Bo、 ABo 、 Oo 输出变量: 配血成功 F 编码: A—00、 B—01、 AB—10 、 O—11 输血者血型编码器 Ai Bi ABi Oi 受血者血型编码器 F G4 G3 G2 G1 输血—受血判别器
124
编码器应用举例 F = G4G3 + G2G1 +G3G2G1 + G4G3G1 G4 G3 G2 G1 F 0 0 0 0 0 0 0 1
1 F = G4G3 + G2G1 +G3G2G1 + G4G3G1 1
125
优先权编码器 Priority Encoders
如果在任一时刻,允许 2n 个部件中有多个器件同时提出请求,则 2n – n 二进制编码器产生的 n 位编码必定有重复,而不能与输入请求的条件一一对应了。 为此,应对输入端进行优先权分配,使编码器仅响应请求中优先权最高的有效输入端,并产生相应的输出编码。这种具有指定输入端优先权顺序的编码器。称为优先权编码器。
126
8-3 优先权编码器的结构框图如下所示: 设 优先权为: I7(最高) →I6 → I5 → I4 → I3 → I2 → I1 → I0
设 优先权为: I7(最高) →I6 → I5 → I4 → I3 → I2 → I1 → I0 I7 I6 I0 H7 H6 H0 A2 A1 A0 优 先 权 处 理 逻 辑 8-3 二进制 编码器 74LS148 I0 I1 I2 I3 I5 I6 I7 I4 EI A2 A0 A1 EO GS
127
② 真值表 输 入 输 出 /EI /I0 /I1 /I2 /I3 /I4 /I5 /I6 /I7 /A2 /A1 /A0 /GS /EO 1 d d d d d d d d 0 d d d d d d d 0 0 d d d d d d 0 d d d d d 0 d d d d 0 d d d 0 d d 0 d
128
③ 优先权处理逻辑 H7 = I7 H6 = I7 I6 H5 = I7 I6 I5 H4 = I7 I6 I5 I4
③ 优先权处理逻辑 输入信号经优先权处理逻辑处理得到中间信号: H7、H6、 H5、 H4、 H3、 H2、 H1、 H0 Hi 与Ii的关系是:当 Ii 是最高优先权且为 1 时,Hi 才为 1。 即: H7 = I7 H6 = I7 I6 H5 = I7 I6 I5 H4 = I7 I6 I5 I4 H3 = I7 I6 I5 I4 I3 H2 = I7 I6 I5 I4 I3 I2 H1 = I7 I6 I5 I4 I3 I2 I1 H0 = I7 I6 I5 I4 I3 I2 I1 I0 ④ 输出编码为: A2 = H4 + H5 + H6 + H7 A1 = H2 + H3 + H6 + H7 A0 = H1 + H3 + H5 + H7 从上式很容易看出:如果有多个输入请求有效,若 Ii 为其中优先权最高者,则输出编码必定对应 Ii 的下标量。
129
⑤ 输出函数表达式 ⑥ 输出使能为:EO = I0 + I1 + …+ I7 A2 = H4 + H5 + H6 + H7
⑤ 输出函数表达式 A2 = H4 + H5 + H6 + H7 = I7 I6 I5 I4 + I7 I6 I5 + I7 I6 + I7 = I4 + I5 + I6 + I7 A1 = H2 + H3 + H6 + H7 = I7 I6 I5 I4 I3 I2 + I7 I6 I5 I4 I3 + I7 I6 + I7 = I5 I4 I2 + I5 I4 I3 + I6 + I7 A0 = H1 + H3 + H5 + H7 = I7 I6 I5 I4 I3 I2 I1 + I7 I6 I5 I4 I3 + I7 I6 I5 + I7 = I6 I4 I2 I1 + I6 I4 I3 + I6 I5 + I7 ⑥ 输出使能为:EO = I0 + I1 + …+ I7
130
优先权编码器的级联 若需要输入端 n>8 的编码器,则可用多片74LS148级联起来。
RA2 = G3A2 + G2A2 + G1A2 + G0A 片内编码 RA1 = G3A1 + G2A1 + G1A1 + G0A A2A1A0 RA0 = G3A0 + G2A0 + G1A0 + G0A 构成 RA4 = G3GS + G2GS 片间 GS RA3 = G3GS + G1GS 编码构成
131
74LS148 RA4 U3 RA3 RA2 U2 RA1 RA0 U1 U0 ≥1 ≥1 ≥1 RGS I7 I6 I0 EI A2 A0
/REQ31 /REQ30 /REQ24 /REQ23 /REQ22 /REQ16 /REQ15 /REQ14 /REQ8 /REQ7 /REQ6 /REQ0 U1 U0 U3 U2 I7 I6 I0 EI A2 A0 A1 EO GS /G3A2 /G2A2 /G3A1 /G2A1 /G3A0 /G2A0 /G1A2 /G1A1 /G1A0 /G0A2 /G0A1 /G0A0 RA4 ≥1 RA3 /G0GS /G1GS /G2GS /G3GS ≥1 RA2 RA1 RA0 RGS ≥1
132
优先权编码器应用举例 在多处理器系统中,需对各处理器争用总线作出仲裁。 为提高仲裁速度,通常采用并行优先权仲裁方式。
在争用总线的各处理器进行优先权分配后,通过优先权编码器和译码器进行裁决。 逻辑电路图参见书P128图3.62。
133
3.5.3 三态缓冲器 Three-State Buffers
三态是指器件的输出有三种状态: 即逻辑0 (L电平)、逻辑1 (H电平)和高阻抗状态(或悬浮态)。 最基本的三态器件是三态缓冲器,又称为三态门或三态驱动器。 三态缓冲器可使多个源数据分时共享一根公用线,为了避免多个源数据同时驱动共享线,则不能在使能一个源数据的同时使能另一个源数据。
134
三态缓冲器逻辑符号 矩形符号 变形符号 原码输出 高有效使能 低有效使能 反码输出 1 EN
135
8 个数据源共享一根数据线 P Q R S T U V W 74LS138 SDATA EN1 /SELP G1 Y0 /EN2 /SELQ
B C G2A G2B SDATA EN1 /EN2 /EN3 /SELP /SELQ /SELR /SELS /SELT /SELU /SELV /SELW SSRC0 SSRC1 SSRC2 P Q R S T U V W
136
一、标准的SSI及MSI三态缓冲器 最常使用共享线的场合是多位数据总线。
例如:在8位微处理机系统中,数据总线的宽度是8 bit,外围器件通常一次置8位数据到总线上。这样外围器件都在同一时刻使能8个三态缓冲器,因此,独立的使能输入端就都多余了。为减少总线应用中三态缓冲器的芯片数及连线,MSI三态缓冲器中包含多个三态缓冲器并共用使能输入。
137
MSI 74LS541为八三态缓冲器 74LS541 /G1 /G2 A1 Y1 A2 Y2 A3 Y3 A4 Y4 A5 Y5 A6 Y6
138
二、 MSI 三态缓冲器的应用举例 ⒈ 多端口输入
A1 74LS541 A2 A3 A4 A5 A6 A7 A8 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 G1 G2 READ INSEL1 INSEL2 INSEL3 ••• DB [ 0~7 ] D1 D0 D2 D3 D4 D5 D6 D7 用户输入 微处理器
139
⒉双向总线收发器 74LS245 八三态总线收发器 74LS245 /G DIR A1 A2 A3 A4 A5 A6 A7 A8 B5 B4
B→A ⒉双向总线收发器 LS245 八三态总线收发器 A1 74LS245 A2 A3 A4 A5 A6 A7 A8 B1 B2 B3 B4 B5 B6 B7 B8 G DIR
140
3.5.4 多路选择器 Multiplexers 多路选择器又称数据选择器,是一个数字开关,可以从 n 路源数据中选择一路送至输出端。
假设有 n 组输入数据源,每组数据源的宽度为 b 位二进制数,则反映输出关系的框图及等效电路如下图所示。 其中高有效使能端EN的功能为: 当EN = 0 时,所有的输出为 0。
141
… ① 多路选择器的结构框图 ② 多路选择器的等效功能 例 1KB RAM:b = 8 n = 1024 s = 10 n = 2s 使能
① 多路选择器的结构框图 ② 多路选择器的等效功能 使能 EN 1D0 1D1 1Dn-1 2D0 2D1 2Dn-1 bD0 bD1 bDn-1 1Y 2Y bY SEL EN … s 选择 SEL b D0 b 数 据 输 出 D1 n 组 b 位 数据源 b b Dn-1 例 1KB RAM:b = 8 n = 1024 s = 10 n = 2s
142
KY = ∑EN · mi · KDi K = 1,2,…,b
③ 多路选择器输出逻辑表达式 从 n 组数据源中选择哪一组源数据传送到输出端,由选择输入端的输入值 S 决定。 S 与 n 的关系为: n = 2s (或 S = log2n) S 位选择信号有 2s 种组合(即最小项)。每一种组合对应选择 n ( = 2s )组输入源数据中的一组。逻辑表达式为: i = 0 n - 1 KY = ∑EN · mi · KDi K = 1,2,…,b 式中:KY为输出位, KDi是第 i 组输入源数据的第K位, mi 是 S 位选择输入变量的最小项。
143
③ 多路选择器的原理图 & EN KD0 KD1 KDn-1 S - n 二进制译码器 S m0 m1 mn-1 KY 输入选择 ≥ 1
144
一、标准的中规模多路选择器 ⒈ 八输入 1 位输出多路选择器74LS151 ① 简化真值表 一个低有效使能输入端/EN
三个选择输入端C、B、A 8 个数据输入端 D7~D0 2 个互反输出 Y、/Y 输 入 输 出 /EN C B A Y /Y d d d Do Do D D1 D D2 D D3 D D4 D D5 D D6 D D7 ① 简化真值表
145
② 逻辑电路图 Y /Y /EN D0 D1 D2 D3 D4 D5 D6 D7 A B C
146
③ 逻辑符号 EN A B C D0 Y 74LS151 D1 D2 D3 D4 D5 D6 D7
147
⒉ 二输入 4 位多路选择器 74LS157 ① 简化真值表 ② 逻辑电路图 ③ 逻辑符号 输 入 输 出 /G S 1Y 2Y 3Y 4Y
① 简化真值表 ② 逻辑电路图 输 入 输 出 /G S 1Y 2Y 3Y 4Y 1 d 1A 2A 3A 4A 1B 2B 3B 4B 1Y 2Y 3Y 4Y /G S 1A 1B 2A 2B 3A 3B 4A 4B ③ 逻辑符号 G S 1A 1B 2A 2B 3A 3B 4A 4B 1Y 2Y 3Y 4Y
148
⒊ 四输入 2 位多路选择器 74LS153 ① 简化真值表 ② 逻辑电路图 输 入 输 出 /1G /2G B A 1Y 2Y 1 d d
① 简化真值表 ② 逻辑电路图 /1G A B 1Y 2Y 1C0 1C1 1C2 1C3 2C0 2C1 2C2 2C3 /2G 输 入 输 出 /1G /2G B A 1Y 2Y d d 1C C0 1C C1 1C C2 1C C3
149
③ 逻辑符号 74LS153 A B 1C0 1Y 2Y 1G 1C1 1C2 1C3 2G 2C0 2C1 2C2 2C3
150
⒋ 三态输出多路选择器 具有三态输出的多路选择器,当其使能输入无效时,将强制输出端处于高阻抗。
⒋ 三态输出多路选择器 具有三态输出的多路选择器,当其使能输入无效时,将强制输出端处于高阻抗。 有三态输出端的多路选择器的输出端可以直接连接在一起(参见举例),使得用这种器件可以方便第组成更大的多路选择器MUX。 常用的这种器件有74LS251,74LS253和74LS257等。
151
二、多路选择器的扩展 Expanding Multiplexers
1. 使用无三态输出的多路选择器及译码器 例:设计一个32输入 1 位多路选择器。 5个选择输入:XA4~XA0 32路输入:X31~X0 采用 4 个74LS151,每个器件可处理8个输入,这样将输入分为4组,每组由一个74LS151处理 选择输入的低三位XA2~XA0 连接到 4 个74LS151的C、B、A端,决定组内选择 选择输入的高二位XA4、XA3 通过一级2-4译码器1/2 74LS139产生 4 个输出,每个输出连接到一个74LS151的使能输入端
152
用74LS151组成的 32输入 1 位多路选择器 74LS151 74LS139 XA0 XA1 XA2 X0 X7 X8 1Y0
EN A B C ••• X0 X7 Y X8 X15 X16 X23 X24 X31 74LS151 XA1 XA2 XA0 1G 1A 1B 1Y0 1Y1 1Y2 1Y3 XA3 XA4 /XEN 74LS139 ≥1 XOUT
153
⒉ 使用三态输出的多路选择器及译码器 例:用74LS251设计一个32输入 1 位多路选择器。
⒉ 使用三态输出的多路选择器及译码器 例:用74LS251设计一个32输入 1 位多路选择器。 当输出处于高阻态时,该输出线可以与其他输出线直接连接在一起,并且不影响其他输出线的高、低电平。 在任意时刻只能有一个74LS251被74LS139使能,此时输出线XOUT和/XOUT上的逻辑值就是该被使能的74LS251的输出值。 当输入使能/XEN无效时,所有74LS251的输出为高阻态,输出线XOUT和/XOUT上的逻辑值不确定。
154
用74LS251组成的 32输入 1 位多路选择器 74LS251 74LS139 XA0 XA1 XOUT XA2 /XOUT X0 X7
EN A B C ••• X0 X7 Y X8 X15 X16 X23 X24 X31 74LS251 XA1 XA2 XA0 1G 1A 1B 1Y0 1Y1 1Y2 1Y3 XA3 XA4 /XEN 74LS139 XOUT /XOUT
155
⒊ 采用多级MUX的树形结构 将多路选择器MUX分级连接,低一级(前一级) MUX的输出作为其高一级(后一级) MUX的数据输入。
各级的使能输入可以同一控制。
156
三、用多路选择器实现任意组合逻辑函数 例1 F (x,y,z) = ∑ m3 (1,2,6,7)
① 选择 S = 3 的MUX 74LS151 ,则: F = D0 ·m0 + D1 ·m1 + D2 ·m2 + D3 ·m3 + D4 ·m4 + D5 ·m5 + D6 ·m6 + D7 ·m7 把 x、y、z 分别连到 74LS151 的 C、B、A 选择端,并使数据输入端为: D0 = D3 = D4 = D5 = 0 D1 = D2 = D6 = D7 = 1 则输出端Y的输出即为F。 +5V R EN A B C D0 Y D1 D2 D3 D4 D5 D6 D7 F z y x
157
②用“四选1”多路选择器74LS153实现该三变量逻辑函数
将函数 F 写成变量表达式: F (x,y,z) = ∑ m3 (1,2,6,7) = x y z + x y z + x y z + x y z = x y z + x y z + x y = ( x y ) • z + ( x y ) • z + ( x y ) • 0 + ( x y ) •1 x、y 作为地址选择变量A、B, z、z、0、1作为MUX的源数据输入D, 则有: F A B 1C0 1G 1C1 1C2 1C3 y x ½ 74LS153 1Y i=1 3 F = ∑mi Di = m0 D0 + m1 D1 + m2 D2 + m3D3 +5V 1 z R 式中 mi 为x、y的最小项, Di为: D0 = z, D1 = z, D2 = 0, D3 = 1 电路逻辑图如图所示。
158
mi x y z m1 m2 m3 m6 0 0 0 1 1 1 1 z 用真值表、卡诺图的方法,采用74LS153实现逻辑函数。 Di
例2 F (x,y,z) = ∑m3 (1,2,3,6) 选用 4 输入 1 位多路选择器74LS153。 ① 列出函数F的真值表 F A B 1C0 1G 1C1 1C2 1C3 +5V y x 1 z ½ 74LS153 1Y mi x y z Di m1 m2 m3 m6 0 0 0 1 1 1 1 D0 = z D1 = 1 D3 = z ② XY的卡诺图 1 z y x
159
例2 F (x,y,z) = ∑m3 (1,2,3,6) ③ 直接列出函数F的卡诺图 z xy 1 1 1 F A B 1C0 1G 1C1 1C2 1C3 +5V y x 1 z ½ 74LS153 1Y m0 m1 m3 m2 D0 = z D1 = 1 D2 = 0 D3 = z
160
例3 F(w,x,y,z) = ∑m4 (3,4,5,6,7,9,10,12,14,15) ① 选择有三个输入选择变量的 8 输入 1 位多路选择器74LS151。将 w、x、y 分别接入地址端,z 接入数据端。 wx yz EN A B C D0 Y 74LS151 D1 D2 D3 D4 D5 D6 D7 F y x w 1 1 1 + 5V 1 z m0 m2 m6 m4 m1 m3 m7 m5 D0 = 0 D1 = z D2 = 1 D3 = 1 D4 = z D5 = z D6 = z D7 = 1
161
例3 F(w,x,y,z) = ∑m4 (3,4,5,6,7,9,10,12,14,15) ② 选择4 输入 1 位多路选择器74LS153。 将w、x、y 作为地址端,z 作为数据端。 wx F A B 1G 1C1 1C2 1C3 y x 74LS153 2Y ≥1 2C0 2C1 2C2 2C3 1C0 1Y 2G yz 1 1 1 1 m0 m2 m2 m0 w 1 +5V z 1 m1 m3 m3 m1 当w = 0 时:D0 = 0 D1 = z D2 = 1 D3 = 1 当w = 1 时:D0 = z D1 = z D2 = z D3 = 1
162
例4 F(A,B,C,D) = ∑m4 (0,1,5,6,9,11,12,13) 1 1 1 m0 m2 m6 m4 m1 m3 m7 m5
EN A B C D0 Y 74LS151 D1 D2 D3 D4 D5 D6 D7 F AB CD 1 1 1 B C A m0 m2 m6 m4 1 D m1 m3 m7 m5
163
② 若选择 A、B、D 为地址端输入, C 为数据端输入。
EN A B C D0 Y 74LS151 D1 D2 D3 D4 D5 D6 D7 F 1 D ② 若选择 A、B、D 为地址端输入, C 为数据端输入。 AB CD m0 m2 m6 m4 1 1 1 m1 m3 m7 m5 m0 m2 m6 m4 EN A B C D0 Y D1 D2 D3 D4 D5 D6 D7 F D C 1
164
③若选择 A、C、D 为地址端输入, B 为数据端输入。
EN A B C D0 Y 74LS151 D1 D2 D3 D4 D5 D6 D7 F 1 D ③若选择 A、C、D 为地址端输入, B 为数据端输入。 AB CD m0 m4 1 1 1 m1 m5 m3 m7 m2 m6 EN A B C D0 Y D1 D2 D3 D4 D5 D6 D7 F 1 EN A B C D0 Y D1 D2 D3 D4 D5 D6 D7 F D B 1
165
④ 若选择 B、C、D 为地址端输入, A 为数据端输入。
EN A B C D0 Y 74LS151 D1 D2 D3 D4 D5 D6 D7 F 1 D ④ 若选择 B、C、D 为地址端输入, A 为数据端输入。 AB CD m0 m4 m0 1 1 1 m1 m5 m1 m3 m7 m3 m6 m2 m2 EN A B C D0 Y D1 D2 D3 D4 D5 D6 D7 F D 1 EN A B C D0 Y D1 D2 D3 D4 D5 D6 D7 F D 1 EN A B C D0 Y D1 D2 D3 D4 D5 D6 D7 F D A 1
166
四、多路选择器与多路分配器的配合应用 多路选择器从 n 个源数据中选择一个传送到总线上。
数据分配器将接收从总线上传来的数据并分配给 m 个目的设备中的任意一个。 1 2 n-1 多路选择器 Y n-2 n-1 S1 SH SRCDATA0 SRCDATA1 SRCDATAn-2 SRCDATAn-1 SRCDATA2 SRCSELH-1~0 数据 多路分配器 I SK DSTDATA0 DSTDATA1 DSTDATAm-2 DSTDATAm-1 DSTDATA2 DSTSELK-1~0
167
3.5.5 奇偶校验电路 Parity Circuit 一、异或运算及异或门
Exclusive-OR Operation & Exclusive-OR Gates A⊕B = A⊕B =A⊕B = A⊕B 矩形符号 变形符号 =1 =1 =1 =1 A⊙B = A⊕B =A⊕B = A⊕B = A⊕B= A⊙B 矩形符号 变形符号 =1 =1 =1
168
常用的小规模异或门: ① 2输入4异或门74LS86 1A 1B 1Y 2A 2B 2Y 3A 3B 3Y 4A 4B 4Y =1 1A
5 2Y GND 6 7 1Y 3 Vcc 14 4B 13 4A 12 4Y 11 3B 10 3A 9 3Y 8 (b) 引脚图 (a) 逻辑框图
169
② 集电极开路输出2输入4异或非门74LS266 (a) 逻辑框图 1A 1B 1Y 2A 2B 2Y 3A 3B 3Y 4A 4B 4Y
=1 1A 1B 74LS266 1 2 2Y 2A 4 5 2B GND 6 7 1Y 3 Vcc 14 4B 13 4A 12 4Y 11 3Y 10 3B 9 3A 8 (b)引脚图
170
二、奇偶校验电路 Parity Circuits
如果有 n 个输入变量X1,X2,… Xn 则表达式: F = X1⊕X2⊕ … ⊕ Xn 其逻辑功能为: 当输入变量为1的个数是奇数时,输出函数 F 为1 ; 当输入变量为1的个数是偶数时,输出函数 F 为0。 实现此功能的逻辑电路称为奇校验电路。
171
例 两种奇校验电路。 x1 x2 x3 x4 xn x1 x2 x3 x4 xn-1 xn ••• F (a)串级连接 F •••
=1 x1 x2 x3 x4 xn (a)串级连接 F ••• (b)树形结构 =1 x2 x1 x4 x3 xn xn-1 F •••
172
“1” 的总个数为偶数的称为偶校验Even。
三、奇偶校验电路应用举例 1. 检错 ( Error—Detecting ) 为了在数据的传输及存储中,检测出数据代码的错误,可采用奇偶编码和校验,它是在数据代码中增加一位奇偶校验位 P 后形成奇偶编码。 根据数据代码中的有效信息位和校验位中 “1” 的总个数为奇数的称为奇校验Odd; “1” 的总个数为偶数的称为偶校验Even。
173
9 位奇偶发生器/检验器74LS280 74LS280有奇、偶校验两个输出,因此它既可用做奇偶校验位发生器,也可用作奇偶编码的检验器。 A
=1 A B C D E F G H I EVEN ODD 1 EVEN 74LS280 A B C ODD D E F G H I (b) 逻辑符号 (a) 等效逻辑图
174
例 采用9位奇偶发生器/检验器(74LS280)实现 在数据传输过程中9位奇偶编码和校验
D7 D6 D5 D4 D3 D2 D1 D0 /ERROR Receive Send 奇偶编码和检测 EVEN 74LS280 A B C ODD D E F G H I
175
2. 纠错 (Error—Correcting)
在第一章中曾讨论了海明码的纠错原理。 如 8421海明码是一组 7 位编码。 设:这 7 位海明码为 D7 D6 D5 D4 D3 D2 D1 其中 : D7、D6、D5、D3是 4 位有效信息位,它们按8421 码编码; D4、D2、D1是 3 位校验位。 则:校验和 S2、S1、S0 分别为: S2 = D7⊕D6 ⊕D5 ⊕D4 S1 = D7⊕D6 ⊕D3 ⊕D2 S0 = D7⊕D5 ⊕D3 ⊕D1 电路图参见书P150图3.93。
176
3.5.6 比较器 (Comparators) 大于(>)、等于(=) 、小于( <)
比较器是对两个位数相同的二进制整数进行数值比较,并判断其大小关系的逻辑器件。 比较大小关系有三种: 大于(>)、等于(=) 、小于( <) 相等比较的过程总是从高位开始比较,只有当同位比较结果相等时,才进行低位比较。因此,两个一位数的比较是整个比较器操作的基础。
177
一、相等的比较 NEQ = A ⊕ B /NEQ= A ⊕ B 判断两个一位二进制数是否相等,可用异或门或异或非门实现之,其逻辑表达式为:
对应的逻辑电路如图所示。 =1 NEQ A B ¼ 74LS86 =1 / NEQ A B ¼ 74LS266 同理,异或门及异或非门也可以实现两个多位数的比较。
178
NEQ = (A0⊕B0) + (A1⊕B1) + (A2⊕B2) + (A3⊕B3)
例 四位二进制数的相等比较器。 NEQ = (A0⊕B0) + (A1⊕B1) + (A2⊕B2) + (A3⊕B3) /NEQ = (A0⊕B0) + (A1⊕B1) + (A2⊕B2) + (A3⊕B3) = (A0⊕B0) • (A1⊕B1) • (A2⊕B2) • (A3⊕B3) 对应的逻辑电路如图所示。 =1 NEQ0 A0 B0 A1 B1 A2 B2 A3 B3 NEQ1 NEQ2 NEQ3 ≥1 NEQ01 NEQ23 NEQ
179
二、重复电路 Iterative Circuits
这是一种迭代设计Interative Design。 串行重复电路是一种组合逻辑电路,它包含几个同样的模块,每个模块有四种类型的输入和输出; 基本输入、基本输出、级联输入、级联输出 其中:最左边的级联输入称为边界输入, 最右边的级联输出称为边界输出。 即边界输入输出 Boundary I/O。 电路的一般结构如图所示(见下页)。
180
串行组合电路的一般结构 串行电路非常适用于简单、重复运算的逻辑问题, 用串行重复电路可以组成串行比较器和串行加法器等。 基本输入 级联输入
PI PO CO CI PI0 PO0 C0 PI1 PO1 C1 PIn-1 POn-1 Cn-1 Cn ••• 基本输出 级联输入 级联输出 边界输入 边界输出 基本输入 C2 串行电路非常适用于简单、重复运算的逻辑问题, 用串行重复电路可以组成串行比较器和串行加法器等。
181
串行电路的重复操作步骤如下: ⑴ C0 置初值,并置 i 为0; ⑵ 用Ci 和 PIi 运算得到 POi和 Ci +1 ;
⑷ 如果 i 小于 n,返回步骤⑵。 在串行重复电路中,通过提供给各个模块基本输入 PI0 ~ Pin-1 ,利用模块的串行级联完成步骤⑵~⑷的循环。 下面举例说明。
182
三、串行比较电路 Iterative Comparator Circuits
两个 n 位数:xi、yi ( i = 0,1, …,n-1) 相等比较。 其中: x0、 y0 为最高位 假设每步比较的结果为EQi ( i = 0,1, …,n-1) 当第 i 次比较结果相等时,EQi = 1 则运算步骤为: ⑴ EQ0 置初值 1,并使 i = 0; ⑵ 如果EQi 为 1,并且 xi 和 yi 相等,则 EQi+1 = 1; 否则,置EQi+1 = 0; ⑶ i + 1 → i; ⑷ 如果 i < n,重复步骤⑵。
183
例 串行重复比较电路 串行比较电路只能判断二个 n 位数是否相等,但不能判别谁大谁小。如图所示: x y ① 一位串行比较模块参见图(a)
=1 x y & EQi EQo ① 一位串行比较模块参见图(a) ② 完整的 n 位串行比较电路参见图(b) ( b ) CMP EQO EQI EQ0 EQ1 EQn-1 EQn ••• x0 y0 x1 y1 xn-1 yn-1 EQ2 比较模块 比较模块 比较模块
184
四、超前电路 Lookahead Circuits
在串行电路中,由于每位的结果是逐级向前传递,最终到达输出端,因而电路的延迟时间随着位数 n 的增加而增大。 为了提高速度,采用超前电路。即各个模块不产生级联信号而只产生供超前电路进行运算的中间信号,由超前电路对这些中间信号同时进行处理,从而产生输出结果。 超前电路框图参见下页图示。
185
超前电路框图如下: 与串行电路的区别: 超前电路 CPO0 CPO1 CPOn-1 ••• C0 Cn 基本输入 基本输出 PI CPO
模块 CPO0 PI0 CPO1 PI1 CPOn-1 Pin-1 ••• CPI0 CPI1 CPIn-1 CI CO C0 Cn 超前电路 基本输入 PO0 PO1 POn-1 基本输出 边界输入 边界输出 ⒈ 各输入处理模块间没有级联 信号; ⒉ 超前电路对所有输入处理模 块提供的中间信号CPOi同时处理,提高了速度,也提高了成本; ⒊ 超前电路也有 边界输入C0和 边界输出Cn,使得此电路可 以被串联成更大的功能模块。
186
例 超前相等比较器 CPQi = xi ⊕ yi i = 0,1, …,n-1 基本输入: xi 和 yi 边界输入: EQ0
例 超前相等比较器 基本输入: xi 和 yi 边界输入: EQ0 边界输出: EQn 中间变量: CPOi (i = 0,1, …,n-1) CPQi = xi ⊕ yi i = 0,1, …,n-1 EQn = EQ0 • CPQ0 • CPQ1 • … • CPQn (a) = EQ0 + CPQ0 + CPQ1 + … + CPQn-1 (b) =1 x0 y0 x1 y1 xn-1 yn-1 EQn • • • EQ0 & CPQ0 1 CPQ1 CPQn-1 (a)或非门实现 =1 x0 y0 x1 y1 xn-1 yn-1 EQn • • • /CPQ0 EQ0 & /CPQ1 /CPQn-1 (b)与门实现
187
五、MSI比较器 ⒈ 四位比较器74LS85 ① 电路的逻辑符号 ② 输入处理模块的逻辑框图 74LS85 PLi & Ai 1 PEi
① 电路的逻辑符号 ② 输入处理模块的逻辑框图 74LS85 ALTBIN ALTBOUT AEQBIN AEQBOUT AGTBIN AGTBOUT A0 A1 A2 A3 B0 B1 B2 B3 ≥1 & 1 Ai Bi PLi PEi PGi
188
③ 逻辑表达式 PG0=A0 B0 ; PE0= A0 ⊕ B0 ; PL0=A0 B0
③ 逻辑表达式 四位比较器有四个输入处理模块,产生了 12个中间变量,它们是: PG0=A0 B0 ; PE0= A0 ⊕ B0 ; PL0=A0 B0 PG1=A1 B1 ; PE1= A1 ⊕ B1 ; PL1=A1 B1 PG2=A2 B2 ; PE2= A2 ⊕ B2 ; PL2=A2 B2 PG3=A3 B3 ; PE3= A3 ⊕ B3 ; PL3=A3 B3 比较次序: A3 与 B3, A2 与 B2 , A1 与 B1 , A0 与 B0 , 最后是边界输入条件 ALTBIN、 AEQBIN、 AGTBIN。
189
AGTBOUT = (A>B) + (A=B) •AGTBIN
四位比较器的输出逻辑表达式为: AGTBOUT = (A>B) + (A=B) •AGTBIN = PG3+PE3• PG2+ PE3• PE2• PG1 + PE3• PE2• PE1• PG0 + PE3• PE2• PE1• PE0• AGTBIN AEQBOUT = (A=B) •AEQBIN = PE3• PE2• PE1• PE0• AEQBIN ALTBOUT = (A<B) + (A=B) •ALTBIN = PL3+PE3• PL2+ PE3• PE2• PL1 + PE3• PE2• PE1• PL0 + PE3• PE2• PE1• PE0• ALTBIN ⑤ 逻辑电路图 74LS85的逻辑图,参见书P156图3.99(c)。
190
⑥ 74LS85比较器的级联 例 用三个74LS85级联构成 12 位比较器(串联比较)。 三级模块时延 +5V
ALTBIN ALTBOUT AEQBIN AEQBOUT AGTBIN AGTBOUT A0 A1 A2 A3 B0 B1 B2 B3 +5V XD[0~11] XEQY3 XLTY3 XD0 XD1 XD2 XD3 YD0 YD1 YD2 YD3 YD[0~11] XGTY3 比较两个12位二进制数: XD = XD11XD10…XD0 YD = YD11YD10…YD0 ALTBIN ALTBOUT AEQBIN AEQBOUT AGTBIN AGTBOUT A0 A1 A2 A3 B0 B1 B2 B3 XD4 XD5 XD6 XD7 YD4 YD5 YD6 YD7 XEQY7 XLTY7 XGTY7 74LS85 ALTBIN ALTBOUT AEQBIN AEQBOUT AGTBIN AGTBOUT A0 A1 A2 A3 B0 B1 B2 B3 XD8 XD9 XD10 XD11 YD8 YD9 YD10 YD11 XEQY XLTY XGTY 三级模块时延
191
2、八位比较器74LS682 74LS682有两个低有效输出端: PEQQ(等于) 及 PGTQ(大于) 逻辑符号及各种条件输出如图所示。
1 ≥1 & / PGTQ( ≯ ) / PEQQ( ≠ ) PEQQ( = ) PGTQ( >) PGTQ( ≥ ) PLTQ( < ) / PLTQ( ≮ )
192
3.5.7 加法器 一、 半加器和全加器 ⒈ 半加器的 HS 和 CO 的逻辑表达式为: HS = x⊕y = x • y + x • y
加法器 一、 半加器和全加器 ⒈ 半加器的 HS 和 CO 的逻辑表达式为: HS = x⊕y = x • y + x • y CO = x • y 逻辑符号如图所示。 半加器 x y HS CO
193
⒉ 全加器 ① 全加器的 S 和 Cout 的逻辑表达式为: S = x⊕y ⊕Cin
⒉ 全加器 ① 全加器的 S 和 Cout 的逻辑表达式为: S = x⊕y ⊕Cin Cout = x • y + x • Cin + y • Cin ②逻辑符号如图所示。 全加器 X Y S COut Cin 1A 1B 1Cn 1∑ 1Cn+1 2∑ 2Cn+1 74LS183 用于级联时的全加器符号 X Y Cin Cout S
194
二、并行加法器(行波加法器) n 个全加器级联,每个全加器处理两个一位二进制数,则可以构成两个 n 位二进制数相加的加法器。
由于进位信号是一级一级地由低位向高位逐位产生,故又称为行波加法器。 X Cin Cout Cn Cn-1 C1 C0 ••• x0 y0 xn-1 yn-1 Cn-2 xn-2 yn-2 Y S Sn-1 Sn-2 S0
195
并行加法器的特点 TADD = TXYCOUT + (n-2) • TCINCOUT + TCINS
由于进位信号逐位产生,这种加法器速度很低。最坏的情况是进位从最低位传送至最高位。行波加法器的最大运算时间为: TADD = TXYCOUT + (n-2) • TCINCOUT + TCINS 其中: TXYCOUT 是最低位全加器中由 x 和 y 产生进位 Cout 的延迟时间, T CINCOUT 是中间位全加器中由 Cin 产生 Cout 的延迟时间,TCINS 是最高位全加器中由 Cin 产生 S 的延迟时间。
196
三、全减器及减法器 全减器是完成一位二进制减法运算的器件。 三个输入端:被减数 x、减数 y 低位向本位的借位 Bin
两个输出端:本位的差 D 、本位向高位的借位 Bout ① 真值表如下: ② 卡诺图如下: x y Bin D Bout 0 0 1 1 0 1 1 0 xy Bin D xy Bin 1 1 Bout
197
Bout = x • y + x • Bin + y • Bin
③ 逻辑表达式为: D = x⊕y ⊕Bin Bout = x • y + x • Bin + y • Bin ④ 逻辑符号 ② 卡诺图如下: X Y Bin Bout D xy Bin D xy Bin 1 1 Bout
198
⑤ 用加法器实现减法器的功能 Bout = x • y + x • Bin + y • Bin D = x⊕y ⊕Bin
⑤ 用加法器实现减法器的功能 在实际应用中,是将全加器推演为全减器,则全减器的逻辑表达式变换为: Bout = x • y + x • Bin + y • Bin D = x⊕y ⊕Bin = x⊕y ⊕Bin Bout = ( x + y ) • ( x + Bin ) • ( y + Bin ) = x • y + x • Bin + y • Bin X Y Cin Cout S 将全加器的进位输入 Ci 和进位输出Ci+1 分别看成是全减器的两个低有效的借位输入 /bi 和借位输出 /bi+1 全加器的和 Si 即为全减器的差 Di X Y Cin Cout S /bi /bi+1 y x D 则:D = x⊕y ⊕bi bi+1 = x • y + x • bi + y • bi
199
⑥ 按照补码运算规则,用加法运算实现减法运算:
x - y = x + [-y]补 xn-1 xn-2 … x0 - yn-1 yn-2 … y0 = xn-1 xn-2 … x0 + [ 2n - yn-1 yn-2 … y0 ] = xn-1 xn-2 … x0 + yn-1 yn-2 … y0 + 1 该结果与前页讨论的一致。 综上所述,如果要把一个 n 位加法器用于 n 位减法器的功能,则只需将减数变补,并把进位输入和进位输出分别当作一对低有效的借位输入和借位输出即可。
200
⑦ n 位行波减法器 x0 y0 xn-1 yn-1 xn-2 yn-2 dn-1 dn-2 d0
Bin Bout /bn /bn-1 /b1 /b0 = 1 ••• x0 y0 xn-1 yn-1 /bn-2 xn-2 yn-2 Y D dn-1 dn-2 d0 其中:最低位的借位输入应为无效,即/b0 = 1
201
四、超前进位加法器 ⒈ 超前进位加法器的结构框图如图所示: x0 y0 yn-1 xn-2 yn-2 Sn-1 Sn-2 S0 Sn
⒈ 超前进位加法器的结构框图如图所示: x0 y0 yn-1 xn-2 yn-2 Sn-1 Sn-2 S0 Cn Sn 超前进位发生器 Pn-1 Gn-1 Cin G Cn-1 C0 ••• Y X S P xn-1 Pn-2 Gn-2 Cn-2 P0 G0
202
⒉ 超前进位加法器的设计思想是: 由 n 个输入处理模块及超前进位发生器组成。
⒉ 超前进位加法器的设计思想是: 由 n 个输入处理模块及超前进位发生器组成。 第 i 位的进位输入 Ci 是否为 1,直接取决于 x0~ xi-1, y0~ yi-1及 C0 ; 第 i 位是否产生进位输出 Ci+1(Ci+1= 1) ,直接取决于 x0~ xi,y0~ yi及 C0 。 即 Cout = x • y + ( x ⊕ y) • Cin = G + P • Cin 其中:输入处理模块产生两个中间变量,分别称为 进位产生项G、进位传递项P 则 Gi = xi • yi Pi = xi ⊕ yi Ci+1 = Gi + Pi • Ci
203
⒊ 输入处理模块 Si = xi⊕yi ⊕Cin Cout = xi • yi + (xi⊕yi) Cin = Gi + Pi • Cin
⒊ 输入处理模块 输入处理模块的逻辑表达式为: Si = xi⊕yi ⊕Cin Cout = xi • yi + (xi⊕yi) Cin = Gi + Pi • Cin 可以由二个半加器组成的一个全加器构成输入处理模块,如下: =1 xi yi Pi Si Cin & ≥1 Gi Cout X Y G P S Cin xi yi Gi Ci Si Pi 超前进位电路
204
= G2 + P2 • G1 + P2 • P1 • G0 + P2 • P1 • P0 • C0
例 三位二进制加法的进位输出可写成: C1 = G0 + P0 • C0 C2 = G1 + P1 • C1 = G1 + P1 • (G0 + P0 • C0) = G1 + P1 • G0 + P1 • P0 • C0 C3 = G2 + P2 • C2 = G2 + P2 • (G1 + P1 • G0 + P1 • P0 • C0) = G2 + P2 • G1 + P2 • P1 • G0 + P2 • P1 • P0 • C0 逻辑图参见书P163图3.107。 电路特点:所有进位都是同时产生的,故电路延时时间与位数多少无关。在位数较多时其运算速度比行波加法器的要快得多。
205
⒉ MSI加法器74LS283 一个快速进位四位二进制加法器74LS283 的框图如下所示。
用74LS283级联构成 n 位加法器,级联方式为: 片内(4位)超前进位 片间为行波进位 例 设计一个十六位加法器。 框图参见书P163图3.108(b)。 C0 74LS283 A0 B0 A1 B1 A2 B2 A3 B3 S0 S1 S2 S3 C4
206
五、MSI加法器的应用 例1 用MSI四位二进制加法器实现两个一位十进制8421BCD码的加法器。
如果其和的范围在 0~9 之间,则不需要进行校正; 如果其和在 10~18 之间,则必须进行校正。 C0 74LS283 A0 B0 A1 B1 A2 B2 A3 B3 S0 S1 S2 S3 C4 A1 B1 A2 B2 A4 B4 A8 B8 S'4 S'3 C'4 S'2 S'1 修正网络 S0 S1 S2 S3 C4 S4 S3 C4 S2 S1
207
两个一位8421BCD码相加之和的校正表(0+0~9+9,再加进位)
十进 未校正 BCD码和 校正的 制数 C4 S3 S2 S1 S0 C'4 S'3 S'2 S'1 S'0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 校正算法: 当和S3~0的范围在 0~9 之间,则S' 3~0 = S3~0 + 0; 当和S3~0的范围在 10~18 之间,则S'3~0 = S3~
208
两个一位8421BCD码相加之和的校正表(0+0~9+9,再加进位)
十进 未校正 BCD码和 校正的 制数 C4 S3 S2 S1 S0 C'4 S'3 S'2 S'1 S'0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 C'4 = S3S2S1S0 + S3S2S1S0 + S3S2S1S0 + S3S2S1S0 + S3S2S1S0 + S3S2S1S0 + C4 = S3S1 + S3S2 + C4 (F)
209
两个一位8421码加法器的逻辑图 y3 x3 y2 x2 y1 x1 y0 x0 (F) 74LS283 S'0 S'1 S'2 S'3
B3 B2 B1 B0 A3 A2 A1 A0 C0 C4 S3 S2 S1 S0 74LS283 S'0 S'1 S'2 S'3 y3 x3 y2 x2 y1 x1 y0 x0 1≤ & C'4 (F)
210
例2 用MSI四位二进制加法器实现两位8421BCD码转换成二进制码。
设:两位8421BCD码的高位为B80B40B20B10 低位为B8 B4 B2 B1 (0~99) 输出对应的二进制数为 A6 A5 A4 A3 A2 A1A0 (<127) 码制转换 B80 B40 B20 B10 B8 B4 B2 B1 A6 A5 A4 A3 A2 A1 A0
211
例2 用MSI四位二进制加法器实现两位8421BCD码转换成二进制码。
则:D = B80B40B20B10 B8B4B2B1 = (B80B40B20B10 ) ×101 + (B8B4B2B1 ) ×100 = (B80 ×8 + B40 ×4 + B20 × 2 + B10 ×1 ) ×101 + ( B8 × 8 + B4 × 4 + B2 × 2 + B1 ×1 ) ×100 = B80 ×80 + B40 ×40 + B20 × 20 + B10 ×10 + B8 × 8 + B4 × B2 × B1 ×1 = B80×(64+16) + B40×(32+8) + B20×(16+4) + B10×(8+2) + B8×8 + B4×4 + B2×2 + B1×1 = B80×26 + B40×25 + (B80 + B20)×24 + (B40 + B10 + B8)×23 + (B20 + B4)×22 + (B10 + B2)×21 + B1×20
212
电路逻辑图 = B80×26 + B40×25 + (B80 + B20)×24 + (B40 + B10 + B8)×23
A3 A2 A1 A0 C0 C4 S3 S2 S1 S0 74LS283 B10 B40 B8 B20 B4 B80 20 21 22 23 24 25 26 27 = B80×26 + B40×25 + (B80 + B20)×24 + (B40 + B10 + B8)×23 + (B20 + B4)×22 + (B10 + B2)×21 + B1×20
213
例3 用MSI四位二进制加法器实现码制转换。
1. 实现8421BCD码到余3码的转换。 设:输入为8421码A8A4A2A1 ,输出为余3码Y3Y2Y1Y0 从真值表可以看出:Y3Y2Y1Y0 = A8A4A2A1 + 3 (0011) 十进制数 A8A4A2A1 Y3Y2Y1Y0 1 2 3 4 5 6 7 8 9 电路图如下所示。 B3 B2 B1 B0 A3 A2 A1 A0 C0 C4 S3 S2 S1 S0 74LS283 Y3 Y2 Y1 Y0 A8 “1” A4
214
设:输入为余3码Y3Y2Y1Y0 ,输出为8421码A8A4A2A1
⒉ 实现余3码到8421BCD码的转换。 设:输入为余3码Y3Y2Y1Y0 ,输出为8421码A8A4A2A1 则: A8A4A2A1 = Y3Y2Y1Y0 - 3 (- 0011) = Y3Y2Y1Y 电路图为: B3 B2 B1 B0 A3 A2 A1 A0 C0 C4 S3 S2 S1 S0 74LS283 Y8 “1” Y4 Y2 Y1
215
第三章 习题
Similar presentations