1、数字电路逻辑设计第四章第四章 组合逻辑电路组合逻辑电路 完成逻辑功能的电路称为逻辑电路,它可以分为两大完成逻辑功能的电路称为逻辑电路,它可以分为两大类:类:组合逻辑电路组合逻辑电路和和时序逻辑电路时序逻辑电路。 组合逻辑电路的特点是没有记忆,当前的输出只与当组合逻辑电路的特点是没有记忆,当前的输出只与当前的输入有关,与以前的历史无关前的输入有关,与以前的历史无关(相比之下,时序电路(相比之下,时序电路当前的状态就与现在和过去都有关)。当前的状态就与现在和过去都有关)。 我们有时为解决逻辑问题,要设计一种专用的组合电我们有时为解决逻辑问题,要设计一种专用的组合电路,对一些被广泛使用的经典组合电路
2、我们可以采用拿来路,对一些被广泛使用的经典组合电路我们可以采用拿来主义,不必重新设计,主义,不必重新设计, 如:编码器、译码器、数据选择如:编码器、译码器、数据选择器器 / 分配器等。分配器等。 本章分为两大部分:本章分为两大部分: 对给定电路对给定电路分析分析,对实现逻辑关系,对实现逻辑关系设计设计。 第一节第一节 组合逻辑电路的分析组合逻辑电路的分析 组合逻辑电路的分析,就是将电路图上的连接,转化为易于归纳的形式,进而了解电路的功能。 分析步骤如下:分析步骤如下: (1)从输入向输出逐级推导,得到最终的输出表达式。)从输入向输出逐级推导,得到最终的输出表达式。 (在这个过程中,有时可以设几
3、个中间变量)(在这个过程中,有时可以设几个中间变量) (2)表达式化简。)表达式化简。 (3)由逻辑表达式列出真值表。)由逻辑表达式列出真值表。 (4)由真值表(简单逻辑可直接由表达式)概括出逻)由真值表(简单逻辑可直接由表达式)概括出逻辑功能。辑功能。 (这一步较难)(这一步较难) 例如:分析下列电路的逻辑功能。例如:分析下列电路的逻辑功能。 逻辑电路分析举例:逻辑电路分析举例: (1)逐级推导表达式)逐级推导表达式L = A/B/C + /AB/C + /A/BC + ABC(2)表达式化简(本例已是最简)。)表达式化简(本例已是最简)。(3)列出真值表。)列出真值表。 三三 位位 奇奇
4、数数 检检 验验 器器 (4)经过总结归纳:输入中有奇数个)经过总结归纳:输入中有奇数个1时,输出为时,输出为1 以下我们结合一些常用组合逻辑电路,边学习典型以下我们结合一些常用组合逻辑电路,边学习典型电路,边熟悉分析过程。电路,边熟悉分析过程。 一、全加器一、全加器 所谓全加器,是指具有从低位进位、向高位进位功所谓全加器,是指具有从低位进位、向高位进位功能的加法器。如果不考虑低位进位,则称位半加器。能的加法器。如果不考虑低位进位,则称位半加器。 ( 与全加器对应的还有全减器、半减器。)与全加器对应的还有全减器、半减器。) 下面我们分析一位全加器电路。下面我们分析一位全加器电路。(1)为便于分
5、析,设中间变量)为便于分析,设中间变量 、 和和 (2) 列出真值表列出真值表 规律:输入有奇数个规律:输入有奇数个1时,时,F=1;输入有两个或以上;输入有两个或以上1,CO=1。 (3)归纳逻辑功能)归纳逻辑功能 归纳功能是比较难的,需要积累经验。本例第一步要归纳功能是比较难的,需要积累经验。本例第一步要总结出奇数个总结出奇数个1,两个以上,两个以上1这样的规律,然后再联想出全这样的规律,然后再联想出全加器:加器:A和和B是被加数、加数,是被加数、加数,CI是低位进位,是低位进位,F是本位是本位的和,的和,CO是向高位的进位。是向高位的进位。 如果不事先说出分析的是全加器,可能不一定会想如
6、果不事先说出分析的是全加器,可能不一定会想到是加法器这类的东西。目前,我们要求能够从真值表到是加法器这类的东西。目前,我们要求能够从真值表归纳出表面的逻辑规律,如:输入有奇数个归纳出表面的逻辑规律,如:输入有奇数个 1 时,输出时,输出为为1。 与全加器对应的还有与全加器对应的还有全减器全减器,即带低位借位,向高位,即带低位借位,向高位借位的减法器。实验课将要求设计。借位的减法器。实验课将要求设计。 (4)多位加法器)多位加法器 由多个一位全加器可以构成多位加法器。构成的方法由多个一位全加器可以构成多位加法器。构成的方法有两种:有两种: A、逐位进位加法器、逐位进位加法器 逐位进位加法器各位之
7、间采用串联结构,特点是:逐位进位加法器各位之间采用串联结构,特点是: 电路简单,工作速度慢!电路简单,工作速度慢! B、超前进位加法器、超前进位加法器 从低位向高位逐次进位,是我们熟悉的计算方法,从低位向高位逐次进位,是我们熟悉的计算方法,它的速度慢。其实,经过公式推导(见书它的速度慢。其实,经过公式推导(见书P222)我们)我们发现:发现: 每一位的进位值只与被加数、加数及最低位进位每一位的进位值只与被加数、加数及最低位进位有关。有关。而被加数、加数及最低位进位而被加数、加数及最低位进位在计算开始前就在计算开始前就确定了确定了,因此,因此可以同步地计算可以同步地计算各位的最终取值,大大各位的
8、最终取值,大大缩短计算时间。缩短计算时间。 超前进位加法器的特点是:超前进位加法器的特点是:电路复杂,速度很快!电路复杂,速度很快! 74XX283是是4位超前进位加法器集成电路。位超前进位加法器集成电路。 4位超前进位加法器的内部逻辑图如下:位超前进位加法器的内部逻辑图如下:由图可见:由图可见: 电路较复杂,这是电路较复杂,这是为追求速度付出的代价。为追求速度付出的代价。 其实电路很有规律,其实电路很有规律,每位都有相同的四级。每位都有相同的四级。 由于每位只需考虑由于每位只需考虑本级和低位各级,所本级和低位各级,所以位数越高,电路越以位数越高,电路越繁。繁。 位数增加,电路复位数增加,电路
9、复杂,但延迟时间不增杂,但延迟时间不增加。这是超前进位的加。这是超前进位的特点。特点。 (全加器的逻辑符号见书)(全加器的逻辑符号见书) 二、编码器二、编码器 把二进制码按一定规律编排,为每组代码赋予特定把二进制码按一定规律编排,为每组代码赋予特定的含义,这一过程叫编码。具有编码功能的电路叫编码器。的含义,这一过程叫编码。具有编码功能的电路叫编码器。 例如:例如:8421码就是一种编码,它按自然二进制的取值码就是一种编码,它按自然二进制的取值为为“0”“9”阿拉伯数字编码。阿拉伯数字编码。 又如:键盘每个键的键值码,又如:键盘每个键的键值码,ASCII码等。码等。 下面我们要讲的编码器是下面我
10、们要讲的编码器是8线线3线优先编码器。线优先编码器。它有它有8个输入端,有三个编码输出,还有编码允许端,辅个输入端,有三个编码输出,还有编码允许端,辅助输出端。助输出端。 首先看一下逻辑电路图:首先看一下逻辑电路图: (1)写出表达式:)写出表达式: 为简化分析,我们先把为简化分析,我们先把 ST 输入分析后排除。输入分析后排除。ST 信信号高电平时起决定性作用,将所有门电路封锁,所有输号高电平时起决定性作用,将所有门电路封锁,所有输出全为出全为 1 。当。当ST= 0 时,对电路没有影响,正常工作。时,对电路没有影响,正常工作。 下面我们假设允许芯片工作,下面我们假设允许芯片工作,ST =
11、0 ,ST=1。由图由图 Y2 = IN7 + IN6 + IN5 +IN4 Y2 = IN7 IN6 IN5 IN4 Y1 = IN7 IN6 (IN5+IN4+IN3) (IN5+IN4+IN2) Y0 =IN7 (IN6+IN5) (IN6+IN4+IN3) (IN6+ IN4 + IN2 + IN1) 从表达式看不出任何规律,还要作真值表。从表达式看不出任何规律,还要作真值表。(2)列出真值表)列出真值表(3)分析、总结、归纳)分析、总结、归纳 从输入分析:从输入分析: /ST为为1,任何输入均不被编码;,任何输入均不被编码;/ST为为0,允许编码。,允许编码。 输入低电平有效,同时有
12、多个低电平输入时,对最高输入低电平有效,同时有多个低电平输入时,对最高下标号输入编码。下标号输入编码。 从输出分析:从输出分析: 允许编码时,允许编码时,Y0、Y1、Y2给出编码的三位二进制值。给出编码的三位二进制值。 YEX=YS=1, 编码器不工作。编码器不工作。 YEX=1,YS=0, 编码器工作,但无有效输入。编码器工作,但无有效输入。 YEX=0,YS=1, 编码器工作,已对有效输入编码。编码器工作,已对有效输入编码。 即即YEX无编码为无编码为1,有编码为,有编码为0。(。(作为扩展位作为扩展位) YS有编码或禁止编码时为有编码或禁止编码时为1 ,允许编码但无编码时,允许编码但无编
13、码时为为0 。(作为对下级编码器的。(作为对下级编码器的允许控制允许控制)(4)逻辑符号(注意信号极性的表示方法)逻辑符号(注意信号极性的表示方法)(5)扩展举例)扩展举例由两由两片片8线线3线编码器扩展为线编码器扩展为16线线4线编码器线编码器应用举例:应用举例: 一个呼叫请求控制器,有一个呼叫请求控制器,有N条输入线,连接条输入线,连接N个按键,请求有优先级。有唯一按键时,输出其个按键,请求有优先级。有唯一按键时,输出其对应编码;有多键同时按下时,输出优先级最高对应编码;有多键同时按下时,输出优先级最高者的编码。者的编码。 使用一个优先编码器,就可以满足这一电路。使用一个优先编码器,就可以
14、满足这一电路。三、译码器三、译码器 译码器的工作过程与编码器相反,它将二进制编码译码器的工作过程与编码器相反,它将二进制编码翻译成不同的硬件输出组合。翻译成不同的硬件输出组合。 例如:例如:一个一个2线线4线译码器线译码器电路如图:电路如图: (1)写出表达式)写出表达式 太简单,不写了太简单,不写了 (2)列出真值表)列出真值表 (3)总结、归纳)总结、归纳 通常通常 M 线线N线二进制译码器,满足线二进制译码器,满足 N=2M关系,关系,M位二进制码输入,位二进制码输入,N条译码线输出。另有若干译码允条译码线输出。另有若干译码允许端(高或低电平有效)。许端(高或低电平有效)。 当当任一允许
15、端无效任一允许端无效时,译码器时,译码器不工作不工作,输出线,输出线全为高全为高。 当所有允许端当所有允许端均有效均有效时,译码器时,译码器工作工作:对任一个二进:对任一个二进制码输入,有制码输入,有唯一的一条输出线为低电平唯一的一条输出线为低电平,其他输出端其他输出端均为高电平均为高电平。(输出线下标号。(输出线下标号=二进制码值)二进制码值) 按照这一原则,按照这一原则,3线线8线二进制译码器,线二进制译码器,4线线16线线二进制译码器就很容易理解了。另外还有一些二进制译码器就很容易理解了。另外还有一些 BCD 译码译码器,如器,如4线线10线译码器。线译码器。 74XX1383线线8线译
16、码器逻辑符号线译码器逻辑符号 译码器应用举例:译码器应用举例: 8031单片机有单片机有16条地址线(条地址线(A0A15),可以寻址),可以寻址64KB内存空间。现有内存空间。现有 8 片存储芯片,每片容量片存储芯片,每片容量8KB,正,正好好64KB。 如果如果CPU-8031要使用这要使用这 8 片存储器,当然要一片一片存储器,当然要一片一片地按顺序访问,低片地按顺序访问,低 8KB、次低、次低 8KB、高、高 8KB。硬件上要做一下分配硬件上要做一下分配译码。译码。 我们通常用我们通常用74LS138 3线线8线译码器将这线译码器将这 64KB 空间分为空间分为 8 份,每份对应一条译
17、码输出,作为份,每份对应一条译码输出,作为“片选片选”信号,如图所示。信号,如图所示。单片机地址译码电路单片机地址译码电路 译码器作为数据分配器译码器作为数据分配器 所谓数据分配器是指输入端有一组数据,输出端有所谓数据分配器是指输入端有一组数据,输出端有多个,通过选择可以使输入与任一个输出端多个,通过选择可以使输入与任一个输出端逻辑相连逻辑相连。 四、数值比较器四、数值比较器 比较器的作用是给出两个数据的大小信息比较器的作用是给出两个数据的大小信息:大于、大于、小于或等于小于或等于。(。(模拟比较器只有大于、小于模拟比较器只有大于、小于) 一位数值比较器的电路如图:一位数值比较器的电路如图:(
18、1)写出表达式)写出表达式 FAB = A AB = AB FA=B = AAB + BAB = AB + AB = A B FAB = BAB = A B(2)列出真值表)列出真值表(3)归纳)归纳 A=1 B=0 大于大于 A=0 B=1 小于小于 A=1 B=1 或或 A=0 B=0 等于等于 上述一位比较器是组成多位比较器的基础,可以用上述一位比较器是组成多位比较器的基础,可以用它构成任意位比较器。它构成任意位比较器。 多位比较器的比较规律是从高位开始,出现不等即多位比较器的比较规律是从高位开始,出现不等即可知谁大谁小,如果所有位均相等,则两数相等。可知谁大谁小,如果所有位均相等,则两
19、数相等。 书中举例说明书中举例说明4位数值并行比较器。我们对它进行简位数值并行比较器。我们对它进行简要的分析:要的分析:A=(A3A2A1A0),),B=(B3B2B1B0) 相等:相等: P0 =A0 B0 P1= A1 B1 A=B P2 =A2 B2 P3= A3 B3 同或者,相同则同或者,相同则1。 FA=B =P0 P1 P2 P3 都相同者,相等!都相同者,相等! 小于小于 A B 如果高位相等,本位如果高位相等,本位Ai Bi,则,则 A B。 P4=A3 B3 P5=(A3 B3)A2 B2 = P3 A2 B2同理同理 P6 = P3 P2 A1 B1 P7 = P3 P2
20、 P1 A0 B0 如果如果P4、P5、P6 和和 P7 有为有为 1 者,则者,则A B 即:即: FA B 如果高位相等,本位如果高位相等,本位Ai Bi,则,则 A B。 可以推导出可以推导出 P15、P14、P13 和和 P12。 FAB = P15 + P14 + P13 + P12 注意书中推导有误注意书中推导有误 按书上的推导逻辑,当按书上的推导逻辑,当A=B=0时,大于、小于和等时,大于、小于和等于都为真,自相矛盾。于都为真,自相矛盾。 这提醒我们分析问题考虑要全面,不能想当然。为这提醒我们分析问题考虑要全面,不能想当然。为避免出错,设计之后要检验。避免出错,设计之后要检验。
21、比较器比较器逻辑符号逻辑符号 五、数据选择器五、数据选择器 前面说过的数据分配器是只有一个输入,多个输出前面说过的数据分配器是只有一个输入,多个输出(一到多)。数据选择器与之相反,是多到一。(一到多)。数据选择器与之相反,是多到一。如如 8 选选 1 数据选择器数据选择器 在数据选择器内在数据选择器内部可采用各种电路部可采用各种电路(如传输门,与或逻(如传输门,与或逻辑)分别建立每位输辑)分别建立每位输入数据入数据D i与输出与输出Y的的连接,连接, 由选择输入由选择输入A0、A1、A2 等决定等决定当前哪一个输入可以当前哪一个输入可以输出。输出。数据选择器的扩展数据选择器的扩展 (由(由8选
22、选1扩展为扩展为32选选1)第一种扩展方法第一种扩展方法第二种扩展方法第二种扩展方法六、奇偶检验六、奇偶检验/产生电路(自学)产生电路(自学) 奇偶校验电路是数字电路中容错的一种基本方法,奇偶校验电路是数字电路中容错的一种基本方法,在内存校验,串行通讯等方面得到广泛应用。也有奇在内存校验,串行通讯等方面得到广泛应用。也有奇偶检验器偶检验器/发生器专用芯片。发生器专用芯片。 第二节第二节 组合逻辑电路设计组合逻辑电路设计 根据功能要求,实现具体电路设计,本节分为根据功能要求,实现具体电路设计,本节分为用门电路用门电路设计和设计和用中规模功能器件用中规模功能器件设计。设计。 一、采用门电路设计一、
23、采用门电路设计 1、 一般设计方法一般设计方法 设计过程与分析过程正好相反,其步骤如下:设计过程与分析过程正好相反,其步骤如下: (1)搞清功能要求,明确因果关系,设置输入、输)搞清功能要求,明确因果关系,设置输入、输出变量。出变量。 (2)列出真值表。)列出真值表。 (3)写出逻辑表达式。)写出逻辑表达式。 (4)化简逻辑表达式。)化简逻辑表达式。 (5)表达式变换(根据对使用器件的要求)。)表达式变换(根据对使用器件的要求)。 (6)画出逻辑电路图。)画出逻辑电路图。 例题:例题:火灾报警系统,有三种探测器:烟感、温火灾报警系统,有三种探测器:烟感、温感和光感。为防止误报,规定只有两种或两
24、种以上发出感和光感。为防止误报,规定只有两种或两种以上发出报警才确认,并启动声光报警设备。报警才确认,并启动声光报警设备。(用与非门实现)(用与非门实现) 解:解:(1)根据题意,设探头为输入,分别用)根据题意,设探头为输入,分别用A、B、C代表代表烟感、温感和光感三种探头。取值为烟感、温感和光感三种探头。取值为 1=报警报警 0=无报警无报警 设报警器输出为设报警器输出为 F 1=启动设备启动设备 0=关闭设备关闭设备(2) 列出真值表列出真值表 (3)写出逻辑表达式)写出逻辑表达式 F = ABC + ABC + ABC + ABC (4)化简表达式)化简表达式 F = AB + AC +
25、 BC (5)因为指定用与非门)因为指定用与非门 实现,所以要对表达式进行实现,所以要对表达式进行 变换。变换。 F = AB + AC + BC = AB AC BC (6)画出电路图)画出电路图 也可以写或与式,再也可以写或与式,再两次求反,用或非门实现两次求反,用或非门实现 2、输入只有原变量、使用与非门的设计、输入只有原变量、使用与非门的设计 所谓输入只有原变量,没有反变量是指第一级的输入所谓输入只有原变量,没有反变量是指第一级的输入信号只能由信号只能由A、B、C、D等组成,不能出现等组成,不能出现 A B C D等。等。 要解决这个问题似乎很简单:将所有的反变量都加要解决这个问题似乎
26、很简单:将所有的反变量都加一个反相器。一个反相器。 但这样简单处理的结果是门太多,为了获得最佳设但这样简单处理的结果是门太多,为了获得最佳设计,我们可以通过表达式变换,用尽量少的电路满足只计,我们可以通过表达式变换,用尽量少的电路满足只有原变量的要求。有原变量的要求。 例如:在只有原变量输入的条件下,实现逻辑函数例如:在只有原变量输入的条件下,实现逻辑函数 F(A,B,C,D)= m (4,5,6,7,8,9,10,11,12,13,14) 解:解: 用卡诺图化简用卡诺图化简 F = A/B +/AB + B/C + A/D两次求反:两次求反: F = A/B +/AB + B/C + A/D
27、 = A/B /AB B/C A/D 用反相器解决用反相器解决只有原变量问题,只有原变量问题,不用动脑筋,但增不用动脑筋,但增加了四个门。加了四个门。 如果将表达式进行如果将表达式进行变换,可以简化电路。变换,可以简化电路。F=A/B + /AB + B/C + A/D =A(/B+/D)+ B(/C+/A) =A BD + B AC再两次求反再两次求反F= A BD B AC经过表达式变换,带经过表达式变换,带“非号非号”的项合并了,逻辑门也减少的项合并了,逻辑门也减少了。如右图了。如右图 有时,为了减少带有时,为了减少带“非号非号”的项,还可以考虑利用的项,还可以考虑利用多余项,寻求进一步
28、化简的可能。(当然,不一定都能多余项,寻求进一步化简的可能。(当然,不一定都能再简化)再简化)F = AB + AB + BC + AD = AB + AB + BC + AD + BD + AC =A(B+C+D)+ B(A+C+D) =A BCD + B ACD =A ABCD + B ABCD 两次求反两次求反F = A ABCD B ABCD 总结上述简化过程,我们可以发现:总结上述简化过程,我们可以发现:电路越来越简电路越来越简单了,但所需级数没变:三级。单了,但所需级数没变:三级。 输入级是为了解决输入级是为了解决“非号非号”而存在的,带而存在的,带“非号非号”的项(称为尾部因子)
29、越多,输入级越复杂,因此我们要的项(称为尾部因子)越多,输入级越复杂,因此我们要尽量减少带尽量减少带“非号非号”的项。的项。 中间级的门数与表达式乘积项的多少有关,应尽量中间级的门数与表达式乘积项的多少有关,应尽量减少乘积项个数。减少乘积项个数。 下面我们归纳一下在只有原变量,没有反变量输入的下面我们归纳一下在只有原变量,没有反变量输入的条件下,用与非门实现逻辑函数时设计步骤:条件下,用与非门实现逻辑函数时设计步骤: 第一步:用卡诺图化简,得到最简与第一步:用卡诺图化简,得到最简与或式。或式。 第二步:寻找所有的多余项,将可以用来实现合并尾第二步:寻找所有的多余项,将可以用来实现合并尾部因子者
30、加入(无此可能者不要)。部因子者加入(无此可能者不要)。 如:如:F= AB + AC +( BD + BC)=AC + B ACD 加入不能简化加入不能简化 第三步:尾部因子变换第三步:尾部因子变换 如如 A BCD = A ABCD 第四步:两次求反,得与非第四步:两次求反,得与非与非表达式。与非表达式。 第五步:画出逻辑图。第五步:画出逻辑图。 (书上例题,自己看看)(书上例题,自己看看)3、 如果规定使用如果规定使用“或非门或非门”实现逻辑函数,也要求输入实现逻辑函数,也要求输入只有原变量,没有反变量,怎么办?只有原变量,没有反变量,怎么办? 核心方法还是与非门的方法,只是在开头和结尾
31、时,核心方法还是与非门的方法,只是在开头和结尾时,各加一个对偶变换。即:各加一个对偶变换。即: 由由 F 求求 F ,再求,再求F*。 对对 F* 按与非门实现方法设计,得到与非按与非门实现方法设计,得到与非与非式。与非式。 再求对偶,得到或非再求对偶,得到或非或非式。或非式。 (自学书上例题)(自学书上例题)注注 F= m(F存在项);存在项);F= m(F不存在项);不存在项); F*= m(2n -1 - F不存在项)不存在项) 4、设计举例、设计举例 例例5-5 设计一个设计一个4位二进制代码转换为格雷码电路。位二进制代码转换为格雷码电路。 这个题有四个输入,四个输出。我们根据真值表,
32、分这个题有四个输入,四个输出。我们根据真值表,分别列出每个输出的卡诺图,如同做了四个单输出的题。别列出每个输出的卡诺图,如同做了四个单输出的题。 例例5-6 设计设计 8421 BCD 七段译码电路。七段译码电路。解:解:七段显示我们十分熟悉,但显示数字的大小与数码七段显示我们十分熟悉,但显示数字的大小与数码 管的亮灭没有算法规律,因此我们要为它们建立一管的亮灭没有算法规律,因此我们要为它们建立一 个联系,即译码电路。个联系,即译码电路。 根据显示数据和显示段的关系,列出真值表。根据显示数据和显示段的关系,列出真值表。由真值表可知,这是共阳的由真值表可知,这是共阳的LED显示块显示块或或加反相
33、驱动。加反相驱动。做出卡诺图做出卡诺图 多输出电路多输出电路 要综合考虑,要综合考虑, 每个输出都每个输出都 最简未必整最简未必整 体最佳。体最佳。 电路图见书电路图见书显示器件的驱动显示器件的驱动 反相驱动反相驱动通用七段译码器芯片举例通用七段译码器芯片举例 74LS48 通用的七段译码器,除完成由二进制数据到显示码通用的七段译码器,除完成由二进制数据到显示码的转换之外,还提供了一些辅助功能,如:的转换之外,还提供了一些辅助功能,如: 消隐(消隐(BI):):可强行灭掉所有显示。可强行灭掉所有显示。 灯测试(灯测试(LT):):可强行使所有显示段都发亮,检可强行使所有显示段都发亮,检查有没有
34、亮不了的。查有没有亮不了的。 灭零输入(灭零输入(RBI):):当本位数值为当本位数值为0时,是显示时,是显示0还还是显示是显示“黑黑”,由灭零输入决定。,由灭零输入决定。 灭零输出(灭零输出(RBO):):当本位数值为当本位数值为0,灭零输入为,灭零输入为0,且不进行灯测试时,且不进行灯测试时,RBO=0 灭零输入和灭零输出是配合使用的,目的是突出有灭零输入和灭零输出是配合使用的,目的是突出有效信息,去掉无用信息。效信息,去掉无用信息。 00123 . 45600 二、采用中规模集成器件实现组合逻辑二、采用中规模集成器件实现组合逻辑 前面我们学习了几种中规模的器件,如译码器、数据前面我们学习
35、了几种中规模的器件,如译码器、数据选择器等,它们本身是为实现某种逻辑功能而设计的,但选择器等,它们本身是为实现某种逻辑功能而设计的,但由于它们的一些特点,我们也可以用它们来实现任意逻辑由于它们的一些特点,我们也可以用它们来实现任意逻辑函数。函数。 逻辑函数的一种最基本的形式就是最小项表达式,任逻辑函数的一种最基本的形式就是最小项表达式,任一逻辑函数都可以表示为若干最小项之和。一逻辑函数都可以表示为若干最小项之和。 如果有一种硬件电路,相当于最小项加法器,并且可如果有一种硬件电路,相当于最小项加法器,并且可以任意选择加数、被加数们,它就可以称为以任意选择加数、被加数们,它就可以称为逻辑函数生成逻
36、辑函数生成器。器。数据选择器就具有这种功能。数据选择器就具有这种功能。 下面我们分别介绍用数据选择器和译码器实现逻辑函下面我们分别介绍用数据选择器和译码器实现逻辑函数的方法。数的方法。 1、用、用 2n选选1 数据选择器实现数据选择器实现 n 变量逻辑函数变量逻辑函数 我们知道,我们知道,8 选选 1 数据选择器的输出表达式为:数据选择器的输出表达式为:Y = A2A1A0 D0 + A2A1A0 D1 + A2A1A0 D2 + A2A1A0 D3 + A2A1A0 D4 + A2A1A0 D5 + A2A1A0 D6 + A2A1A0 D7 由表达式我们可以发现,数据选择器就是一个大加法由
37、表达式我们可以发现,数据选择器就是一个大加法器,器,D0 D7可以分别控制可以分别控制 8 个最小项的存在,设置个最小项的存在,设置D0 D7,我们就可以构造任意逻辑函数。我们就可以构造任意逻辑函数。 例如:例如: 用数据选择器实现下列逻辑函数:用数据选择器实现下列逻辑函数: F(A,B,C)= m(1,4,7) 解:解:因该函数包含三个最小项,使其对应的三个因该函数包含三个最小项,使其对应的三个“存在存在 开关开关”设置为设置为 1 ,即,即 D1=D4=D7=1(高电平)。(高电平)。 其他开关为其他开关为0, 即即 D0=D2=D3=D5=D6=0 (低电平)(低电平)电路如图:电路如图
38、: 8 选选 1 数据选择器有数据选择器有 3 个选择输入端,可以实现个选择输入端,可以实现3 变变量逻辑函数。量逻辑函数。 如果逻辑函数的变量数为如果逻辑函数的变量数为 2 个,则可以将高位输入端个,则可以将高位输入端 A2接地,数据端只用接地,数据端只用D0 D3。 如果逻辑函数的变量数为如果逻辑函数的变量数为 4 个,又该怎么办呢?个,又该怎么办呢? 2、输入变量数多于选择器输入端时的设计、输入变量数多于选择器输入端时的设计 当输入变量数多于选择器输入端时,有两种方法:当输入变量数多于选择器输入端时,有两种方法: (1)扩展法:)扩展法:先将选择器扩展,变成更多输入端的先将选择器扩展,变
39、成更多输入端的选择器以满足要求。选择器以满足要求。(关键是扩展,自己看书)(关键是扩展,自己看书) (2)降维法:)降维法:如果不能扩展选择器,就只有在数据如果不能扩展选择器,就只有在数据端端 D0 Dn上想办法了,即不能简单地将上想办法了,即不能简单地将Dx接高接地了,接高接地了,而是要和逻辑输入建立某种关系。而是要和逻辑输入建立某种关系。 逻辑函数逻辑函数 F 有有 n 个逻辑变量,称为个逻辑变量,称为 n 维逻辑函数。维逻辑函数。 n 维逻辑函数可以用维逻辑函数可以用 n 维卡诺图表示。维卡诺图表示。 n 维卡诺图方格中的维卡诺图方格中的 1 表示表示相应相应最小项存在最小项存在于于 F
40、,方,方格中为格中为0,表示表示相应相应最小项不存在最小项不存在。 如果方格中填一个如果方格中填一个 Q 表示什么呢?表示什么呢? Q = 1 ,最小项存在;最小项存在;Q = 0 ,最小项不存在。,最小项不存在。说明说明 Q 也是逻辑也是逻辑函数的一个变量(第函数的一个变量(第 n+1 个变量),称为记图变量。个变量),称为记图变量。 引入一个记图变量后,就可以用引入一个记图变量后,就可以用 n 维卡诺图,表示维卡诺图,表示 n+1维逻辑函数了。再增加记图变量,还可以表示更多维逻辑函数了。再增加记图变量,还可以表示更多维的逻辑函数。维的逻辑函数。 在前面用数据选择器实现逻辑函数时,最小项存在
41、,在前面用数据选择器实现逻辑函数时,最小项存在,相应相应 D 端接端接 1 ,不存在接,不存在接 0 。如果最小项存在与否决定。如果最小项存在与否决定于于 Q ,则相应数据端应接,则相应数据端应接 Q 。 总之,用低维数据选择器实现高维逻辑函数时,首总之,用低维数据选择器实现高维逻辑函数时,首先要降维,将多出的变量作为记图变量。先要降维,将多出的变量作为记图变量。 下面我们通过例题学习降维法的设计方法。下面我们通过例题学习降维法的设计方法。 例例5-10 用用 8 选选 1 数据选择器实现逻辑函数数据选择器实现逻辑函数 F(A,B,C,D)= m(1,5,6,7,9,11,12,13,14)解
42、:解: 由于由于 8 选选 1 有三个输入端,有三个输入端,F函数有四个输入变量,函数有四个输入变量, 所以要先降维。所以要先降维。 设以设以D 为记图变量。为记图变量。第第一一步步:降降维维 第二步:第二步:确定数据端的设置(一个方格对应一个确定数据端的设置(一个方格对应一个D端)端) D0 = D2 = D4 = D5 = D D3 = D6 = 1 D1 = 0 D7 = D 第三步:第三步:画逻辑电路图画逻辑电路图 例例5-11 用用 8 选选 1 数据选择器实现逻辑函数数据选择器实现逻辑函数 F(A,B,C,D,E)= m(0,1,3,9,11,12,13,14,20,21,22,2
43、3,26,31)逻辑电路图逻辑电路图 书中给出进一步降维的情况,自己看书。书中给出进一步降维的情况,自己看书。 归纳一下卡诺图降维的规律:归纳一下卡诺图降维的规律: 如果要把如果要把X作为记图变量,它在原卡诺图中,作为记图变量,它在原卡诺图中,X=0时时取值取值 F ,X=1 时取值为时取值为 G,则合二为一后的取值为:,则合二为一后的取值为: X F + X G 两点说明:两点说明: 1、当需要降维处理时,将谁作为记图变量是任意的,、当需要降维处理时,将谁作为记图变量是任意的, 但结果是不同的,哪一种选择最佳还没有一个固定的但结果是不同的,哪一种选择最佳还没有一个固定的判断方法。判断方法。
44、2、数据选择器最适于实现单一输出的逻辑函数。如果、数据选择器最适于实现单一输出的逻辑函数。如果要实现多输出逻辑函数,就要用多个选择器。要实现多输出逻辑函数,就要用多个选择器。相比之下相比之下用用译码器译码器实现多输出逻辑函数更方便些。实现多输出逻辑函数更方便些。 3、用译码器实现组合逻辑、用译码器实现组合逻辑 一个一个 n线线 2n 线译码器的输出包含了线译码器的输出包含了 n 变量的所有变量的所有最小项,或者说,每个输出只与一个最小项对应。最小项,或者说,每个输出只与一个最小项对应。 例如:例如:3线线 8 线译码器,满足如下关系:线译码器,满足如下关系: Y0 = A B C = m0,
45、Y1 = A B C = m1 Y7 = A B C = m7 即输出信号与最小项反相。即输出信号与最小项反相。 有一逻辑函数有一逻辑函数 F(A,B,C)= A B C + A B C用译码器实现。用译码器实现。解:解: F(A,B,C)= m0 + m7 = Y0 + Y7 = Y0 Y7 书例书例5-12 是一个多输出的逻辑函数,就按上述方法,是一个多输出的逻辑函数,就按上述方法,如同做了三道单输出的题一样。如同做了三道单输出的题一样。 实验课要求用译码器设计全减器,请考虑一下。实验课要求用译码器设计全减器,请考虑一下。 用译码器实现逻辑函数比较容易,要用译码器实现逻辑函数比较容易,要注
46、意注意的是的是译码器的输出译码器的输出 Y 不是最小项,而是最小项的不是最小项,而是最小项的“非非” Yi = mi 4、采用全加器实现组合逻辑函数、采用全加器实现组合逻辑函数 用全加器实现逻辑函数,不具有普遍意义,它不能用全加器实现逻辑函数,不具有普遍意义,它不能实现任意逻辑函数,只适合逻辑输出为两数之和的情况。实现任意逻辑函数,只适合逻辑输出为两数之和的情况。 书中例题:书中例题: 8421 BCD 转换为转换为 余余3BCD 恒定加恒定加 3。 4位二进制加法器实现十进制加法位二进制加法器实现十进制加法有时加有时加 6 , 有时加有时加 0 。 自己看书。自己看书。第三节第三节 组合逻辑
47、电路的冒险现象组合逻辑电路的冒险现象 以前我们设计电路时,假定所有输入信号同时变化,以前我们设计电路时,假定所有输入信号同时变化,门电路没有延迟,在此条件下,能保证输出逻辑正确。门电路没有延迟,在此条件下,能保证输出逻辑正确。 实际情况是,输入信号不可能同时翻转,门的延迟实际情况是,输入信号不可能同时翻转,门的延迟也各不相同,于是就要出现问题了也各不相同,于是就要出现问题了冒险竞争!冒险竞争! 几个概念:几个概念: 静态冒险静态冒险:如果输入的变化本:如果输入的变化本不应不应引起输出引起输出变化变化,但,但实际实际出现了变化出现了变化,称静态冒险。(打破了应有的平静),称静态冒险。(打破了应有
48、的平静) 如:如: 本应本应 1 1 实际实际 1 0 1 或或 本应本应 0 0 实际实际 0 1 0 动态冒险动态冒险:如果输入的变化确应引起输出发生:如果输入的变化确应引起输出发生一次一次翻转翻转,但实际发生了,但实际发生了多次翻转多次翻转,称为动态冒险。如:,称为动态冒险。如: 本应本应 0 1 实际实际 0 1 0 1 本节只讨论静态冒险。本节只讨论静态冒险。 功能冒险功能冒险:由于逻辑函数自身的原因,当多个输入要:由于逻辑函数自身的原因,当多个输入要发生变化,但又不能同步时,发生变化,但又不能同步时, 产生的冒险。(可理解为产生的冒险。(可理解为逻辑功能在冒险方面有天生的缺陷)逻辑
49、功能在冒险方面有天生的缺陷) 功能冒险也叫竞争。功能冒险也叫竞争。 逻辑冒险逻辑冒险:在没有功能冒险的前提下,由于门延迟而:在没有功能冒险的前提下,由于门延迟而造成的冒险。造成的冒险。 (可理解为(可理解为 逻辑表达式没调整好造成的冒逻辑表达式没调整好造成的冒险,经过调整可以克服该冒险)险,经过调整可以克服该冒险) 下面我们通过实例进一步说明功能冒险和逻辑冒险。下面我们通过实例进一步说明功能冒险和逻辑冒险。 书例书例5-16 分析下列逻辑电路的冒险情况。分析下列逻辑电路的冒险情况。 F(a,b,c,d)= c d + b d + a c 有关功能冒险和逻辑冒险的判断和避免的细节,请有关功能冒险
50、和逻辑冒险的判断和避免的细节,请同学自己再看一看书,我们简单总结一下:同学自己再看一看书,我们简单总结一下: 逻辑函数一旦确定,其卡诺图就确定了,如果从一个逻辑函数一旦确定,其卡诺图就确定了,如果从一个1格变到另一个格变到另一个1格的多条路径上有格的多条路径上有 0 格,则可能有功能冒格,则可能有功能冒险。(上述险。(上述 0 和和 1 交换对应另一种情况)交换对应另一种情况) 功能冒险是不能通过修改逻辑来避免的。只能通过避功能冒险是不能通过修改逻辑来避免的。只能通过避开变化瞬间的消极方法来解决(见本节最后电路图)。开变化瞬间的消极方法来解决(见本节最后电路图)。 在没有功能冒险的条件下,如果