440 likes | 717 Views
《 数字电子技术基础 》. 第 4 章 组合逻辑电路. 数字电路可以分成两大类: 组合逻辑电路和时序逻辑电路。 组合逻辑电路的分析方法和设计方法 常用中规模组合逻辑电路的结构和原理 应用中规模集成芯片的设计方法 组合逻辑电路竞争 - 冒险现象的成因,以及消除竞争 - 冒险现象的常用方法。. 4.1 组合逻辑电路的分析方法. 1 .组合逻辑电路的结构特点 组合逻辑电路是由各种门电路组成的,用于实现复杂的组合逻辑功能。 组合逻辑电路的特点:组合电路的输出信号仅取决于同一时刻的输入信号,与电路原来所处的状态无关。
E N D
《数字电子技术基础》 第4章 组合逻辑电路 数字电路可以分成两大类: 组合逻辑电路和时序逻辑电路。 组合逻辑电路的分析方法和设计方法 常用中规模组合逻辑电路的结构和原理 应用中规模集成芯片的设计方法 组合逻辑电路竞争-冒险现象的成因,以及消除竞争-冒险现象的常用方法。
4.1 组合逻辑电路的分析方法 • 1.组合逻辑电路的结构特点 • 组合逻辑电路是由各种门电路组成的,用于实现复杂的组合逻辑功能。 • 组合逻辑电路的特点:组合电路的输出信号仅取决于同一时刻的输入信号,与电路原来所处的状态无关。 • 组合逻辑电路结构的特点:输出与输入之间没有反馈电路,电路中的信号传递是树形结构,电路中没有记忆单元。 • 一个多端输入、多端输出组合逻辑电路中x1, x2, …, xm是输入信号y1,y2,…yn是输出信号。输出和输入间的逻辑关系可以用一组逻辑函数式表示: y1 = f1(x1, x2, …, xm) y2 = f2(x1, x2, …, xm) … yn = fn(x1, x2, …, xm)
2.组合逻辑电路的分析步骤 • 组合逻辑电路的分析,找出给定逻辑电路输出和输入之间的逻辑关系,从而确定电路的逻辑功能。 • 分析过程的一般步骤: • (1)根据给定的组合逻辑电路图,以每个门电路的输入信号为自变量,由输入端逐级写出输出端的逻辑函数表达式。 • (2)用公式化简或卡诺图化简,使逻辑关系简单明了。 • (3)由逻辑函数表达式列出真值表。 • (4)根据真值表或逻辑函数表达式分析出给定组合逻辑电路的逻辑功能。
【例4.1】 分析逻辑电路,确定该电路的逻辑功能。 • 解:逐级推导电路输出端的逻辑表达式。 • (1)写出逻辑函数表达式并化简 • (2)由逻辑表达式列出真值表。真值表可以完全描述电路的逻辑功能。 • (3)确定逻辑功能。由真值表可以确定电路的功能为异或逻辑,Y = A⊕B。
【例4.2】 分析逻辑电路,确定其逻辑功能。 • 解:(1)逐级写出逻辑表达式 • (2)化简逻辑函数 • (3)由逻辑表达式列出真值表 • (4)确定逻辑功能。分析真值表可以得出,电路实现的是一位二进制数全加器的功能。
4.2 常用的组合逻辑电路 • 常用组合逻辑电路已制成了专用中规模集成芯片,广泛应用于数字系统的设计中。本节主要介绍编码器、译码器、数据选择器、加法器、数值比较器和奇偶校验器等典型的中规模组合逻辑器件,着重分析它们的逻辑功能、使用方法及扩展应用。 • 4.2.1 编码器 • 数字信号不仅可以表示数,也可以表示各种指令和信息。对于不同的事物用一组二值代码表示,就是“编码”。编码器(Encoder)电路的逻辑功能就是将每一个高、低电平形式的信号编成对应的二进制代码。 • 编码器分为普通编码器和优先编码器两类。普通编码器任何时刻只允许输入一个编码信号,否则会导致输出混乱。优先编码器可以有两个或多个编码信号同时输入,优先编码器将所有待编码信号排队,按优先顺序只对优先权最高的一个进行编码。
4.2.2 译码器 • 译码器(Decoder)的逻辑功能是将一组输入的二进制代码译成对应的输出高、低电平信号。译码器按功能分为“二进制译码器”、“二十进制译码器”和“显示译码器”。 • 1.二进制译码器 • n个输入端、N个输出端的译码器,当N=2n时,称为“全译码”;当N<2n时,称为“部分译码”。 • (1)2线-4线译码器 • 74139电路当 =0时,可得 2线-4线译码器的真值表 当 = 1时, 取非后为0, 封锁与非门输入端, ~ 输出全为1。
(2)3线-8线译码器74138 • 74138芯片,有3个地址输入端,8个输出端,3线-8线译码器 • 输入的3位二进制码有8种状态,译码器将每组输入代码译成对应的一根输出线上的低电平信号。 • 当控制门GS的输出为高电平(S=1)时,译码器的输出逻辑表达式 • 是A2A1A0地址输入的最小项译码输出,S1、 和 是译码器的控制端(片选输入端)。 • 当S1=1、 时,GS门的输出为高电平(S=1),译码器处于工作状态;
如果GS门的输出为低电平(S=0),译码器禁止工作,所有的输出端被封锁在高电平。如果GS门的输出为低电平(S=0),译码器禁止工作,所有的输出端被封锁在高电平。 • GS门为负与门,低电平输入。“片选”输入端可以用做扩展译码器的功能。 3 线 -- 8 线译码器的功能表
【例4.4】 用4片74138和1片74139构成5线-32线译码器。 • 4片74138芯片的3个地址输入端A2A1A0并接在一起,接5位二进制码的低3位D2D1D0 • 控制74138的“片选”输入端S1、 和 ,使其中1片译码工作时,其他3片被禁止工作。 • 高两位二进制码D4D3作为74139的地址输入,译码输出端的低电平信号分别控制4片74138的 ,使其轮流工作在译码状态。
2.二-十进制译码器 • 将输入8421BCD码的10个代码译成10个低电平(或高电平)的输出信号。 • 当输入超过8421BCD码的范围(即1010~1111)时,输出均为高电平,为无效译码输出。 • 输出端的逻辑函数为
3.数据分配器 • 将一条数据传输线上的数据分配到多条线路上,相当于一个多路开关。 • 用译码器74138实现数据分配器的功能。 • 将数据线连接控制端,作为数据输入 • 将S1接使能信号EN, 接低电平,A2A1A0作为选择通道地址输入。 • EN=1,串行数据D被传送到由地址码A2A1A0 指定的输出线路上。 • 例如:EN=1, A2A1A0=101时,串行数据D被传送到输出端 。
4.显示译码器 • 用七段显示译码器显示十进制数字,由译码驱动器和显示器组成。 • 将8421BCD码转换成十进制数字的七段字形驱动信号,连接数码显示电路。 • 常用集成七段显示译码器分为两类,一类是译码器输出高电平有效信号,用来驱动共阴极显示器, • 另一类是输出低电平有效信号,驱动共阳极显示器。 • 7448的译码显示电路
7448七段显示译码器功能表 • 输入A3~A0是BCD代码,输出Ya~Yg是7位二进制代码。 • Yi=1,字段亮;Yi=0,字段灭。
7448输出与输入的逻辑关系: • 7448有三个附加控制端 • 灯测试输入 、灭零输入 和灭灯输入/灭零输出 ,用作扩展电路的功能。 • ① 灯测试输入 : • =0时,无论输入信号是什么状态,所有字段Ya~Yg=1,驱动数码管的七段同时点亮,检查数码管各段能否正常发光。 • =1数码管正常工作。
② 灭零输入 : • 灭零输入信号 =0,将不需要显示的零熄灭。 • 5位数码显示电路,显示39.7时会出现039.70,将多余的零熄灭。 • =0,当A3~A0=0000,所有字段Ya~Yg为0,本应显示的0被熄灭;如果A3~A0不为0000,输出字符正常显示。小数点前后两位的都要接1,避免出现不显示0.0的情况。 • ③ 灭灯输入/灭零输出 : • 输入/输出端口。作输入为灭灯输入控制端。 =0,无论A3~A0的状态是什么,数码管的各段同时熄灭。 • 作输出为灭零输出端。与灭零输入 同时作用, =0, 也为0,表示译码器熄灭了本应显示的零,还作为下一级灭零输入信号。
4.2.3 数据选择器 数据选择器:从多路输入数据中选出某一个数据送到输出端 • 1.双4选1数据选择器 • 74LS153,包含两个完全相同的4选1数据选择器。 • 两个4选1数据选择器共用地址输入端A1、A0,数据输入和输出是独立的。 • 控制端 和 分别控制两个4选1数据选择器, • =0时,信号到达输出端,数据选择器工作; • =1时,数据选择器禁止工作,输出被封锁为低电平。 • 4选1数据选择器的逻辑表达式
【例4.5】 用双4选1数据选择器构成8选1数据选择器。 • 解:8选1数据选择器有3位地址码,高位码A2作为控制信号,连接 , • A2取非后连接 。 • A2=0,数据D0~D3被选通到输出Y1,Y2禁止工作为低电平; • A2=1,数据D4~D7被选通道输出Y2,Y1禁止工作为低电平。 8选1数据选择器逻辑表达式 • 8选1数据选择器74151的逻辑符号
8选1数据选择器真值表。 • 【例4.6】8选1数据选择器扩展为32选1数据选择器电路。 • 解:32选1数据选择器需要32个数据输入端,5位地址码。采用4片74151,1片4选1数据选择器 • 高两位地址码A4A3作为4选1数据选择器的地址码,控制4片74151中只有一片可以输出。
4.2.4 数值比较器 • 数值比较器是用来比较两个数字的大小或是否相等的逻辑电路。 • 1.一位数值比较器 • 两个一位二进制数A和B的比较有三种可能。 YA=B = A⊙B
2.多位数值比较器 • 比较两个多位二进制数,A3A2A1A0=1000与B3B2B1B0=0111,A3>B3,A>B;A3=B3再比较A2与B2。由高而低地逐位比较,高位相等时,比较低位的数值。 • 74LS85的逻辑表达式 I(A>B)、I(A<B)和 I(A=B) 是扩展端, 用于连接低位芯片的比较输出。
【例4.7】用两片74LS85芯片组成一个8位数值比较器。【例4.7】用两片74LS85芯片组成一个8位数值比较器。 • 解:8位数值进行比较,从高位数值开始比较, • 将片2接两个数的高4位,片1接低4位,片1比较输出作为片2的扩展输入。 • 片1没有来自低位的比较信号,扩展端I(A>B)和I(A<B)接0,I(A=B)接1。 • I(A=B)接1,可以比较出两个8位数完全相等的输出Y(C=D)等于1。
4.2.5 加法器 • 在计算机中,两个二进制数的算术运算(加、减、乘、除)都能化为加法运算,加法器是构成算术运算器的基本单元。 • 1.半加器 • 将两个一位二进制数相加,不考虑低位进位的运算电路。 • 半加器的真值表中A、B为加数,S为本位和,CO为高位进位。 • 半加器的逻辑表达式 CO=AB
2.全加器 • 两个二进制数相加,考虑低位进位的运算电路。 • 全加器将两个加数A、B和低位进位CI相加,产生本位和S和高位进位CO。 • CO逻辑表达式有多种形式,用异或门等门电路构成的全加器逻辑表达式 S = A⊕B⊕CI CO = (A⊕B) CI+AB 二进制数A=1011 B=1110, 求和 1 0 1 1 A 1 1 1 0 B +) 1 1 1 Ci 低位进位 1 1 0 0 1 A+B
3.多位加法器 • 将一位全加器串行进位连接,构成多位加法器。串行进位速度慢,可以采用超前进位方式。 • 超前进位加法器74LS283的逻辑表达式 Y0= (CI)0 S0= A0⊕B0⊕CI Y2 = A1B1+(A1+B1) A0B0+(A1+B1) (A0+B0)CI = (CI)2 Y3 = A2B2+(A2+B2) A1B1+(A2+B2) (A1+B1) A0B0+(A2+B2) (A1+B1) (A0+B0)CI = (CI)3 推导 Si = Ai⊕Bi⊕CIi
超前进位加法器的每一级进位信号只由被加数和加数决定,与低位的进位无关。超前进位加法器的每一级进位信号只由被加数和加数决定,与低位的进位无关。 • YI式判断本级是否有低位进位信号,如果Ai-1、Bi-1都为1,本级有低位进位信号;如果Ai-1、Bi-1有一个为1,再判断Ai-2、Bi-2的情况; • 推出各级低位进位信号(CI)i。根据各级的Ai、Bi和(CI)i,各级的进位可以同时产生,提高了运算速度。 • 74LS283是4位加法器电路 • 需要更多位数的加法运算,可以进行扩展。 • 两片74LS283以串行进位方式扩展成8位加法器的电路。将低位片(1)的进位输出连到高位片(2)的进位输入。
4.3 组合电路的设计方法 • 根据提出的实际逻辑问题,设计出最简单的组合逻辑电路。 • 组合逻辑电路的设计步骤: • (1)逻辑抽象,分析问题的逻辑关系,确定输入、输出变量。设定变量逻辑状态1和0所代表的含义,根据逻辑功能的要求列出真值表。 • (2)由真值表写出逻辑函数表达式,并进行化简。 • (3)选定器件的类型:可以根据设计需要选择门电路、中规模集成的组合逻辑器件构成的逻辑电路。 • (4)将逻辑函数变换成与选定器件相适应的形式。 • ① 当采用门电路设计时,根据所选用的逻辑门进行函数化简,变换成与逻辑门类型适应的形式,用最少的门电路来实现。 • ② 当采用中、大规模集成电路设计时,需要将逻辑函数变换成与所用器件的逻辑函数式相同的形式,再用最少的集成块来实现。 • (5)画出逻辑电路图。
4.3.1 基于门电路的组合逻辑电路设计 • 基于门电路的设计考虑:①小规模集成器件都是同一类型的门电路,要将逻辑函数式化简为同一形式,与非-与非式、或非-或非式。②多端输出组合逻辑电路的化简,要逻辑函数的整体最简,总的逻辑门数最少。 • 【例4.8】 设计一个交通灯的控制电路,信号灯红、黄、绿组成。出现故障,控制电路发出故障信号。分别用与或非门、或非门和与非门实现控制电路。 • 解:(1)列出逻辑函数真值表。红、黄、绿灯为输入变量R、A、G;灯亮为1,灯灭为0;输出变量Y,正常工作Y为0,发生故障Y为1。 • (2)写出逻辑函数式
(3)用与或非门器件实现逻辑电路,卡诺图圈0化简,求与或表达式,再次求反得到Y表达式。(3)用与或非门器件实现逻辑电路,卡诺图圈0化简,求与或表达式,再次求反得到Y表达式。 • (4)用或非门器件实现电路,卡诺图圈0化简,求Y的最简或与表达式,再两次求反得到Y。 • (5)用与非门器件实现电路,卡诺图圈1化简,求Y的最简与或表达式,再两次求反得到Y。 • (6)画出逻辑电路图
【例4.9】 设计一个一位二进制全减器。 • 解:一位二进制全减器第i位的减法,全减器有3个输入变量:被减数Ai,减数Bi,低位向本位的借位Ci-1;两个输出变量:本位差Di,本位向高位的借位Co • (1)真值表,输入变量被减数A,减数B,低位借位CI输出变量高位借位CO,本位差D。 • (2)写出逻辑函数式。多输出端函数化简,考虑整体最简。利用函数式中的“公共项”,使整体逻辑电路所需的逻辑门的数量最少。 • (3)用异或门和与非门实现全减器电路。 • (4)画出逻辑电路图。
4.3.2 基于中规模集成器件的组合逻辑电路设计 • 中规模逻辑器件实现组合逻辑函数,采用逻辑函数对比的方法,或做出相应的扩展。 【例4.10】用译码器实现多输出组合逻辑函数。 解:实现多输出组合逻辑函数用3线-8线译码器8是最好的选择。74138芯片的S1=1、 74138的译码输出功能为 • 多输出函数的最小项表达式 • 将输入变量A、B、C加到74138的地址码输入端,用与非门作为输出门
【例4.11】用数据选择器设计组合逻辑函数 • 解:用1片8选1数据选择器74151实现四变量的组合逻辑函数。74151使能端 =0时,74151的输出逻辑表达式 • 将逻辑表达式展开成最小项表达式 • 确定A、B、C为地址输入,连接S2S1S0端。 • 对应D0=D2=D、D1=D4=1、D3=D6= , • 没有出现的最小项都为0。 • 8选1数据选择器还可以实现8位并行数据转换为串行数据的功能 • 将8位并行数据加到数据输入端,当地址输入S2S1S0由000~111递增变化时,输出端Y依次输出D0~D7数据。
【例4.12】用加法器实现减法运算。 • 解:用74283构成四位减法器电路。 • 用补码相加来实现两个多位数相减。二进制数A减B,求减数B的补码。反码加1,将减数B通过非门求反,将74283芯片的CI接1,实现B反+1,求得B的补码。 • 二进制数补码相加运算的结果有两种情况: • 当A≥B时,进位输出CO=1,表示相加和为原码; • 当A<B时,进位输出CO=0,表示相加和为负数,必须再次求补运算才能得到原码。 • 片1完成A加B的补码运算(A+B反+1)。片1进位输出CO=1时,取反为0,控制片1输出S3S2S1S0通过异或门和片2,直接输出为A减B的差值D3D2D1D0。片1的进位输出CO=0时,取反为1,控制异或门输出为片1的S3S2S1S0 反码,片2实现S3S2S1S0 反码+1的运算,输出是A减B的差值D3D2D1D0 原码。 • 验证设计结果:设A=9、B=10,A减B,片1运算结果1001+0101+1=01111,片1的CO=0;片2运算结果为0001。 • 设A=12、B=10,片1运算结果1100+0101+1=10010,片1的CO=1; • 片2运算结果为0010。
【例4.13】 用4位加法器实现两个1位8421BCD码的十进制加法运算。 • 解:4位加法器实现二进制数相加,逢十六进一;8421码相加是逢十进一,解决进制转换问题。 • ① 6+7=13的8421BCD码加法和为十六进制数1101,超出8421BCD码的数值范围,加6修正后,得10011,为二位十进制数的13。 • ② 8+9=17的8421BCD码加法和为二位十六进制数10001,加6修正后,得到10111,为二位十进制数的17。 • 需要加6修正有两种情况: • ①十六进制加法运算的和在10~15之间, • ②加法运算有十六进制的进位CO。可以得出需要加6修正的逻辑函数为 74283作1位8421BCD码加法运算,片1的加法运算结果送入片2的B3B2B1B0。要加6修正,Y为1,片2的A3A2A1A0 = 0110。不要加6修正时,Y为0,片2的A3A2A1A0 = 0000;片2的输出S3S2S1S0为相加的和,Y也是进位输出。
4.4 组合逻辑电路的冒险现象 • 信号通过连线、集成门都有延迟时间,电路中多个输入信号变化时,经过多条路径传送后,有快慢的差异,产生瞬间的错误,输出端出现错误的尖峰脉冲,称为竞争冒险。 • 4.4.1 产生竞争冒险的原因 • A由0上升为1, 由1下降为0时, 等于0。B信号通过非门增加延迟时间,下降沿到达与门比A信号上升沿晚1tpd,输出端出现一个正向尖峰脉冲,“1冒险”。 • B信号通过非门增加延迟时间,上升沿到达或门的时间比A信号下降沿晚1tpd,输出端出现了负向尖峰脉冲,“0冒险”。 • 冒险现象可能引起后级电路的错误动作。产生冒险的原因是两个互补的输入信号分别经过两条路径传输,延迟时间不同,到达的时间不同,这种现象称为竞争。
分析产生竞争冒险现象。电路逻辑表达式 • 当B=C=1时, • 分析输出波形,输入信号A发生变化,通过非门的 信号比A延迟1tpd变化,通过与门的 比AC延迟了1tpd变化,输出波形Y出现了负向尖峰脉冲,电路存在竞争冒险。 • 判断一个组合电路是否存在冒险,当组合逻辑函数的表达式中部分变量为确定值时,表达式可能出现 或 的情况,有可能出现竞争冒险现象。
4.4.2 消除竞争冒险的方法 • 1.增加冗余项 • 增加乘积项BC, B=C=1时,Y=1,不产生冒险。增加了乘积项BC后,不是“最简”函数式,称为冗余项。 • 2.消去互补相乘项 • A=C=0时, 存在冒险。如变换为, • 消去 项,在A=C=0时,Y=0,电路不会出现竞争冒险。 • 3.增加选通信号 • 冒险现象出现在输入信号发生转换的瞬间,在稳定状态没有冒险信号。逻辑电路中增加选通脉冲,接到产生冒险门电路的输入端。就可能避免出现冒险脉冲。增加了选通脉冲后,组合逻辑电路的输出是脉冲信号。 门电路引入选通脉冲的方法和极性。 • 4.增加输出滤波电容 在可能产生竞争冒险的逻辑电路输出端并接一个滤波电容(4~20 pF),滤除冒险的毛刺信号,消除冒险。
作 业 答 案 4.3 试用与非门和异或门实现逻辑函数 Y(A,B,C,D)=∑m(0,2,4,6,8,9,10,13,14) 4.5某保险柜有3个按钮A、B、C,如果在按下按钮B的同时再按下按钮A或C,则发出开启柜门的信号Y1,柜门开启;如果按键错误,则发出报警信号Y2,柜门不开。试用或非门设计一个能满足这一要求的多输出组合逻辑电路。
4.10 写出如图4.44所示8选1数据选择器的输出函数表达式。如果改用双4选1数据选择器74153来实现逻辑函数Y,试画出其逻辑图。 • 4.12 用一片3线-8线译码器74LS138和与非门实现下列逻辑函数: (1) (2) (3)
4.13 试用4线-16线译码器74LS154和门电路实现下列多输出逻辑函数。图4.45是74LS154的逻辑图,、是控制端,其同时为低电平时,译码器正常工作。A3~A0为地址码输入端,Y15~Y0为低电平译码输出。 • (1) • (2) • 答案:Y1=Σm(2,3,4,7,12,13,15) • Y2=Σm(0,1,5,6,9,11,14) • 4.14 用双4选1 74LS153实现函数: (1) Y1=Σm(0,1,2,6,5,7) (2)Y2 =∑m(0,2,5,7,8,10,13,15); (3) Y3=Σm(1,6,7)
4.19 试用8选1数据选择器设计一个组合逻辑电路,使其输出信号Y与输入信号A、B、C、D的关系满足如图4.47所示的波形图。
4.21 用3线-8线译码器构成的电路, • 当输出Y0~Y7分别被译中时, • 求输入地址码A7~A0的 • 十六进制数取值范围。 • 解:A7A6A5A4A3A2A1A0 • 11100 000 - 11100 111 • ( E0 ~ E7 )H 4.22 用4位比较器7485和4位加法器74283构成电路 • 试分析电路的逻辑功能。 • 答案:YA>B=1, A-B运算; A+B反+1 • YA>B=0, B-A运算 B+A反+1