本书第1版为普通高等教育“十一五”国家级规划教材,2007年被评为江苏省高等学校精品教材,第2版为“十二五”普通高等教育本科国家级规划教材。本书在第1、2版的基础上,按照教育部电子电气基础课程教学指导委员会修订的课程教学基本要求修订而成。本次修订使内容更加先进,结构更为合理,特色更加鲜明,是高等院校电气信息类、机电类、仪器仪表类各专业数字电子技术基础课程的难得的好教材,而且可作为从事电子技术工作的工程技术人员的参考书。
将传统数字技术与自动化设计技术有机融合。本教材以数字电子技术的基本理论和基本技能为引导,以EDA平台和硬件描述语言为设计手段,将数字电子技术课程和EDA技术课程深度融合,建立传统数字电子技术设计和现代设计方法设计相结合的新课程体系。
保持知识结构的合理性、突显教材的新颖性。本教材以注重基本概念、基本单元电路、基本方法和典型电路为出发点,保证了数字电路知识点的完整性和合理性,同时教材中安排了许多针对性强的应用实例和自主创新型综合实践项目,体现了教材的新颖性。
有利于与后续课程形成良好对接。本教材在构建时兼顾了与后续课程的衔接,包括基本知识的衔接、设计项目的可延伸性以及对创新能力培养,尽可能为后续课程营建良好的接口。
前言Foreword本书第1版为国家普通高等教育“十一五”规划教材,2007年被评为江苏省高等学校精品教材,本书第2版为“十二五”普通高等教育本科国家级规划教材。本书列入“十二五”江苏省高等学校重点教材,编号:20141121。
本书在前两版的基础上,针对传统教材和教学中存在的问题,按照教育部电子电气基础课程教学指导委员会修订的课程教学基本要求,总结提高、修改增删而成。第3版教材在编写时突出了以下特点:
1.将传统数字技术与现代数字技术有机融合
本教材以数字电子基本理论和基本技能为引导,以EDA平台和硬件描述语言为设计手段,将数字电子技术课程和EDA技术课程深度融合,建立传统数字电子技术设计和现代数字电子设计方法相结合的新课程体系。
2.保持知识结构的合理性和新颖性
本教材以注重基本概念、基本单元电路、基本方法和典型电路为出发点,保证了数字电路知识点的完整性和合理性,同时教材中安排了许多针对性强的应用实例和自主创新型综合实践项目,体现了教材的新颖性。
3.有利于与后续课程构成创新能力教学课程体系
本教材在构建时兼顾了与后续课程的衔接,包括基本知识的衔接、设计项目的可延伸性以及对创新能力培养的铺垫等,尽可能为后续课程创建良好的接口,由此可将数字电路、单片机技术、EDA技术、SoC、嵌入式系统等具有较大相关性的课程构建一个创新课程系列有机体。这可以优化相关专业的课程设置,让学生提前进入理论与工程实践相结合的高效学习和训练阶段,提前激发创造欲望,提前具备进入自主设计性空间的能力,提前为未来的学习和实践打开充裕的时间空间、自主学习空间和就业准备空间。4.注重创新能力的培养
本教材通过教材的启迪和教材中大量的有创意启发性的项目的训练,能动地激发创新意识,培养自主创新能力,从而使学生在数字电子技术的基本理论、实践能力和创新精神3方面能得到同步收获,有能力提早进入大学生课外科技活动。本教材以数字电路传统技术的介绍为基础,以自动化设计技术的学习为能力培养的手段,注重现代数字技术基本知识、理论和方法的介绍,注重工程能力、分析能力和实践能力的培养,全书构建了从介绍基础知识向创新能力培养逐级递进的学习和实践的阶梯。
参加本书第3版编写工作的有吴志敏(第1、2章)、梁向红(第3、4章)、陆贵荣(第5、6、7章)、朱正伟(第8章)、何宝祥(第9章)、储开斌(第10章),朱正伟负责全书的策划、组织和定稿。
作者虽然力求完美,但由于水平有限,错误和疏漏之处难免,恳请关心本教材的师生和其他读者不吝指正。
编者2017年4月◆数字电路逻辑设计(第3版)
第3章chapter3
组合逻辑电路1.1微型计算机简介引言数字系统中常用的逻辑电路,就其结构和工作原理可分为两类:一类叫组合逻辑电路,简称组合电路;图3.1组合逻辑电路
一类叫时序逻辑电路,简称时序电路。组合逻辑电路的基本组成单元是逻辑门电路。这种电路在任一时刻输出状态只取决于该时刻的输入状态,而与输入信号作用前电路所处的状态无关;在时序逻辑电路中,任意时刻的输出状态不仅取决于该时刻的输入状态,而且取决于从前电路的状态。本章讨论组合逻辑电路,组合电路的一般结构可用方框图3.1表示,其输出与输入之间的逻辑关系是:Z1=f1(X1,X2,…,Xn),Z2=f2(X1,X2,…,Xn),…,Zm=fm(X1,X2,…,Xn)
从电路结构看,它具有如下特征:
(1)信号是单向传输的,输出输入之间没有反馈通道;
(2)只由逻辑门组成,电路中不含记忆单元。
组合电路可以单独完成各种复杂的逻辑功能,而且还是时序逻辑电路的组成部分,在数字系统中应用十分广泛。本章首先介绍小规模组合逻辑电路的分析与设计方法,然后讨论典型的中规模集成组合逻辑电路的功能和应用,最后阐述竞争冒险产生的原因及消除方法。
3.1传统的组合逻辑电路的分析与设计
小规模集成(SSI)电路中的门,如与门、或门、与非门、或非门、与或非门、异或门等都是独立的。本节主要介绍以这些门电路为基本组成单元的组合电路的分析与设计。
3.1.1传统的组合电路分析
所谓组合电路的分析,是指已知逻辑电路,寻找输出与输入之间逻辑关系,确定电路功能的过程。其步骤大致如下:
(1)由给定的逻辑图写出所有用来描述输出输入关系的逻辑表达式;
(2)将已得到的逻辑函数表达式简化成最简与或表达式,或视具体情况变换成其他适当的形式;
(3)根据逻辑函数表达式列真值表;
(4)根据真值表,进行分析并概括出给定组合逻辑电路的逻辑功能。
例3.1分析图3.2所示电路的功能。
图3.2例3.1逻辑电路和符号
解:(1)写出逻辑表达式。
D=AB,E=AD,F=DB,S=EF
(2)化简逻辑表达式。
S=AD·DB=AD+DB=AAB+ABB=AB
◆数字电路逻辑设计(第3版)第◆3章组合逻辑电路(3)列真值表,如表3.1所示。表3.1例3.1真值表输入输出ABS000011101110(4)对真值表中的数值进行分析可以看出,该电路完成了逻辑上的异或运算,异或逻辑符号见图3.2(b),它同时还可以实现二进制运算。
例3.2分析图3.3(a)所示电路的功能。
图3.3例3.2图解:(1)写出逻辑表达式。
S=AAB·BAB
C=AB
(2)化简逻辑表达式。
S=B+A
C=AB
(3)列真值表,如表3.2所示。表3.2例3.2真值表输入输出ABSC0000011010101101(4)根据图3.3和表3.2分析,可以将此电路看成是一个异或门(输出S:同例3.1)和一个与门(输出C)的合成,若A、B分别作为一位二进制数,则S就是A与B相加和的本位,C就是A与B相加和的进位。这种电路被称为半加器,图3.3(b)为它的逻辑符号,其特点是不考虑从低位的进位。若要考虑从低位来的进位,则电路可以将半加器作为单元电路经过一定的组合设计得到。
在分析复杂一些的组合逻辑电路时,除了上述按照逻辑门逐级分析的办法外,还可以将电路进行模块划分。若熟悉一些重要的基本单元电路(如例3.2的半加器),则可以直接从单元电路入手,分析单元电路在新建电路中的作用,最终得出复杂电路的逻辑功能。
例3.3分析图3.4(a)所示电路的功能。
图3.4例3.3电路图
如图3.4(a)所示,其中,Ai、Bi和Ci-1分别表示加数、被加数和从低位的进位,Si和Ci分别表示和的本位和进位。这样一个包括低位来的进位输入在内的二进制加法电路,称之为全加器,逻辑符号如图3.4(b)所示。全加器的真值表如表3.3所示。表3.3例3.3真值表输入输出输入输出AiBiCi-1SiCiAiBiCi-1SiCi0000000110010100110110010101011100111111(1)用两个半加器(虚线框)和一个或门实现了全加器:先求两个加数的半加和,再与低位的进位作第二次半加,所得结果即全加器的和。
(2)两个半加器的进位作逻辑加,即得全加器的进位。
例3.4分析图3.5所示电路的功能。
图3.5例3.4图
解:由图3.5写出逻辑表达式F=(10)D0+(1A0)D1+(A10)D2+(A1A0)D3根据表达式列出真值表,如表3.4所示。由表可以看出,当A1A0赋予不同的代码值时,输出F将获取相应的输入Di(i=0,1,2,3)。故电路相当于一个四路选择开关,对输入具有选择并输出的功能。
表3.4例3.4真值表输入输出A1A0F00D001D110D211D3由以上例题可以看出,在组合电路的分析过程中,写出逻辑表达式、列出真值表并不难,而由真值表说明电路的功能对初学者来讲就比较难,它需要一定的知识积累。
3.1.2传统的组合电路设计
所谓组合电路的设计,是指根据所要求实现的逻辑功能,设计出相应的逻辑电路的过程,在某些场合组合电路的设计也被称为逻辑综合。设计通常以电路简单、所用器件最少为目标。用代数法和卡诺图法化简逻辑函数,就是为了获得最简的形式,以便能用最少的门电路来组成逻辑电路。
组合电路的设计步骤大致如下:
(1)根据命题,分析输出输入关系,列出真值表;
(2)由真值表,写出有关逻辑表达式或画卡诺图;
(3)运用卡诺图或其他化简方法化简输出逻辑,注意化简的结果必须符合原来问题的要求,如:逻辑门类型的限制,输入端是否允许出现反变量等;
(4)根据输出逻辑表达式,画出逻辑电路图。
在进行组合逻辑电路的设计时,可以用多种逻辑电路实现同一逻辑函数。例如用逻辑电路来实现逻辑函数F=A·AB+B·AB。
(1)直接用与非门、与门、或非门实现,参见图3.6(a)。
图3.6逻辑函数的代数变换
(2)逻辑代数变换后,用与非门实现F=ABA+B=AB··参见图3.6(b)。
(3)代数变换后,用同或门实现F=A++B+=A+B=+AB参见图3.6(c)。
结论:以上均为同或门的逻辑电路和表达式,可见,一个逻辑问题对应的真值表是唯一的,但实现它的逻辑电路是多样的,可根据不同器件,通过逻辑表达式的变换来实现。
例3.5试设计一个3人多数表决电路。
解:(1)设3人A、B、C为输入,同意为1,不同意为0;表决结果F为输出,F始终同输入的大多数状态一致,即输入A、B、C之中有2个或3个为1时,输出为1;其余情况,输出为0。由此可列真值表,如表3.5所示。表3.5例3.5真值表输入输出ABCF00000010010001111000101111011111(2)画出卡诺图如图3.7所示。
图3.7卡诺图
(3)卡诺图化简(也可先写出逻辑表达式,再根据逻辑代数运算法则化简)得最简与或表达式F=AB+BC+AC(4)得出相应的逻辑图如图3.8(a)所示。若要求用与非门实现,则还需将上述表达式变换成如下形式F=AB·BC·AC再画出相应的逻辑图,如图3.8(b)所示。读者可进一步思考,若全部用两输入端与非门,怎么办?
图3.83人表决器
例3.6试用两输入与非门和反相器设计一个四舍五入的逻辑电路。用以判别一位8421码是否大于等于5,大于等于5时,电路输出为1,否则为0。
解:(1)根据题意列真值表。
假设输入的8421码用A、B、C、D表示,输出用F表示,则可得真值表如表3.6所示。当ABCD=0000~0100时,F=0;当ABCD=0101~1001时,F=1;需要说明的是:输入ABCD不可能取值1010~1111,这在逻辑电路设计中被称为约束条件,既然这些输入组合不会出现,也就不必要求对应的输出是什么,或者说输出可以是1,也可以是0,所以称其为任意项或无关项,一般在表达式中用d(真值表中用×)表示。表3.6例3.6真值表输入输出输入输出ABCDFABCDF00000100010001010011001001010×001101011×010001100×010111101×011011110×011111111×(2)求最简与或表达式。
根据表3.6中最后6个最小项作无关项处理,可以写出函数的最小项表达式F=∑(m5,m6,m7,m8,m9)+∑d(m10,m11,m12,m13,m14,m15)直接填入卡诺图,如图3.9所示。由此可得最简与或表达式F=A+BC+BD(3)若要求用两输入与非门和反相器实现,则还需将上述表达式变换成如下形式F=A+BC+BD=·BC·BD=·BC·BD=·BC+BD=·BC·BD(4)画出逻辑图,如图3.10所示。
图3.9例3.6卡诺图图3.10例3.6逻辑图从以上例题可以看出,由命题列出真值表是电路设计的关键。而逻辑表达式的不同形式决定了逻辑电路的结构组成,所以要得到一个符合实际要求的逻辑电路,逻辑表达式的化简和变换同样非常重要。
例3.7试用两输入与非门和反相器设计一个优先排队电路。火车有高铁、动车和普通客车。它们进出站的优先次序是:高铁、动车和普通客车,同一时刻只能有一列车进出。
解:(1)由题意进行逻辑抽象。火车用输入变量高铁A、动车B、普通客车C,输出信号为FA、FB、FC,当高铁A=1时,无论动车B、普通客车C为何值,FA=1,FB=FC=0;当动车B=1,且A=0时,无论C为何值,FB=1,FA=FC=0;当普通客车C=1,且A=B=0时,FC=1,FA=FB=0。
(2)经过逻辑抽象,可列真值表,如表3.7所示。表3.7例3.7真值表输入输出ABCFAFBFC0000001XX10001X010001001(3)写出逻辑表达式。FA=A,FB=B,FC=C根据题意,变换成与非形式FA=A,FB=B,FC=C=·C(4)画出逻辑电路图,如图3.11所示。
图3.11例3.7逻辑图
该逻辑电路可用一片内含4个两输入端的与非门74LS00和另一片内含6个反相器74LS04的集成电路组成,也可用两片内含4个两输入端的与非门74LS00的集成电路组成。注意:原逻辑表达式虽然是最简形式,但它需要一片反相器和一片三输入端的与门才能实现,器件数和种类都不能节省。由此可见最简的逻辑表达式用一定规格的集成器件实现时,其电路结构不一定是最简单和经济的。设计逻辑电路时应以集成器件为基本单元,而不应以单个门为单元,这是工程设计与理论分析的不同之处。
3.2编码器与译码器〖4/5〗3.2.1编码器所谓编码,即将某一信息(输入)变换为某一特定的代码(输出),如把二进制码按一定规律编排,使每组代码都具有各自特定的含义。常见的编码器是将m个输入状态信息变换成一个n位二进制码,其中m、n满足2n≥m,例如m=8,n=3,就称8线3线编码器。编码器通常分为普通编码器和优先编码器两种,以下分别以4线2线编码器和74LS148为例予以介绍。
1.普通编码器
普通编码器的特点是只允许在一个输入端加有效信号,否则输出将会出现混乱。
普通4线2线编码器真值表如表3.8(a)所示。表3.84线2线编码器真值表
(a)普通4线2线编码器真值表输入输出I0I1I2I3Y1Y0100000010001001010000111(b)加控制端的普通4线2线编码器真值表输入输出状态指示I0I1I2I3Y1Y0YS0000××01000001010001100101010001111编码器的输入为高电平有效。由真值表可得输出编码的逻辑表达式为Y1=0·1·I2·3+0·1·2·I3
Y0=0·I1·2·3+0·1·2·I3该电路存在的问题是当所有的输入都为0时,电路的输出为Y1Y0=00,和真值表中第一行的编码一样,无法区分,所以,提出一种解决方案,就是在输出端引入状态指示端子YS来区分有编码输入和无编码输入的情况,参见表3.8(b)。
……