前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇逻辑电路设计方法范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
Abstract: The introduction of the new course is an art of teaching, the successful introduction of new course can quickly attract the attention of students, and it is a successful half of the class. According to the characteristics of the course of "digital circuit and logic design", which is rich in content, theoretical abstraction, large span and strong practicality, this paper puts forward several specific new course introduction methods and applies them to the teaching process. Practice had proved that dull knowledge became lively and cheerful with these methods,and students took part in all discuss in classroom actively to improve the teaching and then successfully fulfill it.
P键词:新课导入;数字电路与逻辑设计;教学
Key words: the introduction of the new course;digital circuit and logic design;the teaching
中图分类号:G642.3 文献标识码:A 文章编号:1006-4311(2017)11-0181-02
0 引言
《数字电路与逻辑设计》课程是测控技术与仪器、电子信息工程、电气工程及自动化、计算机等专业的一门专业基础课程。该课程详细介绍了数字逻辑的基础内容、逻辑门电路、组合逻辑电路、锁存器和触发器、时序逻辑电路、脉冲波形的变换与产生、数模与模数转换、存储器和可编程逻辑器件[1]。该课程结合集成芯片,进行系统而广泛的描述,旨在培养学生了解和掌握典型数字集成电路的基本知识、使用方法和设计要点的基本技能。
该课程是许多专业的学生接触的第一门与实际电子、电器紧密相关的一门课程,更是学生学习今后专业课的基础。如何引导学生尽快入门,并且学好该课程,是教师需要认真考虑的一个重要问题。本文重点从新课导入方法来阐明如何学好该课程,因为良好的开端是成功的一半。新课导入引人入胜,可以产生凝聚效应,即凝聚学生的注意力、思想、情感,进而对该课程产生学习兴趣。本人根据教学经验的积累,将多种实用的导入方法总结归纳,根据知识点的特点,采用不同的新课导入方式,以期达到最有效的教学效果。
1 新课导入方法
1.1 史料法导入
《数字电路与逻辑设计》课程比较枯燥,教师如果适时、合理地将与该课程有关的历史人物或事件引入该课程,必将为枯燥的课程带来几分生动,同时激发学生的求知欲。如讲授数字电路与数字信号基础知识的时候,首先介绍电子技术的发展历程,从1906年福雷斯特等发明电子管,到1948年肖克利等发明晶体管。从60年代初出现的只有4个逻辑门的小规模集成电路,到目前使用的超大规模集成电路。每当电子器件有一次变革,电子技术就有一次突破性进展。每当电子器件发生变革的时候都伴随着与历史人物有关的有趣的小故事。通过历史人物的故事,加深学生对电子器件的认识。这样,很容易激发学生的学习兴趣,促使他们认真地去学习各种电子器件,并且深深体会每种器件所代表的时代特征,为后续知识的学习奠定基础。
1.2 温故导入
温故而知新是一种由已知向未知的导入方法,传统、简单、有效。通常以旧知识为铺垫,采用提问的方式复习已学知识,找出已学知识与新知识相联系的纽带,自然地过渡到对新知识的学习。这样既可以巩固所学知识,又可以帮助学生全面认识事物,提升学生的分析能力以及对知识的融汇贯通能力。比如讲授二进制数的算数运算时,先在黑板上给出一个十进制数,让学生转换成相应的二进制数、八进制数和十六进制数,这样不但复习了不同的数制,而且可以顺利引入二进制数的算数运算。因为加强了学生对十进制数到二进制数之间的转换之后,再来学进制数的运算就会事半功倍。
1.3 实例导入
实例导入即通过举例子或者练习题来回忆旧知识,并且很自然地过渡到新知识。比如,在最小项和卡诺图讲解结束,将要讲逻辑函数的卡诺图化简时。首先,给出一个逻辑函数表达式,接着提问学生“该表达式是不是最小项表达式?如果不是则写出其最小项表达式的形式和最小项编号的形式”;然后,根据学生已经写好的最小项表达式填写卡诺图,这样就通过一个例子将最小项和卡诺图的相关知识回忆和应用了一遍;最后,针对题目所给的逻辑函数表达式提问学生“该表达式是不是最简的形式呢?若不是该如何化简?”这时学生很自然地会用代数化简法进行化简,化简完成之后告诉学生代数化简法的缺点并引出卡诺图化简法。即代数化简法要求熟练掌握逻辑代数的基本定律,而且需要一些技巧,特别是经代数法化简后得到的逻辑表达式是否是最简式较难掌握,这就给使用代数化简法带来一定的困难,使用卡诺图化简法可以比较简单而直观地得到最简逻辑表达式。那么,这个时候学生自然会被卡诺图化简法所吸引,顺理成章进入新课程。
再比如,当讲解到编码器时,在讲解之前先举一个大家很熟悉的例子,即每个学生都有一个学号,名字可以重名,但是学号是唯一的,这就是用十进制数将学生进行了编码。紧接着提出“在数字电路里面,什么是编码呢?”带着该问题引入到新课的学习中。
以实例为桥梁导入新课的方法有很多种方式,都是通过举例吸引学生注意力,并且强化学生对理论知识的运用,使师生之间更容易产生互动。
1.4 对比导入
所谓对比导入就是根据新旧知识的关联点、异同点,采用正反对比的方式导入新课。《数字电路与逻辑设计》课程中功能相反、思路相反的例子很多。组合逻辑电路的分析与设计、时序逻辑电路的分析与设计、编码器与译码器等等。在讲授这些内容时,应用对比法导人可以使学生加深对所学知识的理解与掌握。
比如,组合逻辑电路的分析讲解结束,将要讲组合逻辑电路的设计时。首先,回顾组合逻辑电路的分析,即已知条件是逻辑电路,待求条件是逻辑功能;然后,紧跟着提问学生“如果反过来,即已知条件是逻辑功能,待求条件是逻辑电路,又该如何解决呢?”由此过渡到新课,即组合逻辑电路的设计。同样,同步时序逻辑电路的分析讲解结束之后,依然采用对比导入方式引出并讲解同步时序逻辑电路的设计。
又比如,在讲授译码器时,通过回顾编码器的工作过程对比引入译码器的工作过程。即先列出三位二进制编码器的编码表,然后说明译码器和编码器的工作过程相反,编码器是将某种信号或十进制数码(输入)编成二进制代码(输出),译码器则是将二进制码(输入)按其编码时的原意译成对应的信号或十进制数码(输出),从而很容易列出三位二进制译码器的状态表。这样,通过对比的方式回顾并学习了编码器的知识和译码器的状态表之后,再介绍译码器的其余知识就会很容易,学生也会很好地区别和理解编码器及译码器。同样,数据分配器和数据选择器、数~模转换器和模~数转换器、锁存器和触发器等很多内容的讲解都可以采用对比的方式。
1.5 实物导入
《数字电路与逻辑设计》课程是一门应用性、实用性都很强的课程,如果教师能恰当地选择一些与讲课内容密切相关又符合学生认知能力的电子小产品来导入新课,也不失为一种引发学生兴趣,培养解决实际问题的好方法。在讲组合逻辑电路设计时,笔者以“设计好的一个切实可行的表决器”为例导入新课,告诉学生们学完今天的内容,你就会做表决器,甚至更复杂的电子产品。这样理论和实际一下子联系起来了,学生们也一下子来了精神。此时,教师适时提问“实际中的表决器有什么特点?它属于什么电路?怎样实现呢?”这样因势利导地切入正题引入这节课要讲的内容。教师要善于引用学生熟悉的现象、事例来导入新课,使学生有一种亲切感和实用感,从而激发学生兴趣,让学生真正感受到学习了此课程我就可以做什么。
再比如,在讲授典型的时序逻辑电路的时候,将已经设计好的计数器带入教室,让学生们先了解一下其功能,以及现实生活中经常用到计数器的地方,加强理论与实际的联系;然后通过提问学生“计数器的电路是如何来设计的?怎样实现呢?”这样不仅可以有效地吸引学生注意力,而且很自然地过渡到新知识的讲解。需要实物导入的地方很多,再比如单稳态触发器、施密特触发器、多谐振荡器等的讲解都可以采用实物导入的方式,通过实物加深学生对理论知识的理解与巩固,提升学生的感性认识,从而使枯燥的课堂变得活跃、充满学习热情。
2 结束语
新课导入是课堂教学中一个必不可少的环节,是教师引导学生参与学习的过程和手段,也是教师必备的一项基本的教学技能,有效的课堂导入可以充分体现学生的主体地位和教师的主导作用。通过上述方法的实践证明:一些成功的、高效的新课导入可以开启学生的思维,提高教W质量,为学生后续专业课的学习奠定良好的基础。
参考文献:
[1]白彦霞,张秋菊.数字电子技术基础[M].北京:北京邮电大学出版社,2009.
关键字:数字电路;组合逻辑电路;时序逻辑电路
中图分类号:TN79文献标识码:A 文章编号:1673-0992(2010)06A-0042-01
众所周知,近年,科学技术的不断进步带动许多行业发生了翻天覆地的变化,电子信息行业走在了科学发展的前列,表现尤为突出的是数字电子技术,科学进步的浪潮中它迅速前进,已成为当前发展最快的学科之一,数字逻辑器件已从60年代的小规模集成电路(SSI)发展到目前的中、大规模集成电路(MSI、LSI)及超大规模集成电路(VLSI)。那么,逻辑器件的变化也会影响整个数字逻辑电路的发展。
一、数字电路的状态
数字电路顾名思义就是对数字信号进行算术运算和逻辑运算的电路,它只有两个状态就是0和1。在数字电路中,低电平用0表示,高电平用1表示,有时低电位也用字母L(Light)表示,而高电位用字母H(High)表示。另外在对0和1理解时,还会有时间限制,因为数字0、1表示电路状态,结合时间看电路时,要明白电路工作时序。
二、数字逻辑电路的基本定律
数字电路的设计在生活中使用非常广泛,但是怎样设计出符合要求的电路,这就是一门技术活了。因此理解数字电路设计,重点在基本概念和基本方法上。数字设计中逻辑代数基本定律、组合逻辑和时序逻辑的概念是分析和设计数字系统的基础,也是设计大规模集成芯片的基础,所以我们在说数字电路设计之前就要先了解逻辑代数的基本知识定律。逻辑代数是英国数学家乔治.布尔(Geroge . Boole)于1847年首先进行系统论述的,也称布尔代数。 所研究的是两值变量的运算规律,即0,1表示两种不同的逻辑状态,称这种只有两种对立逻辑状态的逻辑关系为二值逻辑。在逻辑代数中我们最先了解的就是进制的转换,计算机系统中一般二进制、八进制、十进制、十六进制是了解最多的,转换这些进制也是最容易的,掌握其中的计算方法就能得到。
三、数字电路设计―组合逻辑和时序逻辑
在做数字电路设计时主要就是组合逻辑电路设计和时序逻辑电路设计。从一方面说,这两种电路的设计是数字电路中的一个最基本的也是最重要的部分,只有会做这两种电路的设计才算是对数字电路入门了。所以我们先对这两种设计作下简单的介绍。
如果说逻辑电路设计是数字电路的最基础的组成部分,那么门电路就是带动这些部分运转的重要元素,就像是一部机器,门电路就是机器中的零件,大家都知道零件在机器的运转中起着不容小觑的作用,如果在某个部位因为一个小零件的出错,可能会导致整个机器出故障。逻辑电路中最基本的门电路通常是与门、或门、非门。与门是逻辑与运算的单元电路;或门是逻辑或运算的单元电路;非门,也叫反相器,是实现逻辑非运算的电路。在实际的应用中并不是把它们直接使用,而是将它们组合成复合逻辑运算与非、或非、与或非、异或、同或等常用的门来实现其功能。我们在日常生活中见得最多的就是交通灯的控制,就是用组合逻辑电路设计成的。在组合逻辑电路的设计中,利用门电路的组合完成的很多电路的设计,编码器、译码器就是组合逻辑电路中的器件,组成的液晶显示器LCD,数码显示器LED。
时序逻辑电路中,主要的零件就是集成触发器,在各种复杂的数字电路中不但需要对二值信号进行算术运算和逻辑运算,还经常需要将这些信号和运算结果保存起来,因此需要使用记忆功能的基本逻辑单元,而这种能储存信号的基本单元电路就是触发器。迄今为止,人们已经研制出了很多种触发器电路,根据电路结构形式的不同,可以分为基本RS触发器、同步RS触发器、主从触发器、边沿触发器等。这些触发器的研制都是在前一种触发器的基础上改进而来的,通俗的说是后人在前人的研究发明中不断提炼出的新器件。因此同步触发器是建立在基本RS触发器的基础上的,基本RS触发器输入信号可以直接控制触发器的状态翻转,而在实际应用中往往要求在约定脉冲信号到来时,触发器才能翻转,所以才有同步RS触发器的出现。但是同步RS触发器有空翻现象,不能正常计数,因此人们又研制了主从触发器,同样为了克服主从触发器的一次性变化,就有了边沿触发器的产生。
四、数字集成电路
在很多人看来,数字集成电路是非常空洞的东西,因为只是一块芯片,却能实现如此多的功能。那在数字集成电路中主要有哪些电路呢?常用的数字集成电路一般有CMOS电路和TTL电路两种。CMOS电路有消耗功率低,工作电压范围广和噪声容限大的特点,虽然在CMOS电路的输入端已经设置了保护电路,但由于保护二极管和限流电阻的几何尺寸有限,它们所能承受的静电电压和脉冲功率均有一定限度。CMOS集成电路在储存运输、组装和调试过程中难免会接触到某些带静电高压的物体,所以一般要对输入的静电进行保护,另外CMOS还会出现电路锁定效应,一般为了使用安全和方便,人们一直在研究从CMOS电路本身的设计和制造上克服锁定效应方法。当然,集成电路一般的要求都非常高,它需要预先对芯片进行设计,编制一定的程序,而我们往往使用现成的电路,对它只做了一定的分析。
通过对数字电路的基本知识的解读,当然这只是很浅的一方面。而数字电路涉及到的一些专用的集成电路。由于专用集成电路(ASIC)是近期迅速发展起来的新型逻辑器件,这些器件的灵活性和通用性使它们已成为研制和审计数字系统的最理想器件。因此数字电路的发展在今后还有很大的空间,但是在发展的同时,数字电路的基础的知识是不会改变的,只会在原来的基础上得到更大的改进,这需要新新的电子人来改进数字电路的不足地方,将它所存在的每一个缺点进行弥补,使各个部分它的作用发挥到最大。
数字电路在实际运用中将越来越广泛,现在在要求普及的数字电视已经进入了千家万户,数字化已经成了必然的趋势。但是任何技术知识,基础都是最根本,最主要的,数字电路的组成刚好是是基础。数字化的时代已经到来,打好基础知识是数字电路发展的前提条件。
关键词: 数字电路设计; 现代数字逻辑设计方法; 数字电路教学改革; 转换真值表
中图分类号: TN710?34; TP302.1 文献标识码: A 文章编号: 1004?373X(2014)07?0139?04
Research on the necessity of change in digital circuit design method
based on CPLD/FPGA
SHUANG Kai, CAI Hong?ming
(College of Geophysics and Information Engineering, China University of Petroleum (Beijing), Beijing 102249, China)
Abstract: Application of large?scale programmable logic device has brought great flexibility to digital system design. The introduction of standard logic design language has greatly changed the design method, design process and design concepts of traditional digital system. As a technical foundation teaching link in the university, it should be adjusted accordingly. The problems of the traditional design approach and advantages of modern logic design methods are compared through the combinational logic and sequential logic design examples. By contrast, the modern logic design techniques has replaced the traditional method of digital system design and become the mainstream of the digital circuit design, which is the inevitable trend of development of electronic technology.
Keyword: digital circuit design; modern digital logic design method; digital circuit teaching reform; conversion truth table
0 引 言
20世纪90年代,国际上电子和计算机技术较为先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过类似软件编程的方式对其硬件结构和工作方式进行重构,从而使硬件设计像软件设计那样方便快捷。这就极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了数字逻辑电路设计技术的迅速发展。本文通过几个设计实例的对比阐述一个道理,随着数字电路中先进设计方法的引入,高等学校中数字电子技术的教学内容必须随之得到改善,使之与技术进步相互适应[1?3]。
数字电路根据逻辑功能的特点,分成两类,一类叫组合逻辑电路(简称组合电路),另一类是时序逻辑电路(简称时序电路)。组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅取决于该时刻的输入,与电路初态无关。而时序逻辑电路任意时刻的输出不仅取决于当时的输入信号,还取决于电路原来的状态。本文从这两方面就传统手工设计存在的问题进行讨论。
1 组合逻辑设计中传统设计方法与可编程逻辑
设计方法的对比
列真值表,逻辑关系式,逻辑化简是组合逻辑设计的几个重要步骤。但这一经典的组合逻辑设计步骤并不总是必须的。实现特定逻辑功能的逻辑电路也是多种多样的。为了使逻辑电路的设计更简洁,通过各种方法对逻辑表达式进行化简是必要的。组合电路设计就是用最简单的逻辑电路实现给定逻辑表达式。在满足逻辑功能和技术要求基础上,力求电路简单、可靠。实现组合逻辑函数可采用基本门电路,也可采用中、大规模集成电路。
例1:三个人表决一件事情,结果按“少数服从多数”的原则决定这一逻辑问题[4?5]。在“三人表决”问题中,将三个人的意见分别设置为逻辑变量A、B、C,只能有同意或不同意两种意见。将表决结果设置为逻辑函数F,结果也只有“通过”与“不通过”两种情况。
传统的逻辑设计需要由下面的4个步骤完成:
(1) 列真值表
对于逻辑变量A、B、C,设同意为逻辑1,不同意为逻辑0。对于逻辑函数F,设表决通过为逻辑1,不通过为逻辑0。
根据“少数服从多数”的原则,将输入变量不同取值组合与函数值间的对应关系列成表,得到函数的真值表如表1所示。
表1 例1的真值表(共有23=8行)
[A\&B\&C\&F\&0\&0\&0\&0\&0\&0\&1\&0\&0\&1\&0\&0\&0\&1\&1\&1\&1\&0\&0\&0\&1\&0\&1\&1\&1\&1\&0\&1\&1\&1\&1\&1\&]
(2) 列逻辑函数表达式
三人表决器的逻辑表达式为:
[F=ABC+ABC+ABC+ABC] (1)
设N为上式中的逻辑项数,这时,共有逻辑项[N=C23+C33=4]项。
(3) 逻辑化简
三人表决器的逻辑表达式可化简为:
[F=BC+AC+AB]
(4) 画出逻辑电路图如图1所示。
尽管上面的分析看上去没有错误,但上例中的“三人表决器”设计给学生一个误导,好像按照上述的设计步骤就可以进行组合逻辑设计了。可以推导,若表决人数用[p]来表示,逻辑表达式的项数为[Np=k=p2+1pCkp,]其中[Ckp]为逻辑项的组合数。以[p=7]为例,这时表1中的表项为27=128项,式(1)中的逻辑项数N变为[N7=C47+C57+C67+C77=64]。
图1 例1的逻辑图
显然,随着表决者数量的增加,逻辑项数急剧增加,真值表不易绘制,逻辑公式无法手工书写,逻辑化简也非常困难。
多数表决器的逻辑公式由于过多的项数不易采用公式法化简。如果采用卡诺图化简法也会因输入变量过多而导致传统化简方法失效。
标准逻辑设计语言的出现给大规模逻辑设计带来了新的希望。硬件描述语言(HDL)的采用可以使设计者的精力集中于所设计的逻辑本身,不必过多的考虑如何实现这个逻辑以及需要用哪些定型的逻辑模块。这在以往中小规模集成电路逻辑设计与大规模可编程逻辑设计方法上产生了本质的差别。Verilog是一种以文本形式来描述数字系统硬件结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。在此,用Verilog设计一个“七人表决”逻辑,以考察采用现代逻辑设计方法较传统设计方法的优势。
在表决器的设计中,关键是对输入变量中为1的表决结果进行计数,如果把全部的逻辑状态列表分析,势必存在冗余的设计资源。根据多数表决的性质,考虑采用加法逻辑来统计表决结果,之后再判决加法器输出中1的个数即可实现该逻辑。Verilog设计如图2所示。
图2 七人表决的Verilog逻辑
在“七人表决”逻辑中,不再专注于每个逻辑变量状态的变化,只抓住关键问题多数表决有效,并用条件操作符“?”设计出所需的Verilog行为逻辑,剩下的实现问题交由计算机综合(synthesis)。可以看到,采用标准化的硬件描述语言,能有效地避开以往组合逻辑设计中逐一考察每个输入逻辑状态所带来的逻辑状态分析的爆炸,从而可以用较短的设计时间得到正确的逻辑输出。众所周知,加法器、比较器都是传统的组合逻辑教学内容,但以往的教学中由于采用手工分析方法,很难把这些不同的逻辑设计内容综合考虑进来。笔者认为,现代逻辑设计方法的引入将逐渐转化人们对传统逻辑设计中的关注点,势必引起逻辑设计教学方法的更新。有必要加大逻辑功能综合设计的内容,减少元器件级逻辑单元选型在教学中的比例。
2 时序逻辑设计中传统设计方法与现代可编程
逻辑设计方法的对比
数字电路的另一类设计内容是时序逻辑设计。时序逻辑设计分为同步与异步时序逻辑设计。一般地,同步时序逻辑设计的难度要高于异步时序逻辑。因此,也在时序逻辑电路设计上占有较多的学时。如果在教学改革中仅把可编程逻辑设计作为传统时序逻辑设计内容的补充,不但不能使学生体会到先进的计算机辅助逻辑设计所带来的便捷,还可能使学生按照传统的手工时序逻辑设计步骤去理解可编程时序逻辑,导致时序逻辑设计的复杂化,增加逻辑验证的成本。因此,有必要探讨传统设计方法与现代逻辑设计方法之间的差别。下面根据一个典型的时序逻辑设计来说明。
例2:试设计一个序列编码检测器[6?7],当检测到输入信号出现110序列时,电路输出1,否则输出0。
这个序列编码检测器如果按照传统的时序设计步骤,将会异常繁琐:
(1) 由给定的逻辑功能建立原始状态图和原始状态表
从给定的逻辑功能可知,电路有一个输入信号A和一个输出信号Y,电路功能是对输入信号A的编码序列进行检测,一旦检测到信号A出现连续编码为110的序列时,输出为1,检测到其他编码序列时,输出为0。
设电路的初始状态为a,如图3中箭头所指。在此状态下,电路输出[Y=0,]这时可能的输入有[A=0]和[A=1]两种情况。当CP脉冲相应边沿到来时,若[A=0,]则是收到0,应保持在状态a不变;若[A=1,]则转向状态[b,]表示电路收到一个1。当在状态[b]时,若输入[A=0,]则表明连续输入编码为10,不是110,则应回到初始状态[a,]重新开始检测;若[A=1,]则进入状态[c,]表示已连续收到两个1。在状态[c]时,若A=0,表明已收到序列编码110,则输出[Y=1,]并进入状态d;若[A=1,]则收到的编码为111,应保持在状态[c]不变,看下一个编码输入是否为[A=0;]由于尚未收到最后的0,故输出仍为0。在状态[d,]若输入[A=0,]则应回到状态[a,]重新开始检测;若[A=1,]电路应转向状态[b,]表示在收到110之后又重新收到一个1,已进入下一轮检测;在[d]状态下,无论[A]为何值,输出[Y]均为0。根据上述分析,可以得出如图3所示的原始状态图和表2所示的原始状态表。
图3 例2的原始状态图
表2 例2的原始状态表
[现态
[(Sn)]\&次态/输出[Sn+1Y]\&现态
[(Sn)]\&次态/输出[Sn+1Y]\&[A=0]\&[A=1]\&[A=0]\&[A=1]\&[a]
[b]\&[a/0]
[a/0]\&[b/0]
[c/0]\&[c]
[d]\&[d1]
[a/0]\&[c/0]
[b/0]\&]
(2) 状态化简
观察表2现态栏中[a]和[d]两行可以看出,当[A=0]和[A=1]时,分别具有相同的次态[a、][b]及相同的输出0,因此,[a]和[d]是等价状态,可以合并。最后得到化简后的状态表,见表3。
表3 例2经化简的状态表
[现态
[(Sn)]\&次态/输出[Sn+1Y]\&现态
[(Sn)]\&次态/输出[Sn+1Y]\&[A=0]\&[A=1]\&[A=0]\&[A=1]\&[a]
[b]\&[a/0]
[a/0]\&[b/0]
[c/0]\&[c]
\&[a1]
\&[c/0]
\&]
(3) 状态分配
化简后的状态有三个,可以用2位二进制代码组合(00,01,10,11)中的任意三个代码表示,用两个触发器组成电路。观察表3,当输入信号A=1时,有abc的变化顺序,当A=0时,又存在ca的变化。综合两方面考虑,这里采取00011100的变化顺序,会使其中的组合电路相对简单。于是,令a=00,b=01,c=11,得到状态分配后的状态图,如图4所示。
图4 例2状态分配后的状态图
(4) 选择触发器类型
这里选用逻辑功能较强的JK触发器可以得到较简化的组合电路。
(5) 确定激励方程组和输出方程组
用JK触发器设计时序电路时,电路的激励方程需要间接导出。表4所示的JK触发器特性表提供了在不同现态和输入条件下所对应的次态。而在时序电路设计时,状态表已列出现态到次态的转换关系,希望推导出触发器的激励条件。所以需将特性表做适当变换,以给定的状态转换为条件,列出所需求的输入信号,称为激励表。根据表4建立的JK触发器激励表如表5所示。表中的[x]表示其逻辑值与该行的状态转换无关。
表4 JK触发器特性表
[[Qn]\&[J]\&[K]\&[Qn+1]\&[Qn]\&[J]\&[K]\&[Qn+1]\&0\&0\&0\&0\&1\&0\&0\&1\&0\&0\&1\&0\&1\&0\&1\&0\&0\&1\&0\&1\&1\&1\&0\&1\&0\&1\&1\&1\&1\&1\&1\&0\&]
表5 JK触发器的激励表
[[Qn]\&[Qn+1]\&[J]\&[K]\&[Qn]\&[Qn+1]\&[J]\&[K]\&0\&0\&0\&[x]\&1\&0\&[x]\&1\&0\&1\&1\&[x]\&1\&1\&[x]\&0\&]
根据图4和表5可以列出状态转换真值表及两个触发器所要求的激励信号,见表6。
表6 例2的状态转换真值表及激励信号
[[Qn1]\&[Qn0]\&[A]\&[Qn+11]\&[Qn+10]\&[Y]\& 激励信号\&[J1]\&[K1]\&[J0]\&[K0]\&0\&0\&0\&0\&0\&0\&0\&[x]\&0\&[x]\&0\&0\&1\&0\&1\&0\&0\&[x]\&1\&[x]\&0\&1\&0\&0\&0\&0\&0\&[x]\&[x]\&1\&0\&1\&1\&1\&1\&0\&1\&[x]\&[x]\&0\&1\&1\&0\&0\&0\&1\&[x]\&1\&[x]\&1\&1\&1\&1\&1\&1\&0\&[x]\&0\&[x]\&0\&]
据此,分别画出两个触发器的输入J、K和电路输出Y的卡诺图,如图5所示。图中,不使用的状态均以无关项x填入。
图5 激励信号及输出信号的卡诺图
化简后得到激励方程组和输出方程。
[J1=Q0AK1=AJ0=AK0=AY=Q1A]
(6) 画出逻辑图,并检查自启动能力
根据激励方程组和输出方程画出逻辑图,如图6所示。
图6 例2的逻辑图
如果发现所设计的电路不能自启动,还应修改设计,直到能自启动为止。
由上面所列举的设计方法可以想见,继续增加检测位数会使逻辑设计更加复杂。
从上例可以看到,传统的时序逻辑设计方法尽管可以用来实现时序逻辑的设计,但设计步骤不仅复杂且需要设计者大费周折。可以预见,使用传统的时序逻辑设计方法设计复杂时序电路的难度很大。那么,采用什么方法才能使教学与现代逻辑设计技术接轨呢?
时序电路也被称为有限状态机(FSM)[6,8],因为它们的功能行为可以用有限的状态个数来表示。在与可编程逻辑设计的对比分析中,这里采用FSM设计这个序列检测器。
根据图3的状态转换图(采用图4中化简的状态转换图亦可),给逻辑状态[a,b,c,d]分别分配以Gray编码(00,01,11,10)。之所以采用Gray编码方法,是可以省掉序列检测中的计数检测。序列检测器的FSM逻辑如图7所示。经仿真验证,符合设计要求。
图7 例2的FSM实现
从上面的对比可以看出,传统时序逻辑设计以人工逻辑分析为基础,现有逻辑器件为基础构件,历经基本逻辑方程转换及最后的状态验证等多个环节,设计周期长,仅适合设计小规模、时序简单的逻辑单元[9];现代标准逻辑设计语言的设计方法以逻辑状态转换本身为要点,从逻辑门与触发器级逻辑设计上升的行为逻辑设计,更易于用来设计复杂的现代大规模时序逻辑。
3 结 论
现代逻辑设计方法的引入将逐渐转化人们对传统逻辑设计的关注点,大学基础教学中逻辑电路的设计方法也应随着这一技术的引入更新它的内容,改变传统逻辑设计占主导地位的现状。可以预见,大规模可编程逻辑器件的引入将会从根本上改变数字电子技术的教学模式。现代逻辑设计概念的引入,减少手工逻辑设计方法的比重、增加现代数字电路设计方法,注重基本概念的灵活运用都是数字电路教学改革的选题。广泛开展现代逻辑设计方法的研究,势必带来逻辑设计方法教学的变革。对于高等学校的教师来说,做好改革的思想准备已经是刻不容缓的了。
参考文献
[1] 鲍家元,毛文林.数字逻辑[M].北京:高等教育出版社,2002.
[2] 吕乐,杨爱琴.谈《数字电路与逻辑设计》课程教学改革[J].中国成人教育,2008(3):125?127.
[3] 李小珉,叶晓慧.深化《数字电路与逻辑设计》课程改革[J].长江大学学报:自科版,2004,1(4):124?125.
[4] 侯建军,路而红,熊华刚,等.数字电子技术基础[M].2版.北京:高等教育出版社,2007.
[5] 易亚军.《数字电子技术》教学研究[J].教育研究,2008(6):121?122.
[6] 康华光,邹寿彬,秦臻.电子技术基础:数字部分[M].5版.北京:高等教育出版社,2006.
[7] 邓水先.《数字逻辑电路》课程的教改探索[J].职业教育研究,2008(8):68?69.
关键词:数字逻辑;课堂教学;实验教学
作者简介:徐银霞(1979-),女,湖北武汉人,武汉工程大学计算机科学与工程学院,讲师。(湖北 武汉 430073)
中图分类号:G642.421 文献标识码:A 文章编号:1007-0079(2013)28-0104-02
“数字逻辑”是计算机专业一门重要的硬件基础课程,其主要目的是使学生掌握数字系统分析与设计的理论知识,熟悉各种不同规模的逻辑器件,掌握各类逻辑电路分析与设计的基本方法,为数字计算机或其它硬件电路分析与设计奠定基础。[1]“数字逻辑”课程教学一般采用课堂教学与实验教学相结合的方式,使得学生掌握数字电路分析与设计的一些理论知识,同时培养学生电路设计、制作与调试以及分析问题、解决问题的能力。学生的学习效果一直是教学当中的重中之重,因此如何有效利用有限的理论与实验教学时间培养学生的综合素质是一个值得探讨的问题。笔者结合多年的教学实践经验,分别对课堂教学和实验教学环节就“数字逻辑”课程的教学方法做一次探讨。
一、“数字逻辑”课程的课堂教学
课堂教学效果直接决定学生理论知识掌握的程度,也影响随后的实验及实践能否顺利进行。在课堂教学中采用任务式教学、课堂讨论、电路仿真演示以及硬件描述语言电路设计等方式进行教学,取得了满意的效果。
1.任务式教学
明确任务,使学生掌握方法,做到举一反三。教学过程中将 “数字逻辑”课程的知识点归纳整理成若干个任务。比如数字电路按逻辑功能分成组合逻辑电路和时序逻辑电路两大类,主要的问题是电路分析与设计两个方面。按电路规模要求重点掌握的是小规模和中规模电路,所以任务主要有小规模组合电路的分析、小规模组合电路的设计、中规模组合集成芯片、中规模组合电路分析、中规模组合电路设计;小规模时序电路分析、小规模时序电路设计、中规模时序集成芯片、中规模时序电路分析、中规模时序电路设计等等。对于每一个问题明确任务,分析解决办法,归纳一般的解答步骤及注意事项,举例证明方法的可行性。比如对于中规模组合芯片的学习,仅以数据选择器为例,引导学生上网查阅芯片资料,阅读资料找出芯片的功能表、输出表达式,逻辑图和引脚图以及典型应用。这样,学生不仅掌握了该芯片的全部知识要点,还可以掌握中规模组合集成芯片这类芯片的学习方法。此后,对于所有此类芯片学生都能够通过自行查找芯片资料来掌握,节约了课堂时间,学生也获得了自主学习的成就感。
2.增加课堂讨论
精讲多练,给予学生充分的讨论时间。为提高学习效果,在提出任务、介绍原理及方法后,布置课堂练习。学生可以一边练习一边自由讨论,已理解的同学在讨论中充当老师,可以加深印象,巩固知识;而没有理解的同学可以在讨论中积极主动地学习,同时也激发了学生后续学习的积极性,比教师反复讲解的效果好。这种方式可以避免“满堂灌”式的教学方式,活跃课堂气氛,创造学习氛围,提高学习兴趣,实践证明取得了良好的效果。
3.电路仿真演示
在数字电路分析与设计的理论教学过程中,很多学生会觉得枯燥且难以理解。借助Multisim11.0仿真软件进行数字电路的模拟和课堂演示,可以直观地显示电路的功能和时序电路的时序波形。比如在讲解中用16进制计数器74161实现12进制计数器时,其中复位法可通过置0或者异步清零两种方法使得计数器从11回0,但置0法必须在计数到1011时使得置数端为0,异步清零必须在计数器为1100时使得清零端为0才能保证计数器为12进制。如果仅用理论讲解学生比较难理解,但通过仿真演示后学生能够恍然大悟。因此仿真软件的使用可以使“数字逻辑”理论课的教学更加生动活泼,而且学生在遇到疑问时也可以通过仿真软件进行验证。学生通过直观的仿真结果,对电路的工作过程进行透彻的分析,提高了学习的兴趣和效率,促进自学能力和创新能力的提高。
4.引入硬件描述语言
硬件描述语言用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,适合大规模系统的设计。在教学的过程中将硬件描述语言Verilog HDL引入课堂,比如在讲解逻辑门、数据选择器、触发器、计数器等基本单元电路的原理之后,给出模块对应的硬件描述语言,演示仿真波形和综合结果。学生从仿真波形中观察信号的逻辑变化,对数字逻辑电路的掌握更加透彻,同时也丰富了教学内容。Verilog HDL语言是一种非常实用的硬件描述语言,易学易用,学生只要有C语言编程基础,便容易掌握。编程也可以实现电路设计,同学们感到非常新奇,将被动学习变为主动学习,提高学习兴趣,取得了很好的教学效果。
二、“数字逻辑”的实验教学
“数字逻辑”是一门实践性很强的课程。[2]通过数字电路设计实验,学生可以基本掌握数字电路的设计、制作与调试步骤,学会借助万用表、示波器等实验仪器排除实验当中遇到的各种故障,从而独立分析设计各种规模的数字电路。实践教学中将传统实验、仿真实验与硬件描述语言设计三种类型实验相结合,三者互为补充,提高实验效果,充分培养学生的综合实践能力。
1.传统实验
传统实验项目一般利用面包板及用中小规模芯片完成电路设计。其接线模式可以使学生直观了解数字电路是如何工作的,从而掌握电路测试、调试以及维修技能。但是部分学生视这一过程为简单的连线工作,往往只注重结果,不重视过程,造成实验课就是反复的接线和碰运气,学生不能驾驭整个实验过程,产生畏难和退缩心里。在实验课前要求学生书写预习报告,自主设计实验方案,进行原理图设计、芯片选型,上网查阅芯片资料,掌握阅读芯片资料的方法,进行实验方法设计,可以避免机械化操作,学会排除故障,增强操作信心。
在实验过程中,学生不可避免地会遇到种种问题,导致实验结果出错:可能是电路设计或连线过程中出现了问题,也有可能是实验设备或实验器材出现了故障。教师应该指导学生借助实验仪器找到故障点,发现问题之所在,并想出解决办法。在未来的实际工作中,学生将会遇到各种各样的问题,而实验课正是锻炼如何解决这些问题的好机会。因此实验中应该向学生讲明排除故障的必要性,并引导其对独立解决各种疑难问题的兴趣,增强其信心,令其克服畏难情绪。一旦学生掌握了排除故障的方法,独立解决了问题,他们就会很有成就感,甚至就此对排除故障产生了浓厚的兴趣。[3]实践表明学生能自主完成所有设计,自主分析讨论实验过程中碰到的问题,逐个排查故障点,最终完成电路调试。
2.仿真实验
传统实验适于以验证性实验为主的一些中小规模电路的构建与测试。对于一些比较复杂的设计性和综合性实验则比较费时,如数字钟、抢答器、拔河游戏机、彩灯控制器等。而且在实验过程中常常因一根导线连接错误、一个连接点接触不良,就致使实验受阻甚至无法完成,给学生以挫折感,影响学生的实验兴趣,不利于动手能力的培养。
Multisim11.0是一个集原理电路设计和电路功能测试为一体的虚拟仿真软件,其元器件库提供了数千种电路元器件供实验选用,其中包含了数字器件。虚拟测试仪器仪表种类齐全,如数字万用表、函数信号发生器、示波器、直流电源、数字信号发生器、逻辑分析仪等,可以设计、测试和演示各种电子电路。[4]采用Multisim11.0软件进行仿真实验,使学生能充分发挥想象力,按照自己的想法创建各种电路,从而摆脱实验箱的束缚。实践证明将Multisim11.0应用于实验教学,能够使学生提高学习的兴趣,增加学习乐趣,充分发挥学生独立思考和创新的能力,提高学生的综合实践能力。
3.硬件描述语言开发数字电路
当数字逻辑电路及系统的规模比较小而且简单时,用电路原理图输入法基本足够了,但是需要手工布线,需要熟悉器件的内部结构和外部引线特点,才能达到设计要求。当电路规模大时工作量会相当大,实验时间往往不能保证。随着可编程逻辑器件的广泛应用,硬件描述语言已成为数字系统设计的主要描述方式,采用硬件描述语言进行数字电路的设计,可以实现从传统的验证性实验到分析设计性实验课的转变。利用Verilog HDL硬件描述语言进行数字钟、抢答器、交通灯控制电路等的设计,要求学生利用课堂知识进行编程、仿真、综合和下载到可编程逻辑器件中运行以观察结果。学生还可以按照自己的想法自行设计其它数字电路进行仿真、下载调试,提高学生学习兴趣和综合实践能力。
此外还通过举办电子设计竞赛、综合设计等方式激发学生的学习兴趣,提高学生自主学习、独立分析问题和解决问题的能力,也提高了学生综合应用的能力,收到了良好的教学效果。
三、结论
数字电子技术的应用已经渗透到人类的各个方面,从计算机到手机,从数字电话到数字电视,从家用电器到军用设备,从工业自动化到航天技术,都采用了数字电子技术。[5]因此“数字逻辑”课程对于计算机及相关专业来说是一门很重要的课程。笔者结合多年的教学实践经验,对“数字逻辑”课程的教学方法进行深入探讨,在课堂教学中采用任务式教学,增加课堂讨论,借助仿真软件进行电路演示,利用硬件描述语言进行复杂数字系统设计;在实验教学中将传统实验、仿真实验和硬件描述语言实验有机结合、互为补充,激发学生的学习兴趣,培养学生的综合能力,取得了很好的教学效果。
参考文献:
[1]康华光.电子技术基础(数字部分)[M].第5版.北京:高等教育出版社,2006.
[2]孙丽君,张晓东,鲁可.“数字电子技术”课程教学改革探析[J].中国电力教育,2013,(13):67-68.
[3]王宇,崔文华,王宁,等.兴趣导向的数字电路设计实验改革[J].计算机教育,2010,(17):38-40.
关键词:组合逻辑电路;竞争冒险;改进策略。
中图分类号:TP334 文献标识码:A 文章编号:1009-3044(2017)07-0195-02
在组合逻辑电路中,由于门电路的传输延迟时间不同,同一输入信号由不同路径在不同时刻到达某一电路的输出端的现象叫做竞争;由竞争而产生的输出尖峰干扰脉冲的现象叫做冒险。组合逻辑电路中的竞争冒险给电路带来了许多的干扰,在电路设计中应该避免产生,本文首先介绍电路竞争冒险的方法,然后通过一个具体的电路实例,阐述竞争冒险消除前后电路的状况,从而说明消除竞争冒险的重要性。
1实际电路中的竞争冒险分析
电路中消除竞争冒险的方法很多,比如在输出端并联电容或者在电路中引入选通冒充等,在本节中设计一个具体的试验电路,阐述竞争冒险的消除方法及改进措施。
本实验电路如图1(a)和图1(b)所示。图1(a)为逆变电路控制端图,主要为逆变电路产生控制信号,其中控制信号1控制逆变桥q1和q4通道,控制信号2控制逆变桥q2和q3通道。图1(b)为逆变电路图。
2电路分析
2.1控制信号检测
根据以上设计的电路,单片机的P1.0与P1.1口的设计输出波形如图2所示。两路波形交替产生低电平,而且在低电平产生的过程中,不能同时为低电平,否则会导致逆变电路的直通现象产生。但是根据上面的设计,在实际工作过程中的产生的波形如图3所示,在开始阶段,有一个同时被拉低的信号产生,这样会导致逆变电路产生直通,应该避免。
2.2原因分析
根据以上的分析,在实际电路工作中,产生了直通现象,应该避免。当三极管q2与q4处于截止状态时,q2和q4应没有控制信号,只有输入设计的如图2的信号时,才会交替导通,但是在上面的原始电路中,q2和q4的基极各通过一个电阻和电源控制端相接,此时,MCU控制端,输入输出端口由于存在延时触发,产生了竞争产生冒险,q2和q4产生了直通,因此在电路上电的瞬间,将会直通短路,将两个控制信号均拉低。如图3所示。
3竞争冒险消除及优化电路设计
通过原因的分析,必须对电路进行改进,缓解电路产生的竞争冒险情况,本文采用的方法是通过增加电容器,由电路给电容充电,电容充电后当做电源,给电路采取分步上电的方式,最后将分步后的信号由开关管加在光耦的控制端。
最后得到的优化电路如图4。