数字逻辑第四章课后答案_第1页
数字逻辑第四章课后答案_第2页
数字逻辑第四章课后答案_第3页
数字逻辑第四章课后答案_第4页
数字逻辑第四章课后答案_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、盛建伦:数字逻辑与VHDL逻辑设计习题解答习题4解答4-1试用与非门设计实现函数F(A,B,C,D)=m(0,2,5,8,11,13,15)的组合逻辑电路。解:首先用卡诺图对函数进行化简,然后变换成与非-与非表达式。AB1001CD00 0100 01010011 100110101011 10&&&&&&&化简后的函数&& 4-2试用逻辑门设计三变量的奇数判别电路。若输入变量中1的个数为奇数时,输出为1,否则输出为0。解:本题的函数不能化简,但可以变换成异或表达式,使电路实现最简。真值表: 逻辑函数表达式:A B CY=

2、1=1ABCY逻辑图0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1011010014-3用与非门设计四变量多数表决电路。当输入变量A、B、C、D有三个或三个以上为1时输出为1,输入为其他状态时输出为0。解:真值表: 先用卡诺图化简,然后变换成与非-与非表达式:AB0000CD00 0100 01001011 100100111011 10A B C DY逻辑图&&&&&0 0 0 00 0 0 1 0 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 1 1 0 1

3、 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 10000000100010111逻辑函数表达式: 4-4 用门电路设计一个代码转换电路,输入为4位二进制代码,输出为4位循环码。解:首先根据所给问题列出真值表,然后用卡诺图化简逻辑函数,按照化简后的逻辑函数画逻辑图。真值表: 卡诺图化简:AB0000CD00 0100 01000011 101111111111 10A B C DY1 Y2 Y3 Y4AB0011CD00 0100 01001111 100011001111 10Y1的卡诺图 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0

4、 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 10 0 0 00 0 0 10 0 1 10 0 1 00 1 1 00 1 1 10 1 0 10 1 0 01 1 0 01 1 0 11 1 1 11 1 1 01 0 1 01 0 1 11 0 0 11 0 0 0AB0101CD00 0100 01010111 100101010111 10Y3的卡诺图AB0011CD00 0100 01110011 101100001111 10Y4的卡诺图Y2的卡诺图逻辑

5、图 化简后的逻辑函数:=1=1=14-5 图4.48所示是一个由两台水泵向水池供水的系统。水池中安置了A、B、C三个水位传感器。当水池水位低于C点时,两台水泵同时供水。当水池水位低于B点且高于C点时,由水泵M1单独供水。当水池水位低于A点且高于B点时,由水泵M2单独供水。当水池水位高于A点时,两台水泵都停止供水。试设计一个水泵控制电路。要求电路尽可能简单。图4.48 习题4-5的示意图解:设水位低于传感器时,水位传感器的输出为1,水位高于传感器时,水位传感器的输出为0。A0×0×BC00 010 1××1111 10A0×1×BC00

6、 010 1××1011 10首先根据所给问题列出真值表。其中有几种情况是不可能出现的,用约束项表示。A B CM1 M2M1的卡诺图M2的卡诺图0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 0× ×× ×× ×0 1× ×1 01 1 如果利用约束项化简 如果不利用约束项化简逻辑图=&&1&1 (a) 用约束项化简 (b) 不用约束项化简习题4-5的逻辑图4-6 试用3线-8线译码器74HC138和门电路实现如下多输出逻辑函数并画出

7、逻辑图。解:先将逻辑函数变换成最小项之和的形式逻辑图再变换成与74HC138一致的形式1CBAY1&&&Y2Y3&Y4 令74HC138的A2= A,A1=B,A0= C,4-7 试用3线-8线译码器74HC138和逻辑门设计一组合电路。该电路输入X,输出Y均为3位二进制数。二者之间关系如下:当2X<7时, Y=X2X<2时, Y=1X=7时, Y=6逻辑图解:首先根据所给问题列出真值表。1X0X1X2Y2 A2A1A074HC138&Y1Y0&&X2 X1 X0Y2 Y1 Y00 0 00 0 10 1 00 1 11 0

8、01 0 11 1 01 1 10 0 10 0 10 0 00 0 10 1 00 1 11 0 01 1 0逻辑函数:4-8 试用4选1数据选择器产生逻辑函数解:将逻辑函数变换成最小项之和的形式若用输入变量AB作为地址,C作为数据输入,则 即A1=A,A0=B,D0= D2= ,D1=1,D3=C。逻辑图如下图(a)所示。若用输入变量AC作为地址, B作为数据输入,则即A1=A,A0=C,D0=1, D2= ,D1=D3= B。逻辑图如下图(b)所示。 A1 A0 D3 D2 D1 D0 4选1 数据选择器 Y 1 A1 A0 D3 D2 D1 D0 4选1 数据选择器 Y 1(a) AB

9、作为地址 (b) AC作为地址4-9 分析图4.49所示电路,写出输出Y的逻辑函数式并化简。A0 D0 D1 D2 D3 D4 D5 D6 D7 A1 8选1 数据选择器A2 F 图4.49 习题4-9的电路解:8选1数据选择器C =A2,B=A1,A =A0,D7= D3 =0,D2=1,D5=D4= D1= D0=D ,D6= , 逻辑函数卡诺图化简DC0000BA00 0100 01010111 101111000111 10 化简后的逻辑函数4-10 试用8选1数据选择器产生逻辑函数 解:令A=A2,B=A1,C=A0,D7= D5= D2= D1=1,D6= D4= D3= D0=0

10、,逻辑图A2 D0 D1 D2 D3 D4 D5 D6 D7 A1 8选1 数据选择器A0 Z 4-11 试用3线-8线译码器74HC138和最少数量的二输入逻辑门设计一个不一致电路。当A、B、C 三个输入不一致时,输出为1,三个输入一致时,输出为0。解:首先根据所给问题列出真值表。真值表:A B CY0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 101111110如果直接按照真值表写出逻辑函数表达式,很难用二输入逻辑门实现。但是,观察真值表不难发现,真值表中只有两行的Y为0,因此,按照真值表写出反函数表达式,应该容易用二输入逻辑门实现。逻辑函数表达式: 题目要

11、求用3线-8线译码器74HC138实现,而74HC138的每个输出对应一个最小项的反,因此,还必须把逻辑函数式变换成与74HC138的逻辑函数相同的形式。逻辑图逻辑图逻辑图 A2A1A0&1ABCY74HC1384-12 试用8选1数据选择器产生逻辑函数解:如果用ABC作为数据选择器的地址(A=A2,B=A1,C=A0),D作为数据,则函数变换成A0 D0 D1 D2 D3 D4 D5 D6 D7 A1 8选1 数据选择器A2 F D7= D6=D3 =1, D5= D0=0,D4= D1=D , D2= ,如果用BCD作为数据选择器的地址(B=A2,C=A1,D=A0),A作为数据,

12、则函数变换成A0 D0 D1 D2 D3 D4 D5 D6 D7 A1 8选1 数据选择器A2 F D7= D6= D4=1,D2= D0=0,D5= D1=A, D3 =4-13 根据表4.23所示的功能表设计一个函数发生器电路,用8选1数据选择器实现。表4.23 习题4-13的功能表S1 S0Y0 00 11 01 1ABA·BA+B解:首先根据所给问题列出真值表。 真值表: 卡诺图化简S1S01000AB00 0100 01101011 100101011111 10S1 S0 A BY0 0 0 00 0 0 1 0 0 1 00 0 1 110010 1 0 00 1 0

13、10 1 1 00 1 1 100011 0 0 01 0 0 1 1 0 1 01 0 1 101111 1 0 01 1 0 11 1 1 01 1 1 10110 化简后用S1AB作为地址,S0作为数据输入,即S1=A2,A= A1,B = A0。函数变换为1A0 D0 D1 D2 D3 D4 D5 D6 D7 A1 8选1 数据选择器A2 F D6= D5= D3 = 1,D1=D2= D4=0,D7= D0= ,因此,画出逻辑图如下:逻辑图 4-14 图4.50所示是由3线8线译码器74HC138和8选1数据选择器构成的电路。试分析 当数据C2C1C0= D2D1D0时,输出F=?

14、当数据C2C1C0D2D1D0时,输出F=?74HC138 图4.50 习题4-14的电路解: 当数据C2C1C0= D2D1D0时,输出F=0 当数据C2C1C0D2D1D0时,输出F=1这个电路可以检验数据C2C1C0与 D2D1D0是否相同。4-15 设计用3个开关控制一个电灯的逻辑电路,要求改变任何一个开关的状态都能控制电灯由亮变灭或者由灭变亮。用数据选择器实现。解:用A、B、C分别表示3个开关的状态,Z=1表示电灯亮,Z=0表示电灯灭。令ABC=000时的状态Z=0。(注:此处先用格雷码写出变化表比较容易得真值表,初始状态也很重要)真值表: 逻辑函数表达式:A B CZ0 0 00

15、0 10 1 00 1 11 0 01 0 11 1 01 1 101101001 A1 A0 D3 D2 D1 D0 4选1 数据选择器 Y 13个变量,可以用4选1数据选择器实现。若用输入变量AB作为地址, C作为数据输入,即A1=A,A0=B,D0= D3=C,D1=D2= 。逻辑图4-16 试用逻辑门设计一个带控制端的半加/半减器,控制端X=1时为半加器,X=0时为半减器。解:根据所给问题列出真值表。A、B为加/减的两个数。做加法运算时,S为半加/半减的和/首先差的输出,CO为进位输出。做减法运算时,S为差的输出,CO为借位输出。半加器的功能是S=A+B。半减器的功能是S=AB。真值表

16、: X A BS CO0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 01 11 00 00 01 01 00 1 =1 &SCOAB =逻辑函数不能化简,但是可以变换成异或表达式。按照变换后的逻辑函数画逻辑图。4-17 试用3线-8线译码器74HC138和门电路设计一个1位二进制全减器电路。输入是被减数、减数和来自低位的借位;输出是两数之差和向高位的借位信号。解:全减器的功能是Si=AiBiCi。首先根据所给问题列出真值表。真值表: 逻辑函数:Ai Bi CiSi CO0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

17、0 01 11 10 11 00 00 01 1把逻辑函数式变换成与74HC138的逻辑函数相同的形式:CiBiAiSi A2A1A074HC138&CO&逻辑图4-18试用4位数据比较器CC14585设计一个判别电路。若输入的数据代码D3D2D1D0>1001时,判别电路输出为1,否则输出为0。解:从CC14585的一个端口输入数据D3D2D1D0,另一个端口输入1001。CC14585的扩展输入端IA>B和IA=B必须接高电平,IA<B必须接低电平。FD0D1D2D311001逻辑图4-19 试根据表4.24的功能表,用逻辑门设计一个数据分配器(Demul

18、tiplexer)。A1、A0为地址输入,D为数据输入,W3、W2、W1、W0为数据输出。数据分配器的功能正好与数据选择器相反,是按照所给的地址把一个输入数据从N个输出通路中选择一个输出,如图4.51所示。表4.24 习题4-19的功能表A1 A0 DW3 W2 W1 W00 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 10 0 0 00 0 0 10 0 0 00 0 1 00 0 0 00 1 0 00 0 0 01 0 0 0DeMUX图4.51 数据分配器解:表4.24的功能表可以简化为A1 A0 W3 W2 W1 W00 00 11 01 10 0 0

19、D0 0 D 00 D 0 0D 0 0 01&&&&1逻辑图逻辑函数4-20 试比较图4.52所示两个逻辑电路的功能。 &A0 D0 D1 D2 D3 D4 D5 D6 D7 A1 8选1 数据选择器A2 Y 1图4.52 习题4-20的电路解:根据图4.52写出逻辑函数式。 8选1 数据选择器的连接关系是:D6= D7= D,D1=0,D2= 1,D5= D4= D3= D0= ,A2=A,A1= B,A0= C ,所以,比较FI和F2的,可看出,两个电路的逻辑函数相同,所以逻辑功能也相同。4-21 用VHDL设计一个代码转换电路,输入为4位循环码,

20、输出为4位二进制代码。 解:首先画出代码转换电路的系统框图,如G3 B3 代码转换电路 G0 B0根据所给问题列出真值表。G3 G2 G1 G0B3 B2 B1 B00 0 0 00 0 0 10 0 1 10 0 1 00 1 1 00 1 1 10 1 0 10 1 0 01 1 0 01 1 0 11 1 1 11 1 1 01 0 1 01 0 1 11 0 0 11 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0

21、1 1 0 1 1 1 1 0 1 1 1 1 根据系统框图写VHDL程序的Entity,用行为描述的方法,根据真值表写VHDL程序的Architecture。VHDL程序如下:-Gray code to Binary codelibrary ieee;use ieee.std_logic_1164.all;entity gray2binary is port( grayin : in std_logic_vector(3 downto 0); binaryout : out std_logic_vector(3 downto 0);end gray2binary;architecture b

22、ehave of gray2binary isbegin with grayin select binaryout <= "0000" when "0000", "0001" when "0001", "0010" when "0011", "0011" when "0010", "0100" when "0110", "0101" when "0111&quo

23、t;, "0110" when "0101", "0111" when "0100", "1000" when "1100", "1001" when "1101", "1010" when "1111", "1011" when "1110", "1100" when "1010", "1101"

24、 when "1011", "1110" when "1001", "1111" when "1000", end behave;4-22 用VHDL设计一个代码转换逻辑电路。把4位二进制代码转换成7段字符显示代码。能显示数字09和字母A,b,C,d,E,F。解:电路的输入是4位代码,输出是7位代码。用D3D0作为输入信号名,用YaYg作为输出信号名,分别对应a、b、c、d、e、f、g这7个段。Ya Yb Yc Yd Ye Yf Yg代码转换电路 D3 D2 D1 D0 系统框图列出代码转换逻辑

25、的真值表。表4.12 代码转换逻辑电路的真值表D3 D2 D1 D0Ya Yb Yc Yd Ye Yf Yg显示字符字形0 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 01 0 0 11 0 1 01 0 1 11 1 0 01 1 0 11 1 1 01 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1

26、 1 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 10123456789AbCdEF根据系统框图设计VHDL程序的entity,用行为描述的方法,根据真值表设计VHDL程序的architecture。library ieee;use ieee.std_logic_1164.all;entity bcd2seg7 is port( bcdin : in std_logic_vector(3 downto 0); segout : out std_logic_

27、vector(6 downto 0);end bcd2seg7;architecture behav of bcd2seg7 isbegin with bcdin select segout <= "1111110" when "0000", -display"0" "0110000" when "0001", -display"1" "1101101" when "0010", "1111001" when

28、"0011", "0110011" when "0100", -display"4" "1011011" when "0101", "1011111" when "0110", "1110000" when "0111", -display"7" "1111111" when "1000", "1110011" whe

29、n "1001", -display"9" "1110111" when "1010", -display"A" "0011111" when "1011", -display"b" "1001110" when "1100", -display"C" "0111101" when "1101", -display"d"

30、; "1001111" when "1110", -display"E" "1000111" when "1111", -display"F" "0000000" when others;end behave;4-22 (有没有简单方法呢?)用VHDL设计一个代码转换逻辑电路。把7位的ASCII码转换成7段字符显示代码。能显示数字09,字母A,b,C,d,E,F,H,L,o,P,U,等。解:ASCII码7段字符显示代码字符A6A5A4A3A2A1A0YaY

31、bYcYdYeYfYg字形001100001111110101100010110000201100101101101301100111111001401101000110011501101011011011601101101011111701101111110000801110001111111901110011110011A10000011110111b11000100011111C10000111001110d11001000111101E10001011001111F10001101000111H10010000110111L10011000001110o11011110011101P1

32、0100001100111U101010101111104-23 用VHDL设计一个16位全加器。解:4-24 用VHDL设计一个8位数值比较器。解:4-25 用VHDL设计一个四位超前进位加法器。 解:- 4-Bit carry-look-ahead Full Adderlibrary ieee;use ieee.std_logic_1164.all;entity FULL_ADDER1 is port ( A, B : in bit_vector(3 downto 0); Cin : in bit; S : out bit_vector(3 downto 0); Cout : out BIT); end FULL_ADDER1;-architecture FULL_ADDERp of FULL_ADDER1 is signal sA,sB,sS : bit_vector(3 downto 0); signal sCin , sCout : bit ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论