第3章 组合逻辑电路
第3章 组合逻辑电路 3.1 概 述 3.2 组合逻辑电路的分析 3.3 组合逻辑电路的设计 3.4 加 法 器 3.5 数值比较器 第3章 组合逻辑电路 3.1 概 述 3.2 组合逻辑电路的分析 3.3 组合逻辑电路的设计 3.4 加 法 器 3.5 数值比较器 3.6 编 码 器 3.7 译 码 器 3.8 数据选择器 3.9 数据分配器 3.10 奇偶检测电路 3.11 用中规模集成电路设计一般组合电路 3.12 组合电路中的竞争冒险
3.1 概 述 组合逻辑电路的特点是:输出与输入的关系具有即时性。即电路在任意时刻的输出状态只取决于该时刻的输入状态,而与该时刻前的电路状态无关,这种数字电路称为组合逻辑电路。 研究组合电路的任务有3方面: (1)对已给定的组合电路分析其逻辑功能。 (2) 根据逻辑命题的需要,设计组合电路。 (3) 掌握常用组合单元电路(一些中规模器件)的逻辑功能,选择和应用到工程实际中。
3.2 组合逻辑电路的分析 3.2.1 组合逻辑电路的分析步骤 组合逻辑电路的分析步骤如下: 3.2 组合逻辑电路的分析 3.2.1 组合逻辑电路的分析步骤 组合逻辑电路的分析步骤如下: (1) 由逻辑图写出各输出端的逻辑表达式。方法是从输入到输出(或从输出到输入)逐级写出逻辑表达式。 (2) 如果写出的逻辑表达式不是最简形式,要进行化简或变换,得到最简式。 (3) 根据最简式列出真值表。 (4) 根据真值表或最简式对逻辑电路进行分析,最后确定其功能。 3.2.2 组合逻辑电路的分析举例 【例3.2.1】已知逻辑电路如图3.2.1所示,分析该电路的功能。
3.3 组合逻辑电路的设计 3.3.1 组合逻辑电路的设计步骤 3.3 组合逻辑电路的设计 3.3.1 组合逻辑电路的设计步骤 (1) 对实际问题进行逻辑抽象,并定义输入变量和输出变量。在实际问题中,凡是引起事件发生的条件和原因的物理量应定义为输入变量,凡是表示事件发生结果的物理量应定义为输出变量。 (2) 根据所要实现的逻辑功能列真值表。将输入变量可能出现的所有取值情况和与之对应的输出变量的值一一列出。 (3) 根据真值表求逻辑表达式并化简。根据选用的门电路类型将逻辑表达式变换成所要的形式,比如,若采用与非门实现,则应将逻辑表达式变换为与非-与非表达式。 (4) 根据逻辑表达式画逻辑图。
3.3.2 组合逻辑电路的设计举例 【例3.3.1】已知有3个逻辑变量A,B,C,利用与非门设计一个逻辑电路,判断3个变量中是否有多数个取值为1。 解 ① 定义输入变量和输出变量。A,B,C ,3个变量应为输入变量,设输出变量为Y。当Y=1时,表明A,B,C多数取值为1,否则Y=0。 ②根据题意列真值表,见表3.3.1。 ③ 根据真值表写出逻辑表达式,化简,并将其变换为“与非-与非”表达式。 (3.3.1) ④ 根据逻辑表达式画逻辑图,如图3.3.1所示。
表3.3.1 例3.3.1的真值表 A B C Y 1 图3.3.1 例3.3.1逻辑图
3.4 加 法 器 在数字系统中,尤其是在计算机的数字系统中,二进制加法器是它的基本部件之一。在进行两个二进制数之间的算术运算时,无论是加、减、乘、除,最后都可化作加法运算来实现。能够实现加法运算的电路称为加法器,它是算术运算的基本单元电路。 3.4.1 半加器和全加器 1. 半加器 只考虑两个1位二进制数A和B相加,不考虑低位来的进位数的相加称为半加,实现半加的电路称为半加器。半加器的真值表见表3.4.1。 表3.4.1 半加器的真值表 输 入 输 出 A B S C 1
半加器的逻辑表达式为 半加器的逻辑符号如图3.4.1(b)所示
2. 全加器 除了两个1位二进制数相加以外,还与低位向本位的进位数相加,称之为全加,所构成的电路称为全加器。全加器的真值表见表3.4.2。全加器的逻辑符号如图3.4.2所示。 表3.4.2 全加器的真值表表 输 入 输 出 An Bn Cn-1 Sn Cn 1 1
全加器逻辑符号 全加器的逻辑图
3.4.2 多位加法器 1. 串行进位加法器 若有多位数相加,则可采用并行相加串行进位的方式来完成。如,有两个4位二进制数和相加,可以采用两片内含两个全加器或一片内含4个全加器的集成电路组成,其原理图如图3.4.4所示。 2. 超前进位加法器 为了克服串行加法器运算速度慢的缺点,人们又设计了一种多位数超前进位加法逻辑电路。
3.5 数值比较器 在数字系统中,特别是在计算机中都具有运算功能。一种简单的运算就是比较两个数A和B的大小。数值比较器就是比较2个二进制数A和B的数值关系,以判断其大小的逻辑电路。 3.5.1 1位数值比较器 1位数值比较器方框图如图3.5.2(a)所示,输入变量A,B为两个1位二进制数,输出变量Y(A>B),Y(A=B),Y(A<B)为比较的结果。图3.5.2(b)为逻辑图。根据逻辑图可写出输出变量逻辑表达式。 图3.5.2 1位数值比较器
表3.5.1 1位数值比较器真值表 输 入 输 出 A B Y(A>B) Y(A=B) Y(A<B) 1
将n个如图3.5.2(b)所示1位数值比较器合理连接便可得到n位数值比较器。74LS85为集成4位数值比较器,其方框图如图3.5.3所示。 3.5.2 4位数值比较器 将n个如图3.5.2(b)所示1位数值比较器合理连接便可得到n位数值比较器。74LS85为集成4位数值比较器,其方框图如图3.5.3所示。 图3.5.3 74LS85方框图
3.6 编 码 器 在数字系统中,常常需要将某一信息(输入)变换为某一特定的代码(输出)。一般地讲,用数字或某种文字、符号来表示某一对象或信号的过程,称为编码。具有编码功能的逻辑电路称为编码器。 在数字系统中,是采用若干个二进制码0和1来进行编码的,要表示的信息越多,二进制代码的位数越多。n位二进制代码有2n个状态,可以表示2n个信息。对N个信号进行编码时,应按公式2n≥N来确定需要使用的二进制代码的位数n。 常用的编码器有二进制编码器、优先编码器和二-十进制编码器等。3.6.1 二进制编码器 二进制编码器是用n位二进制数把某种信号编成2n个二进制代码的逻辑电路。现以如图3.6.1所示的8线-3线编码器为例说明其工作原理。
该编码器用3位二进制数分别代表8个信号,3位输出为Y 2、Y 1、Y 0;8个输入信号分别为 图3.6.1 3位二进制编码器
3.6.3 二—十进制编码器 二-十进制编码器是将十进制的10个数码0、1、2、3、4、5、6、7、8、9(或其他十个信息)编成二进制代码的逻辑电路。这种二进制代码又称为二-十进制代码,简称BCD码。二-十进制编码器应当是10线-4线编码器,即有10个输入端,4个输出端,该编码器的真值表见表3.6.3。据此设计该编码器的逻辑图如图3.6.3(a)所示,此电路为输入高电平有效。 表3.6.3 8421BCD编码器真值表 输 入 输出8421BCD码 十进制数 A B C D 1 2 3 4 5 6 7 8 9
3.7 译 码 器 译码是编码的逆过程,译码器的功能是将每个输入的二进制代码译成对应的输出高、低电平信号。 3.7.1 二进制译码器 3.7 译 码 器 译码是编码的逆过程,译码器的功能是将每个输入的二进制代码译成对应的输出高、低电平信号。 3.7.1 二进制译码器 如图3.7.1所示为二进制译码器的方框图,它有n个输入变量(即有n位二进制代码输入),有2n个输出变量,n位代码的每一种取值对应于一个输出变量。 图3.7.1 二进制译码器方框图
3位二进制译码器有3个输入端A2、A1、A0、8个(23)输出端Y 0、Y 1、Y 2、Y 3、Y4、Y5、Y6、Y7,因而称为3线-8线译码器。其真值表见表3.7.1。 表3.7.1 3线-8线译码器真值表 输 入 输 出 A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 1
3.7.2 二—十进制译码器 二-十进制译码器的逻辑功能是将输入BCD码的10个代码译成10个高、低电平输出信号。它有4个输入端,10个输出端。 图3.7.4是二-十进制译码器74LS42的逻辑图。
3.7.3 显示译码器 1. 半导体7段显示器 7段显示器如图3.7.5(a)所示,它有a~g 7个光段,从0到9十个数码将由其中不同的光段组合而成。半导体7段显示器的每个光段都相当于一个发光二极管,如图3.7.5(b)所示。发光二极管与普通二极管一样,具有单向导电性,当外加反向电压时,处于截止状态;当外加正向电压且足够大时,才处于导通状态,而只有当正向电流足够大时才能 发光。 图3.7.5 7段显示器及其驱动电路
发光二极管的驱动电路如图3. 7. 5(c)所示,其中门电路均为集电极开路门(OC门)。在图3. 7 发光二极管的驱动电路如图3.7.5(c)所示,其中门电路均为集电极开路门(OC门)。在图3.7.5(c)中,当门处于导通状态(即输出为低电平)时,发光二极管因正向电压太低而不可能发光;当门处于截止状态(即输出为高电平)时,只要电阻R取值得当,就会有足够大的正向电流流过发光二极管,因而发光,可见该电路为高电平驱动电路。在图3.7.5(d)中,当门处于导通状态(即输出为低电平)时,只要电阻R取值得当,发光二极管就会发光;当门处于截止状态(即输出为高电平)时,发光二极管因正向电压过小不足以使其导通,因而不发光,可见该电路为低电平驱动电路。由以上分析可知,为使发光二极管发光, 图3.7.5(c)和图3.7.5(d)中两个门电路输出的有效电平不同。应当注意,对于确定的7段显示器只能用一种有效电平驱动其光段发光。) 4线/7段译码器及其显示驱动电路 7段显示器译码器的输入为8421BCD码A3A2A1A0,输出为Ya、Yb、Yc、Yd、Ye、Yf、Yg,7个信号分别驱动7段显示器的7个光段,因而也称为4线/7段译码器。 型号为74LS247的4线/7段译码器的方框图如图3.7.6所示。它的输出变量低电平有效且为集电极开路输出,真值表见表3.7.3。
如图3.7.7所示为4线/7段译码器74LS247驱动7段显示器的电路,74LS247的每一个输出端都分别通过一个390Ω电阻接到7段显示器的一个光段上,电阻起限流作用。当输出变量为1时,由于正向电流太小而不足以使光段发光;只有当输出变量为0时,才有足够大的驱动电流使光段发光。由于7段显示器的7个光段的阳极接在一起,因而称其为共阳极7段显示器。另外还有一种半导体7段显示器,它的7个光段的阴极接在一起,称为共阴极显示器。 图3.7.6 74LS247方框图 图3.7.7 74LS247及其显示电路
3.8 数据选择器 数据选择器由地址译码器和多路数字开关组成,它的方框图如图3.8.1所示。它有n个选择输入端(也称为地址输入端),2n个数据输入端,一个数据输出端。数据输入端与选择输入端输入的地址码有一一对应关系,当地址码确定时,输出端就输出与该地址码有对应关系的数据输入端的数据,即将与该地址码有对应关系的数据输入端和输出端相接。 图3.8.1 数据选择器方框图
3.8.1 4选1数据选择器 如图3.8.2所示为4选1数据选择器的示意图,它的功能是根据地址码A1A0从4个数据输入D0、D1、D2、D3中选择一个送到输出端Y。地址译码器的输入A1A0有4种不同的取值00、01、10、11,它的输出C0、C1、C2、C3分别控制S0、S1、S2、S3 4个开关,当A1A0=00时,开关S0倒向Y,使Y=D0;当A1A0=01时,开关S1倒向Y,使Y=D1;当A1A0=10时,开关S2倒向Y,使Y=D2;当A1A0=11时,开关S3倒向Y,使Y=D3。其功能表见表3.8.1。它的逻辑表达式为: 图3.8.2 4选1数据选择器示意图
表3.8.1 四选一数据选择器功能表 A1 A0 Y D0 1 D1 D2 D3 根据式3.8.1可以画出逻辑图如图3.8.3(a)所示,其方框图如图3.8.3(b)所示。由于数据选择器是在多个数据输入中选择一个作为输出,因此也称为多路选择器或多路开关。 图3.8.3 4选1数据选择器逻辑图及方框图
3.8.2 集成数据选择器 1. 双4选1数据选择器 双4选1数据选择器是将2个四选一数据选择器做在一个硅片上,其地址输入端公用,各自有4个数据输入端和一个输出端。74LS153是典型的双4选1数据选择器,其逻辑图如图3.8.4(a)所示,它包含2个完全相同的四选一数据选择器,通过给定不同的地址代码(即的状态),即可从4个输入数据中选出所要的1个,并送至输出端Y。图中的和是附加控制端,用于控制电路工作状态和扩展功能。图3.8.4(b)为74LS153的方 框图。
图3.8.4 74LS153的逻辑图及方框图 表3.8.2 双4选1数据选择器功能表 A1 A0 Y1 Y2 D10 D20 1 D11 表3.8.2 双4选1数据选择器功能表 A1 A0 Y1 Y2 D10 D20 1 D11 D21 D12 D22 D13 D23
2. 8选1数据选择器 74LS151是8选1数据选择器,其功能表见表3.8.3,其方框图如图3.8.5所示,为选通端,低电平有效,Y与是一对互补的输出。Y的逻辑表达式为: 表3.8.3 8选1数据选择器功能表 A2 A1 A0 Y D0 1 D1 D2 D3 D4 D5 D6 D7 图3.8.5 8选1数据选择器方框图
3.9 数据分配器 数据分配器的功能是将一个输入数据分时传送到多个输出端输出,也就是一路输入,多路输出。 3.9 数据分配器 数据分配器的功能是将一个输入数据分时传送到多个输出端输出,也就是一路输入,多路输出。 图3.9.1(a)是一个1路—4路输出数据分配器的逻辑图。图中,D是数据输入端,A1和A0是控制端,Y 3~Y 0是4个输出端。图3.9.1(b)是其方框图,图中DX是总限定符。 图3.9.1 1路—4路输出数据分配器的逻辑图及方框图
由逻辑图可写出逻辑式: 表3.9.1 1路—4路分配器的功能表 控 制 输 出 A1 A0 Y3 Y2 Y1 Y0 D 1
3.10 奇偶检测电路 3.10.1 奇偶检测原理 在数字系统中,代码在传送,存储过程中,由于线路本身的缺陷、传输线上的噪声、干扰或其他偶然因素的影响,会使代码出现差错,将1变成0或0变成1。 为了检查代码是否出错,通常采用一种方法叫做奇偶校验法,它是奇校验和偶校验的通称。该方法是在由多位二进制代码组成的信息位之外,再增加一位附加位0或1,构成编码系统。该附加位称为奇(或偶)校验位。如果信息位和校验位中1的总个数为奇数,称为奇校验;反之,称为偶校验。如图3.10.1所示是一个典型的奇偶校验码传输和检测系统。 图3.10.1 二进制数码传输和检测系统
图3.10.1 二进制数码传输和检测系统 表3.10.1 奇偶校验码 奇校验码 偶校验码 信息位 校验位 1
3.11 用中规模集成电路设计一般组合电路 随着电子工业的发展,集成电路的集成度越来越高,性能可靠,成本低廉。因此,在构成数字系统时,设计者更多地使用中规模集成电路(MSI)或大规模集成电路(LSI),以保证系统具有体积小、可靠性高等优点。用MSI进行组合电路设计时,其设计方法与3.3.1所介绍的大致相同,其最简的标准是所用集成模块的数目最少,品种最少,集成模块之间的连线最少。本节通过具体的实例分别讲述利用译码器、数据选择器和全加器设计一般组合电路的方法。 3.11.1 利用译码器设计一般组合电路 3.11.2 利用数据选择器设计一般组合电路 3.11.3 利用4位全加器设计一般组合电路
3.12 组合电路中的竞争冒险 前面分析组合逻辑电路时,都是考虑电路在稳态时的工作状况,并未考虑门电路的延迟时间对电路产生的影响。实际上,从信号输入到稳定输出需要一定的时间。由于从输入到输出存在不同的通路,而这些通路上门的级数不同,或者门电路平均延迟时间有差异,从而使信号经不同通路传输到输出级所需的时间不同,可能会使电路输出干扰脉冲 (电压毛刺),造成系统中某些环节误动作。通常把这种现象称为竞争冒险。 3.12.1 竞争冒险的产生原因 在如图3.12.1(a)所示电路中,与门G2的输入是A和两个互补信号。由于G1的延迟,的下降沿要滞后于A的上升沿,因此在很短的时间间隔内,G2的两个输入端都会出现高电平,使它的输出出现一个高电平窄脉冲。按逻辑设计要求,它是不应出现的干扰脉冲,如图3.12.1(b)所示。与门G2的2个输入信号分别由G1和A端两个路径在不同时刻到达的现象,即称为竞争,由此产生输出干扰脉冲的现象即称为冒险。
图3.12.1 产生正跳变脉冲的竞争冒险 下面进一步分析组合逻辑电路产生竞争冒险的原因。如图3.12.2(a)所示2选1数据选择器的逻辑表达式为
图3.12.2 产生负跳变脉冲的竞争冒险 A为地址变量,D0、D1为数据输入端。当D0=D1=1时,A由逻辑高电平变为逻辑低电平,Y应保持不变。但是,由于门电路具有传输延迟时间,所以当A由高电平变为低电平时,与门G2的输出(AD1)需经过一定时间才会从高电平变为低电平;
反相器G1的输出( )需经过一定时间才会从低电平变为高电平,并传输到与门G3,G3的输出( )又需要经过一定时间才会从低电平变为高电平。也就是说,对于或门G4的两个输入信号,当来自G2的信号已从高电平变为低电平时,而来G3的信号还未从低电平变为高电平,因此,在这段时间里或门G4的两个输入信号均为低电平,使得输出Y出现一个低电平窄脉冲,如图3.12.2(b)所示,出现了竞争冒险现象。 3.12.2 竞争冒险的判断与识别 1. 代数法判断 在输入变量每次只有一个改变状态的简单情况下,可以通过逻辑函数式判断组合逻辑电路中是否有竞争冒险存在。假若输出端门电路的两个输入信号A和 是经过不同的传输通路而来的,那么当变量A的状态发生突变时,输出端必然存在竞争冒险。因此,只要输出函数在一定条件下能简化成 或 就可判定存在竞争冒险。
【例3.12.1】试判断如图3.12.3所示电路是否存在竞争冒险。已知输入变量每次只有一个改变状态。 图3.12.3 例3.12.1的电路 解:在图3.12.3 (a)电路中,当B=C=1时,输出逻辑函数式为 所以图3.12.3(a)电路中存在竞争冒险。 在图3.12.3(b)电路中,当A=C=0时,输出逻辑函数式为 所以图3.12.3(b)电路中存在竞争冒险。
2. 用卡诺图法判断 凡是函数卡诺图中存在相切而不相交的方格群的逻辑函数都存在竞争冒险现象。 例3.12.1中的两个电路,已经判断其存在竞争冒险现象,观察它们的卡诺图,可以看到它们都存在着相切而不相交的方格群的。如图3.12.4所示。 图3.12.4 与例3.12.1的两个电路相对应的卡诺图 3. 实验法判断 4. 使用计算机辅助分析手段判断
3.12.3 消除竞争冒险的方法 1. 发现并消掉互补变量 例如,函数式 ,在B=C=0时, 若直接根据这个逻辑表达式组成逻辑电路,则可能出现竞争冒险现象。 可以将该式变换为 这样就把 消掉。 根据这个表达式组成的逻辑电路就不会出现竞争冒险现象。 2. 接滤波电容 由于竞争冒险现象所产生的干扰脉冲非常窄,所以可在输出端接一个容量很小的滤波电容来加以消除,其容量为4~20pF之间。如图3.12.5(a)所示,即在图3.12.2(a)所示电路的输出端并联电容C。由于或门G4存在一输出电阻R0,致使输出波形上升沿和下降沿变化比较缓慢,对于很窄的负跳变脉冲起到滤波的作用,因而避免了在输出端出现竞争冒险现象,如图3.12.5(b)所示。
图3.12.5 并联电容消去竞争冒险 3. 修改逻辑设计,增加冗余项 分析如图3.12.2(a)所示2选1数据选择器可知, 此时,当A的状态发生变化时,将产生竞争冒险现象。根据如图3.12.6所示Y的卡诺图,Y 可以写成
增加D 1D 0这一项后,当D 1=D 0=1时,无论A如何变化,输出Y始终为1,因此不再有干扰脉冲出现,消除了竞争冒险现象。因为从逻辑上看D1D0项对于函数Y是多余的,所以称之为冗余项。根据式(3.12.1)画出逻辑图如图3.12.7所示。 图3.12.6 2选1数据选择器的卡诺图 图3.12.7 修改后的2选1数据选择器