组合逻辑电路习题解.ppt
课件主编:徐课件主编:徐 梁梁习题解习题解数数字字电电子子技技术术基基础础第4章 组合逻辑电路n组合电路分析n组合电路设计n竞争冒险nVHDL第1题第2题第3题第4题第5题第6题第7题第8题第9题第10题第11题第12题第13题第14题第15题第22题第16题第17题第18题第19题第20题第21题第23题第24题第25题第26题3.1 试分析图试分析图3.60所示组合逻辑电路的逻辑功能,写出逻辑所示组合逻辑电路的逻辑功能,写出逻辑函数表达式,列出真值表,说明电路完成的逻辑功能。函数表达式,列出真值表,说明电路完成的逻辑功能。解解(a)(b)(c)该电路完成四变量异或运算,异或能将成对该电路完成四变量异或运算,异或能将成对的的1抵消,该电路功能为四变量判奇抵消,该电路功能为四变量判奇该电路是全加器,该电路是全加器,A、B是两个加数,是两个加数,C是低位是低位进位,进位,L1是本位和,是本位和,L2是本位进位是本位进位该电路是该电路是1位数值比较器,位数值比较器,L1是是AB,L2是是A=B,L3是是AB(a)简化真值表(b)真值表(c)真值表3.2 图图3.61是一密码锁控制电路。开锁条件是:拨对密码;是一密码锁控制电路。开锁条件是:拨对密码;钥匙插入锁眼将开关钥匙插入锁眼将开关S闭合。当两个条件同时满足时,开锁闭合。当两个条件同时满足时,开锁信号为信号为1,锁被打开。否则,报警信号为,锁被打开。否则,报警信号为1,接通警铃。试分,接通警铃。试分析密码析密码ABCD为多少为多少?解解:由电路写出表达式由电路写出表达式G1G2密码密码ABCD值为值为:01013.3 设有四种组合逻辑电路,它们的输入波形设有四种组合逻辑电路,它们的输入波形(A、B、C、D)如图如图3.62所示,其对应的输出波形分别为所示,其对应的输出波形分别为W、X、Y、Z,试,试分别写出它们逻辑表达式并化简。分别写出它们逻辑表达式并化简。解解 3.4 X、Y均为四位二进制数,它们分别是一个逻辑电路的输入和输出。均为四位二进制数,它们分别是一个逻辑电路的输入和输出。设:当设:当0X4时,时,Y=X+1;当;当5X9时,时,Y=X-1,且,且X不大于不大于9。(1)试列出该逻辑电路完整的真值表;试列出该逻辑电路完整的真值表;(2)用与非门实现该逻辑电路。用与非门实现该逻辑电路。3.5 设计一交通灯监测电路。红、绿、黄三只灯正常工作时设计一交通灯监测电路。红、绿、黄三只灯正常工作时只能一只灯亮,否则,将会发出检修信号,用两输入与非门只能一只灯亮,否则,将会发出检修信号,用两输入与非门设计逻辑电路,并给出所用设计逻辑电路,并给出所用74系列的型号。系列的型号。*用用2输入与非门实现输入与非门实现3输入与非先将其中两个两次求反输入与非先将其中两个两次求反,将结果将结果再和第再和第3个求与非个求与非3.6 试用优先编码器试用优先编码器74LSl48和门电路设计医院优先照顾重患者呼唤的逻和门电路设计医院优先照顾重患者呼唤的逻辑电路。医院的某科有一、二、三、四间病房,每间病房设有呼叫按钮,辑电路。医院的某科有一、二、三、四间病房,每间病房设有呼叫按钮,护士值班室内对应的装有一号、二号、三号、四号指示灯。患者按病情护士值班室内对应的装有一号、二号、三号、四号指示灯。患者按病情由重至轻依次住进由重至轻依次住进14号病房。护士值班室内的四盏指示灯每次只亮一号病房。护士值班室内的四盏指示灯每次只亮一盏对应于较重病房的呼唤灯。盏对应于较重病房的呼唤灯。3.7 试用译码器试用译码器74LSl38和适当的逻辑门设计一个三位数的奇和适当的逻辑门设计一个三位数的奇校验器。校验器。3.8 试用译码器试用译码器74LSl38和与非门实现下列逻辑函数:和与非门实现下列逻辑函数:(1)(2)表中表中D为常量为常量0,因此只用前因此只用前3变量变量3.9 某一组合逻辑电路如图某一组合逻辑电路如图3.63所示,试分析其逻辑功能。所示,试分析其逻辑功能。1,3,5,7,9(即奇数即奇数)输入信号有效时输入信号有效时,输出为高电平输出为高电平,发光二极管发光二极管点亮点亮3.10 试用译码器试用译码器74LSl38和适当的逻辑门设计一个一位数的和适当的逻辑门设计一个一位数的全加器。全加器。3.11 试用译码器试用译码器74LSl38和适当的逻辑门设计一个组合电路。和适当的逻辑门设计一个组合电路。该电路输入该电路输入X与输出与输出L均为三位二进制数。二者之间的关系如均为三位二进制数。二者之间的关系如下:下:当当2X5时,时,L=X+2;当;当X5时,时,L=0。3.12 试用三片试用三片3线线-8线译码器线译码器74LSl38组成组成5线线-24线译码器。线译码器。当当A4A3=1时时片工作片工作,片不工作片不工作当当A4A3=01时时片工作片工作,片不工作片不工作当当A4A3=10时时片工作片工作,不工作不工作3.13 试用一片试用一片4线线-16线译码器线译码器74LSl54组成一个组成一个5421BCD码码十进制数译码器。十进制数译码器。3.14 由数据选择器组成的逻辑电路如图由数据选择器组成的逻辑电路如图3.64所示,试写出电所示,试写出电路的输出函数表达式。路的输出函数表达式。3.15 试用四选一数据选择器实现下列逻辑函数:试用四选一数据选择器实现下列逻辑函数:3.16 试用四选一数据择器设计一判定电路。只有在主裁判同试用四选一数据择器设计一判定电路。只有在主裁判同意的前提下,三名副裁判中多数同意,比赛成绩才被承认,意的前提下,三名副裁判中多数同意,比赛成绩才被承认,否则,比赛成绩不被承认。否则,比赛成绩不被承认。3.17 试画出用两个半加器和一个或门构成一位全加器的逻辑试画出用两个半加器和一个或门构成一位全加器的逻辑图,要求写出图,要求写出Si和和Ci的逻辑表达式。的逻辑表达式。3.18 利用四位集成加法器利用四位集成加法器74LS283实现将余实现将余3码转换为码转换为8421BCD码的逻辑电路。码的逻辑电路。解解:减去一个数等于加上这个数的补码减去一个数等于加上这个数的补码,而补码等于而补码等于原码的反码加原码的反码加13.19 利用四位集成加法器利用四位集成加法器74LS283和适当的逻辑门电路,实和适当的逻辑门电路,实现一位余现一位余3代码的加法运算,画出逻辑图。代码的加法运算,画出逻辑图。(提示:列出余提示:列出余3代码的加法表,再对数进行修正代码的加法表,再对数进行修正)。解解:A和和B是余是余3码码,和为和为S是是8421码码,C是进位是进位A+B9 不用修正不用修正A+B10 减减6修正修正表中当表中当C=0要作减要作减6修正修正3.20 设:设:A、B均为三位二进制数,利用四位二进制加法器均为三位二进制数,利用四位二进制加法器74LS283,实现一个,实现一个L=2(A+B)的运算电路。的运算电路。解解:二进制数向高位移动一位二进制数向高位移动一位,相当于完成乘相当于完成乘2运算运算,用乘以用乘以2后的数相加完成所要求运算后的数相加完成所要求运算,注意注意A,B的低位要补的低位要补03.21 图图3.65是是3线线-8线译码器线译码器74LSl38和八选一数据选择器和八选一数据选择器74LSl51组成的电路,组成的电路,试分析整个电路的功能。八选一数据选择器试分析整个电路的功能。八选一数据选择器74LSl51的功能见表的功能见表3.23所示。所示。解解:74LS138和和74LS151均处于正常工作状态均处于正常工作状态L的表达式如下的表达式如下表达式表明表达式表明:当当b2b1b0=a2a1a0时输时输出的出的L=0,否则否则L=1电路功能是电路功能是3位数据不位数据不等比较器等比较器3.22 试用十六选一数据选择器和两个异或门,实现一个八用试用十六选一数据选择器和两个异或门,实现一个八用逻辑电路,其逻辑功能要求如表逻辑电路,其逻辑功能要求如表3.24所示。所示。由循环码由循环码S2S1S0求对应二进制码求对应二进制码D3D1D0解解:对于对于4选选1数据选择器有数据选择器有对于如下的对于如下的Di组合有组合有3.23 判断下列逻辑函数是否存在冒险现象判断下列逻辑函数是否存在冒险现象?若有,试消除之。若有,试消除之。解解:(1)A,B,C都存在竞争都存在竞争-冒险冒险当当B=1,C=0时时A存在冒险存在冒险当当C=1,A=0时时B存在冒险存在冒险当当A=1,B=0时时C存在冒险存在冒险(2)从卡诺图看存在从卡诺图看存在2处冒处冒险险,增加增加2个多余项即可消个多余项即可消除除(3)从卡诺图看存在从卡诺图看存在2处冒险处冒险,增加增加2个多余项即可个多余项即可消除消除(4)从卡诺图看存在从卡诺图看存在2处冒险处冒险,进行化简后进行化简后即可消除即可消除3.24 在在VHDL语言中,语言中,IF和和CASE都属于流程控制语句,比都属于流程控制语句,比较归纳它们的异同点。较归纳它们的异同点。解解:CASE语句和语句和IF-ELSIF语句都可用来描述多项选择问题,语句都可用来描述多项选择问题,但二者有所不同:首先,在但二者有所不同:首先,在IF语句中,先处理最初的条件,语句中,先处理最初的条件,如果不满足,再处理下一个条件;而在如果不满足,再处理下一个条件;而在CASE语句中,各个语句中,各个选择值不存在先后顺序,所有值是并行处理的。其次,选择值不存在先后顺序,所有值是并行处理的。其次,IF-ELSIF使一组动作与一条真语句相关联,而使一组动作与一条真语句相关联,而CASE语句使一语句使一组动作与一个惟一的值相关联。一条组动作与一个惟一的值相关联。一条CASE语句仅可与一个语句仅可与一个条件表达式相符合,而一条条件表达式相符合,而一条IF-ELSIF语句可能有多条语句语句可能有多条语句为真,但所执行的动作为第一条计算为真的语句。为真,但所执行的动作为第一条计算为真的语句。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_16 IS PORT(S1,S2,S3,A3,A2,A1,A0:IN STD_LOGIC;Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,Y10,Y11,Y12,Y13,Y14,Y15:OUT STD_LOGIC);END decoder_16;ARCHITECTURE example25 OF decoder_16 IS SIGNAL temp_ine:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL temp_in:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL temp_out:STD_LOGIC_VECTOR 15 DOWNTO 0);BEGIN temp_ine=S1&S2&S3;temp_in temp_out temp_out temp_out temp_out=1111111111111111;END CASE;ELSE temp_out=1111111111111111;END IF;Y0=temp_out(0),Y1=temp_out(1),.Y15=temp_out(15)END PROCESS;END example25;3.25 试参照试参照3线线-8线译码器线译码器74LSl38的的VHDL程序,编写程序,编写4线线-16线译码器的线译码器的VHDL程序。程序。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux16_1 ISPORT(G,A3,A2,A1,A0,D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15:IN STD_LOGIC;Y:OUT STD_LOGIC);END mux16_1;ARCHITECTURE example26 OF mux16_1 IS SIGNAL temp_a:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN temp_a Y Y Y Y=0;END CASE;ELSE Y=0;END IF;END PROCESS;END example26;3.26 试用试用VHDL语言设计一语言设计一个十六选一的数据选择器。个十六选一的数据选择器。