数字电路答案第三章 1

更新时间:2024-03-03 19:54:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第三章 组合逻辑电路

本章以逻辑代数为数学工具,从逻辑门构成的组合逻辑电路入手,介绍分析和设计组合逻辑电路的基本方法,并讨论组合逻辑电路中的竞争冒险现象,为进一步学习带记忆功能的电路奠定基础。同时重点讨论若干常用中规模集成电路模块及其应用,利用VHDL语言实现数字电路的描述及设计。

第一节 基本知识、重点与难点

一、基本知识

(一)组合电路的分析与设计 1.组合电路基本概念

任一时刻的输出状态只取决于该时刻各输入状态的组合,与电路的原状态无关。电路只有从输入到输出的通路,没有从输出到输入的反馈回路。电路由逻辑门构成,不含记忆元件。

2.组合电路分析

用逻辑函数描述已知的电路,找出输入、输出间的逻辑关系,从而判断电路功能。 组合电路的分析步骤: (1)由已知逻辑电路图逐级写出逻辑表达式;

(2)化简逻辑表达式,可以采用代数法或卡诺图法化简表达式; (3)由表达式列出真值表;

(4)根据表达式或真值表分析并说明电路实现的逻辑功能。 3.组合电路设计

组合电路的设计是根据实际逻辑问题提出的要求,设计出满足要求的最简单或者最合理的组合电路。实现逻辑电路的方法有多种,采用小规模、中规模以及可编程逻辑器件,采用的器件不同,其设计方法有所不同,但是设计过程中对基本逻辑问题的描述、设计思路有其共性。

(二)组合电路的竞争冒险 1.组合电路中的竞争冒险现象 在组合电路中,信号由不同的途径达到门电路输入端的时间有先有后,这种现象称为竞争。由于竞争可能引起电路输出发生的瞬间尖峰脉冲现象称为冒险。竞争冒险现象将影响电路的工作速度、限制电路的最高工作频率,有时会导致电路无法正常工作。

2.竞争的类型

有两种类型的竞争可能产生冒险现象,一个门电路的多个输入信号同时变化引起的竞争;一个信号经不同路径传到同一个门的输入端,由于信号到达时间不同引起的竞争。

3.冒险现象的判断

在电路输入端只有一个信号改变的情况下,可根据逻辑表达式,采用代数法和卡诺图法判断组合电路是否存在冒险。

4.竞争冒险现象的消除 (1)加冗余项;(2)接滤波电容;(3)加选通信号。 (三)常用组合电路模块的功能

常用组合电路模块有编码器、译码器、数据选择器、数值比较器和加法器等。 1.编码器

数字系统中常采用多位二进制数码的组合对具有某种特定含义的信号进行编码,完成编码功能的逻辑电路称为编码器。编码器是一个多输入多输出电路,如果需要对m个输入信号进行编码,则需要n位二进制编码,2n≥m。常用的编码器有二进制编码器、优先编码器和二—十进制编码器等。

2.译码器

译码器将二进制代码翻译成具有特定含义的输出信号。常用的译码器有二进制译码器、二—十进制译码器和数字显示译码器等。常用的有3线-8线译码器74138、4线-10线8421BCD译码器7442等。

3.数据选择器

数据选择器根据地址选择信号从多路输入数据中选择一路送到输出端。数据选择器可等效成一个单刀多掷开关。常用的有4选1数据选择器74153、8选1数据选择器74151。

4.数值比较器

数值比较器可以对两个位数相同的二进制整数进行数值比较,判定其大小。常用的有4位二进制数值比较器7485。

5.加法器

实现二进制数加法运算的电路有半加器和全加器。将来自低位的进位以及两个1位二进制数相加产生和、进位称为全加;不考虑来自低位的进位的加法运算为半加器。实现半加运算的电路称为半加器,实现全加运算的电路称为全加器,常用的有快速进位4位加法器74283。

(四)常用组合电路模块的应用

常用组合电路模块属于中规模集成器件(MSI),其应用主要有几个方面:模块本身功能的使用、模块的扩展、用MSI设计其它功能的组合电路。这里主要总结最后一个方面。

1.用MSI设计组合电路的步骤

用MSI器件进行组合电路的设计没有固定的模式和统一的设计方法,通常不用考虑逻辑函数的最简形式。设计步骤的一般原则是:分析设计要求、求逻辑函数、选择适当形式的函数式、画逻辑图。选择的MSI器件不同,其函数的表达形式有所不同,因此需要根据器件的选择,灵活改变逻辑函数的表达方式。

2.用加法器设计组合电路

加法器除用作二进制加法运算外,还可以外加一些门电路实现其他算术运算,如减法运算、乘法运算、数码比较、代码转换、BCD码的加减法等。

3.用译码器设计组合电路

由于二进制译码器的n变量输入可以提供2n个输出,且为n变量的全部最小项或全部最小项的非。例如2-4线译码器有输入信号A、B,有4个输出信号Y0、Y1、Y2、和Y3,这4个输出分别是输入信号A、B的全部最小项。

任何组合逻辑函数都可以展开成最小项表达式,因此,用译码器可以实现任意组合逻辑电路。n变量逻辑函数可以用n变量二进制译码器和门电路实现。用译码器实现组合逻辑电路的优点是:不用化简函数,可以直接利用函数的最小项形式;用一个译码器可同时实现多输出函数。

4.用数据选择器设计组合电路

用数据选择器可以实现组合逻辑函数的步骤如下:

(1)选择数据选择器。根据给定组合函数的变量数确定选用何种数据选择器。通常数据选择器地址位数与给定函数的变量个数相等。

(2)确定数据选择器地址端与设计函数输入变量的连接。 (3)求数据选择器数据输入端的表达式。 (4)画出逻辑电路图。

用数据选择器实现组合逻辑函数时应注意:

(1)如果设计函数选择不同变量作为数据选择器的地址输入端,将得到不同的设计结果。

(2)用数据选择器实现多输出函数时,每个输出函数都要单独使用一个数据选择器。即数据选择器的数量与输出函数的个数相同。

(五)VHDL语言的基本应用 1.VHDL的基本组成

VHDL可以把任何复杂的电路视为一个模块,一个模块分为三个组成部分:程序包、设计实体和结构体。程序包是设计中的子程序和公用数据类型的集合,每个模块中的程序包有IEEE标准程序包或设计者自身设计的程序包,调用的数量不限。模块中仅有一个设计实体,设计实体提供该设计模块的端口信息,是VHDL设计电路的最基本部分。结构体描述的是实体的内部电路,描述实体内部的硬件互连关系、数据的传输和变换等。一个实体可以对应多个结构体,每个结构体可以代表该硬件的某一方面特性,例如行为特性,结构特性。

2.VHDL的行为描述

在VHDL中,描述电路逻辑的程序称为行为描述,行为描述有并行行为描述、进程行为描述和顺序行为描述。三种行为描述对应三种描述语句:并行语句、进程语句和顺序语句,这些语句可以独立成为行为描述体,又可以相互联系成为混合描述体。

3.VHDL的结构描述 VHDL的结构描述,就是要描述电路由哪些子元件组成以及各个子元件之间的互连关系。结构描述比行为描述更加具体化,行为描述的基本语句是进程语句,而结构描述的基本语句则是调用元件语句。

二、重点与难点 重点:

1.组合电路的基本概念

组合电路的信号特点、电路结构特点以及逻辑功能特点。 2.组合电路的分析与设计

组合电路分析是根据已知逻辑图说明电路实现的逻辑功能。 组合电路设计是根据给定设计要求及选用的器件进行设计,画出逻辑图。如果选用小规模集成电路SSI,设计方法比较规范且容易理解,用SSI设计是读者应掌握的最基本设计方法。由于设计电路由门电路组成,所以使用门的数量较多,集成度低。

若用中规模集成电路MSI进行设计,没有固定的规则,方法较灵活。

无论是用SSI或MSI设计电路,关键是将实际的设计要求转换为一个逻辑问题,即将文字描述的要求变成一个逻辑函数表达式。

3.常用中规模集成电路的应用 常用中规模集成电路有加法器、比较器、编码器、译码器、数据选择器和数据分配器等,重要的是理解外部引脚功能,能在电路设计时灵活应用。

4.竞争冒险现象

竞争冒险现象的产生原因、判断是否存在竞争冒险现象以及如何消除。 难点:

1.组合电路设计

无论是用SSI还是用MSI设计电路,首先碰到的是如何将设计要求转换为逻辑问题,得

到明确的真值表,这一步既是重点又是难点。总结解决这一难点的方法如下:

(1)分析设计问题的因果关系,分别确定输入变量、输出变量的个数及其名称。 (2)定义逻辑变量0、1信号的含义。无论输入变量、输出变量均有两个状态0、1,这两个状态代表的含义由设计者自己定义。

(3)再根据设计问题的因果关系以及变量定义,列出真值表。 2.常用组合电路模块的灵活应用

同样的设计要求,用MSI设计完成后,所得的逻辑电路不仅与所选芯片有关,而且还与设计者对芯片的理解及灵活应用能力有关。读者可在下面的例题和习题中体会。

3.硬件描述语言VHDL的应用

VHDL的应用非常灵活,同一个电路问题可以有不同的描述方法,初学者可以先仔细阅读已有的程序实例,再自行设计。

三、考核题型与考核重点

1.概念与简答

题型1为填空、判断和选择; 题型2为叙述基本概念与特点。 建议分配的分数为3~6分。 2.综合分析与设计

题型1为根据已知电路分析逻辑功能;

题型2为根据给定的逻辑问题,设计出满足要求的逻辑电路。 建议分配的分数为6~12分。

第二节 典型题解

例题3.1 分析例题3.1图所示电路的逻辑功能。 解:(1)根据已知逻辑电路,从输入端到输出 端逐级求函数表达式:

&

B

A?XYZ B?AX C?AY D?AZ

X Y Z

&

A

&

C

&

F

Y?BCD?AXAYAZ?XYZXXYZYXYZZ ?XYZX?XYZY?XYZZ

&

D

?XYZ(X?Y?Z)?(X?Y?Z)(X?Y?Z)

例题3.1图

(2)根据输出函数表达式列出真值表如例题3.1表所示。 (3)根据真值表分析电路的逻辑功能。

例题3.1表 真值表 分析例题3.1表,电路只有当输入取值不同时,

输 入 输 出 输出为1;输入取值相同时,输出为0。因此,例 X Y Z F 0 0 0 0 题3.1图所示的电路是三变量非一致电路。

0 0 1 1 例题3.2 试设计一个能判断两个二进制数字大、

0 1 0 1 小和相等的电路,用门电路和译码器实现。 0 1 1 1 解:(1)根据题意设两个两位二进制数A和B 1 0 0 1 1 0 1 1 为输入,用四个输入变量A1A0B1B0表示,A1A0表示

1 1 0 1 1 1 1 0 数A,B1B0表示数B。两个数的比较结果共有三种 情况,分别为A>B、A=B和A<B、,设三个输出 变量FA、FA=B和FB分别表示这三种情况,输出FA

取值为1表示A>B,取值为0表示A≯B,FA=B和FB的0、1取值的定义相似。

(2)根据题目对输入、输出变量提出的要求以及信号的定义,列写真值表如例题3.2表所示。

(3)由真值表,求函数表达式。

方法一:作函数卡诺图,化简函数,得到简化后的函数表达式:

FA?A1B1?A0B1B0?A1A0B0FB?A1B1?A1A0B0?A0B1B0 FA?B?FAFB例题3.2表 真值表

输入 A1 A0 B1 B0 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 输出 FA FA=B FB 0 1 0 0 0 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 输入 A1 A0 B1 B0 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 1 输出 FA FA=B FB 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 方法二:不求最简函数式,寻找变量、函数之间的关系,得到函数的另一种表达形式:

FA(A1,A0,B1,B0)??m(4,8,9,12,13,14)FA?B(A1,A0,B1,B0)??m(0,5,10,15)FB(A1,A0,B1,B0)??m(1,2,3,6,7,11)(4)由逻辑表达式画出门电路实现的逻辑图如例题3.2图所示。 方法一设计的电路如例题3.2图(a)所示。

A1 & FA 1 & ≥1 1

A0

1

&

FB

&

FA=B

B1 1

B0

1

&

& ≥1

1

&

例题3.2图(a)

(3)若改用或非门实现,首先写出相应的表达式。

画出F的卡诺图,得到F的与或式,从而求出F的与或非式,变换得到或非-或非式。

F=A?C?AB?AD?BC?C?D =A?C?A?B?A?D?B?C?D?C

函数F的或非门电路如思考题3.2图(c)所示。

题3.3 什么叫竞争-冒险现象?当门电路的两个输入端同时向相反的逻辑状态转换(即一个从0变成1,另一个从1变成0)时,输出是否一定有干扰脉冲产生?

答:竞争指的是一个门电路多个输入信号同时跳变,或者一个信号经过不同路径传到同一个门电路的输入端导致信号到达时间不同的现象。冒险指的是由于竞争可能在电路输出端产生的毛刺现象。当门电路的两个输入端同时向相反的逻辑状态转换时,输出不一定有干扰脉冲产生。

3.4 简述VHDL的主要优点。

答:VHDL的覆盖面广,描述能力强,是一个多层次的硬件描述语言,VHDL已成为IEEE承认的一个工业标准,是一种通用的硬件描述语言。

VHDL有良好的可读性,可以被计算机接受,也容易被读者理解,VHDL源文件既是程序又是技术人员之间交换信息的文件,也可作为合同签约者之间的文件;VHDL的生命周期长,因为VHDL硬件描述与工艺无关; VHDL支持大规模设计的分解和已有设计的再利用。

题3.5 一个VHDL设计是否必须有一个结构体?结构体的目的是什么?一个设计可以有多个结构体吗?

答:VHDL 设计中必须有结构体。结构体描述实体硬件的互连关系、数据的传输和变换以及动态行为。一个实体可以对应多个结构体,每个结构体可以代表该硬件某方面的特性。例如用一个结构体表示某硬件的行为特性,用另一结构体表示该硬件的结构特性。

题3.6 端口模式IN和INOUT有什么不同?

答:端口模式表示电路的数据流向。端口模式IN表示只能向端口写入数据,而端口模式INOUT表示既可以向端口写入数据,又可以从端口读出数据。

题3.7 编码器的逻辑功能是什么?优先编码器与一般编码器有何区别?

答:编码器可以将一组相互独立的信号进行编码,形成一组相互关联的信号,以达到减少信号个数、增强信号表达能力的目的。一般编码器只允许一个信号为有效,而优先编码器允许同时有多个信号有效,但只识别优先级最高的信号。

题3.8 要区别24个不同信号,或者说给24个输入信号编码,需要几位二进制代码?电路有多少个输出?如果区别64个信号有将如何?

答:若要区别24个不同信号,至少要用5位二进制代码,因此电路有5个输出。 若区分64个信号至少用6位二进制代码,因此电路有6个输出。 题3.9 什么叫译码器?有哪些常用译码器?各有何特点? 答:将具有特定含义的不同的二进制代码辨别出来,翻译成为对应输出信号的电路就是译码器。常用的译码器有变量译码器和数字显示译码器。

对于译码器每一组输入编码,在若干个输出中仅有一个输出端为有效电平,其余输出皆处于无效电平,这类译码器称为变量译码器。常用的有2-4线译码器、3-8线译码器、4-10线8421BCD译码器等。

在数字电路中,需要将数字量的代码经过译码,送到数字显示器显示。能把数字量翻译成数字显示器能识别的译码器称为数字显示译码器,常用的有七段显示译码器。

题3.10 数据选择器和数据分配器各具有什么功能?若想将一组并行输入的数据转换成

串行输出,应采用哪种电路?

答:数据选择器根据控制信号的不同,在多个输入信号中选择其中一个信号输出。数据分配器则通过控制信号将一个输入信号分配给多个输出信号中的一个。若要将并行信号变成串行信号应采用数据选择器。

题3.11 一个有使能端的译码器能否用作数据分配器?怎样接线可以使一个八路输出的数据分配器连接成一个3线-8线译码器?

答:带使能端的译码器能用作数据分配器。以74138译码器芯片为例,将其连接成数据分配器如思考题3.11图(a)所示。

BIN/OCT DX A0 A0 0 7 D0 0 7 Y0 0 0 A1 A1 1 6 D1 1 6 Y1 1 1 A2 A2 2 5 D2 2 5 Y2 2 2

3 4 D3 3 4 Y3

4 3 D4 F 4 3 Y4 F

& 1 5 2 D5 5 2 Y5 &

6 1 D6 6 1 Y6 D D 1 EEN E7 0 D7 7 0 Y7

0 (a) (b)

思考题3.11图

可以用八路输出的数据分配器连接成3线-8线译码器,连接电路如思考题3.11图(b)所示。

习题题解

习题3.1 组合电路的逻辑框图如习题3.1图(a)所示。电路要求如下:

(1)当变量A1A0表示的二进制数≥B1B 0表示的二进制数时,函数F1=1,否则为0。 (2)当变量A1A0的逻辑与非(A1A0)和变量B1B0的逻辑异或(B1?B0)相等时,函数F2

为高电平,否则为0。

试设计此组合电路。 解:(1)根据题意确定输入变量为A1A0B1B 0,输出变量为F1F2,如习题3.1图(a)。 (2)根据题目对输入、输出变量提出的要求,列写真值表如习题3.1表所示。

习题3.1表 真值表 输 入 A1 A0 B1 B 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 (A1?A0) (B1?B0) 0 1 1 0 0 1 1 0 0 1 1 0 0 输 出 F1 F2 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 0 1 (3)由真值表,作函数卡诺图如习题3.1图(b)所示。

B1 B A1 000 01 11 10 A0 00 0 A1 A0 B1 B0 F1 F0

01 B1 A1 B0 00 01 11 10 A0 00 0 01 0 1 1 0 1 F2 (b)

00 1 0 1 1 0 1 0 0 1 1 F1 00 0 0 0 0 1 0 1 11 1 11 1 10 0 10 (a)

1

A0 ≥1 &

B1 B0

A1 &

A0 B0

卡诺图化简函数,得到最简与或式:

F1?A1B1?A0B1B0?A1A0B0

A1 B1

&

B1 B0

=1

=1

F1

A1 A0

&

F2

(c)

习题3.1图

F2?A1B1B0?A1B1B0?A0B1B0?A0B1B0?A1A0B1B0?A1A0B1B0

变换F2的表达式

F2?A1(B1?B0)?A0(B1?B0)?A1A0B1?B0 ?A1(B1?B0)?A0(B1?B0)?A1A0B1?B0 ?(A1A0)?B1?B0(4)由逻辑表达式画出逻辑图如习题3.1图(c)所示。

习题3.2 用与非门设计四变量的多数表决电路。设输出为F,当输入变量A、B、C、D有3个或3个以上为1时输出为1,输入为其它状态时输出为0。

解:(1)根据题意确定输入变量为ABCD,设输出变量F。

(2)根据题目对输入、输出变量提出的要求,列写真值表如习题3.2表所示。

习题3.2表 真值表 输 入 A B C D 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 输 出 F 0 0 0 0 0 0 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 1 1 0 0 0 1 0 1 1 1 (3)由真值表,作函数卡诺图如习题3.2图(a)所示

C A D 00 01 11 10 B 00 0 01 0 0 0 1 0 01 1 1 0 0 1 0

习题 3.2图

& & F & 11 0 10 0 & & A B C A B D A C D B C D (b)

(a) 卡诺图化简函数,得到最简与或式,经函数变换求与非-与非式:

F=ABC+ABD +ACD+BCD =ABC?ABD?ACD?BCD

(4)由与非-与非表达式画出逻辑图如习题3.2(b)图所示。 习题3.3 一个组合逻辑电路有两个控制信号C1和C2,要求: (1)C1C2=00时,F?A?B; (2)C1C2=01时,F?AB; (3)C1C2=10时,F?A?B;

(4)C1C2=11时,F?AB。

试设计符合上述要求的逻辑电路(器件不限)。 解:题目中要求控制信号对不同功能进行选择,故选用数据选择器实现,分析设计要求,得到逻辑表达式:

F?C1C2(A?B)?C1C2(AB)?C1C2(A?B)?C1C2(AB)。

4选1数据选择器的逻辑表达式:

F?A0A1D0?A0A1D1?A0A1D2?A0A1D3。

对照上述两个表达式,得出数据选择器的连接方式为:

A0=C1,A1=C2,D0?A?B,D1?AB,D2?A?B,D3?AB。

根据数据选择器的连接方程,得到电路如习题3.3图所示。 习题3.4 试设计一个具有两种功能的 码制转换电路,并画出电路图。K为控制

变量。K=0时,输入C、B、A为二进制 码,输出F3F2F1为循环码。K=1时,输 入C、B、A为循环码,输出F3F2F1为二 进制码。写出输出函数的逻辑表达式。

解:(1)根据题意定义输入变量为 KCBA,输出变量F3F2F1。

(2)根据题目对输入、输出变量提出 的要求,列写真值表如习题3.4表所示。

A B

=1 & ≥1 C & S A C1 0A C2 1 D0 D1 D2 D3 0 EN MUX 0 0 G— 1 2 0 1 2 3 F 习题3.3图

习题3.4表 真值表 输 入 K C B A 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 1 1 0 1 1 1 1 0 1 1 1 1 输 出 F3 F2 F1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 1 0 1 (3)由真值表,作函数卡诺图如习题3.4图(a)所示。 经卡诺图化简后,得到最简与或式:

F3?CF2?CB?CB?C?BF1?KCB?A?KCBA?K?BA?KBA?C?BA?CBA?(KC)?B?A

(4)由逻辑表达式画出逻辑图如习题3.4图(b)所示。

B B K A 00 01 11 10 K A 00 01 11 10 C C

0 0 00 0 00 0 11 00 01 01 1 1 1 1 1 1 0 0 1 1 11 1 11 1 1 0 1 0 10 10 0 0 1 1 0 0 0 0 F2 F3 (a)

F3

=1 C F2

B =1 A & K

(b)

=1 F1

B K A 00 01 11 10 C 00 0 01 0 1 1 0 1 F1 00 1 0 1 1 0 1 11 1 10 0

本文来源:https://www.bwwdw.com/article/n0ta.html

Top