119第三篇第4章习题?题3.4.1优先编码器74HC147的功能表如表题3.4.1所示,试用74HC147和适当的门构成输入为低有效的0I~9I,输出为8421BCD码的编码器。表题3.4.1优先编码器74HC147功能表输入输出1I2I3I4I5I6I7I8I9I3Y2Y1Y0YHHHHHHHHHHHHH××××××××LLHHL×××××××LHLHHH××××××LHHHLLL×××××LHHHHLLH××××LHHHHHLHL×××LHHHHHHLHH××LHHHHHHHHLL××HHHHHHHHHLHLHHHHHHHHHHHL解:题3.4.2用双2线-4线译码器74LS139及最少量的与非门实现下列逻辑函数。(译码器功能表见教材图3.3.4,图3.4.2是简化逻辑图)。CBACACBAZ),,(1BCACABZ2图题3.4.2120解:把2/4译码器先连接成3/8译码器,然后实现二个逻辑函数,根据二个逻辑函数,连接出电路如图所示:74021YYYYABCCBACBACBAABCCBACBACBAZ76532YYYYBCACBACABABCBCACBACABABCZ题3.4.3试用74LS138型3线-8线译码器设计一个地址译码器,地址译码器的地址范围为00~3F。(可适当加其它逻辑门电路)。解:由于地址译码器的范围为00~3F(十六进制数),实际上是64个地址,因此,可用地址扩展的方法来实现,把3/8扩展成4/16,再扩展成6/64译码即可。采用分级译码后连接成的电路如图所示。121题3.4.4设X和Y分别为2位二进制数,试用最少量的半加器和与门实现Z=XY运算。解:由于X、Y是二位的二进制数,则0101,bbYaaX,根据直式运算,则有:01aaX01bbY01ba00ba11ba10ba可得每位的输出函数如下,23111210011000,,,cScbaSbabaSbaS.122电路图为:题3.4.5试用一个4位二进制加法器及异或门实现4位二进制减法运算,并要求画出逻辑图。4位二进制加法器的简化逻辑图如图题3.4.5所示图题3.4.5解:该二进制减法应该是被减数大于减数的情况,其它情况不在此例。将被减数的补码加上减数的补码求得:在四位二进制加法器的一个加数输入端(0123AAAA)输入被减数的补码(正数的补码就是原码),另一个加数输入端(0123BBBB)加入四位减数的补码,则就得到减法运算,输出为结果的补码(由于被减数大于减数,则结果就是一个正数)。注意:这里减数的补码是减数的反码加1后得到的。123题3.4.6试用并行4位加法器连接成将余三码转换成8421BCD代码的解:解题思路为只要将余三码作为四位加法器的加数输入,把8421BCD码作结果输出,找出另外一个四位的加数是多大时,才是对应的8421BCD码,从而求出四位加数的每位函数式,便可画出电路图。转换电路真值表如下:由真值表可见,在加法器的加数输入端输入余三码,在被加数的输入端输入1101数据,则在结果输出即为8421BCD码了。所以,连接的电路图有:四位余三码加数8421BCD码输出A3A2A1A0B3B2B1B0Y3Y2Y1Y0001111010000010011010001010111010010011011010011011111010100100011010101100111010110101011010111101111011000110011011001124题3.4.7试用一片74LS283型4位二进制加法器,将8421BCD码转换成余三码的代码转换电路。74LS283的简化逻辑图如图题3.4.7所示。图题3.4.7解:只要在加法器的被加数输入端加8421BCD码,加数输入端加上0011,即就转换成了余三码输出。连接电路如图所示:题3.4.8试用4位并行加法器74LS283设计一个加/减运算电路。当控125制信号X=1时它将两个输入的4位二进制数相加,而X=0时它将两个输入的4位二进制数相减。两数相加的绝对值不大于15。允许附加必要的门电路。解:可控的加减法,被加数总是从被加数数输入端加入,而加数分分二种情况考虑:当做加法X=1时,加数直接送加数输入端,当做减法时X=0时,减数变成补码后从被加数输入端输入。题3.4.9试用数值比较器74HC85设计一个8421BCD码有效性测试电路,当输入为8421BCD码时,输出为1,否则为0。解:只要设置一个8421BCD码,然后输入与该设定的码进行比较,如果相等,则输入8421BCD码有效,不相等时,输入的码无效。补画74HC85电路图题3.4.10试用数值比较器74HC85和必要的逻辑门设计一个余3码有效性测试电路,当输入为余3码时,输出为1,否则为0。题3.4.11试用两个4位数值比较器组成三个数的判断电路。要求能够判别三个4位二进制数是否相等、A是否最大、A是否最小、并分别给出“三个数相等”、“A最大”、“A最小”的输出信号。可以附加必要的门电路。题3.4.12试用一片8选1数据选择器74LS151实现以下逻辑函数。126(1)ACDDABCCDBADCBAZ),,,((2)CBACBACBAZ(3)Z=A⊙(B⊙C)解:解题基本思路:选定多路选择器的地址输入变量,列出卡诺图,求出数据输入端的函数关系式;(1)选定四变量函数中的ABC(A2A1A0)为地址输入,卡诺图为0,,1,0,0,0,,045762310DDDDDDDDDD画出的电路图为:(2)选定多路选择器的地址变量为)(012AAAABC,由于地址数正好是变量数,所以数据输入端的逻辑关系一定是常量“0”和“1”。画出卡诺图如下:由卡诺图可知:076320DDDDD1541DDD其电路图为:0DABC000001011010110011110110010111000000000100YYA2A174LS151(MUX)A0D0D1D2D3D4D5D6D7“1”ABCDZABC000001011010110011110110011100000127(3)该题解法同前,由于函数只有三变量,选定地址变量为)(012AAAABC后,其多路数据选择器的各数据输入端都为常量。用卡诺图后求出各数据端的函数关系:由卡诺图得:06530DDDD17421DDDD题3.4.13试用CC45128选1型数据选择器产生如下逻辑函数,CBACBAACL图题3.4.14所示为CC4512的简化逻辑图,表题3.4.14为它的功能表。YYA2A174LS151(MUX)A0D0D1D2D3D4D5D6D7“1”ABCZABC000001011010110011110110010100101YYA2A174LS151(MUX)A0D0D1D2D3D4D5D6D7“1”ABCZ128图题3.4.14表题3.4.14CC4512数据选择器功能表S1S0A2A1A0Y00000D000001D100010D200011D300100D400101D500110D600111D701×××01××××高阻解:由真值表可知CC4512多了二个使能控制端,其它与上题一样,所以有卡诺图:由卡诺图得出各数据输入端的函数关系:06430DDDD17521DDDDABC000001011010110011110110001100101129题3.4.15设计用3个开关控制一个电灯的逻辑电路,要求改变任何一个开关的状态都能控制电灯由亮变灭或者由灭变亮,要求用数据选择器来实现。解:用A、B、C表示三个双位开关,并用0和1分别表示开关的两个状态。以Y表示灯的状态,用1表示亮,用0表示灭。设ABC=000时Y=0,从这个状态开始,单独改变任何一个开关的状态Y状态都要变化。据此列出A、B、C之间逻辑关系的真值表。ABCY00000011010101101001101011001111由真值表有逻辑式为该方程与二位地址的4/1选择器输出相对应,所以电路为题3.4.16用8选1数据选择器设计一个函数发生器电路,它的功能如表题3.4.16所示。表题3.4.16题3.4.16电路的功能表ABCCBACBACBAY130S1S0Y00BA01BA10BA11A解:由功能表写出逻辑表达式令数据选择器三位地址所以对应的8路数据为用8选1的选择器连接成的图为题3.4.17常用低密度可编程逻辑器件的结构有何特点?按电路结构可分为哪几类?解:常用低密度可编程逻辑器件的结构可分成与阵列、或阵列和输出电路三部分。按照与或阵列的是否可以编程可以分为PLA(与、或阵列都可编程),0110)()(010101010101010101010101ASSASSBASSBASSASSBASSBASSASSASSBABASSBASSABSSYAASASA00112,,BDDDBDDDDD56342170,1,,0131PAL(与阵列可编程,或阵列固定)、PROM(与、或阵列都固定)、GAL(与阵列可编程,或阵列固定,输出电路可编程)等。题3.4.18试用VHDL语言设计一个二—十进制显示译码器,输入A4A3A2A1为8421编码时,输出为10个十进制数0~9,用七段(a、b、c、d、e、f、g)共阴极数码管(LED)显示。解:VHDL参考源代码:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYBCDCODEnISPORT(d:INSTD_LOGIC_VECTOR(3downto0);bcdcode:OUTSTD_LOGIC_VECTOR(6downto0));ENDBCDCODEn;ARCHITECTUREbehaveOFBCDCODEnISBEGINPROCESS(d)BEGINCASEdISWHEN0000=bcdcode=0000001;WHEN0001=bcdcode=1001111;WHEN0010=bcdcode=0010010;WHEN0011=bcdcode=0000110;WHEN0100=bcdcode=1001100;WHEN0101=bcdcode=0100100;WHEN0110=bcdcode=0100000;WHEN0111=bcdcode=0001111;WHEN1000=bcdcode=0000000;WHEN1001=bcdcode=0000100;WHENOTHERS=bcdcode=1111111;ENDCASE;ENDPROCESS;ENDbehave;仿真波形: