数字逻辑实验教学改革探索

时间:2022-05-20 03:43:34

数字逻辑实验教学改革探索

摘要:针对数字逻辑实验教学存在的问题,提出数字逻辑课程实验教学改革和实验课题设计的思想,改传统的验证性实验为用VHDL语言做设计性实验;介绍实验课题的设计和教学效果。实验课题应该是课程的主要知识点,有合适的难度,无现成的答案。实验课题包括两个组合逻辑设计和3个时序逻辑设计课题,有基本实验,还有选做题目。教学效果表明实验课题的设计是成功的,达到了预期的目的。

关键词:数字逻辑;实验教学;实验课题设计;教学改革;VHDL

自20世纪90年代以来,随着电子科学技术的进步,大规模集成电路PLD芯片逐渐取代了数字系统中传统的分离元件和小规模集成电路。同时,数字系统和计算机系统的设计方法向“硬件设计软件化”转变。用硬件设计语言设计数字系统和计算机系统的技术日益成熟且越来越广泛地得到应用。虽然,高校数字逻辑课程的教学内容也有一些相应的调整,但是实验教学的改革往往明显落后。

数字逻辑是计算机科学与技术专业重要的基础课之一,也是学生感觉学习比较困难的课程之一。我校计算机专业的数字逻辑课程的实验教学过去一直是在实验箱上插接集成电路芯片和连接线的方式,实验内容以验证性实验为主,实验效果很不理想,实验教学与理论教学的衔接不好,没有真正起到“通过实验加深对理论知识的理解”和“理论与实际相结合”的作用。学生虽然在课堂上学习了VHDL编程并做了一些习题,但是并不知道究竟什么样的程序才是正确的,而要想知道VHDL程序是否正确的唯一方法是编译和仿真。为了提高数字逻辑课程的教学效果,并且与新增加的VHDL语言教学内容相呼应,笔者进行了数字逻辑课程的实验教学改革探索。通过“做中学”[1],使学生真正掌握用VHDL进行逻辑设计的方法。放弃在实验箱上插接集成电路芯片和连接线的方式,改变为在Quartus软件平台上用VHDL语言编程和仿真实验。从以验证性实验为主转变为以设计性实验为主,不仅使学生学到了最新的技术,而且为后继课程计算机组成原理的进一步教学改革奠定了基础。

1实验课题的设计

根据教学计划,本课程的实验为12学时,安排6个实验。除第1个实验是熟悉Quartus系统的使用外,其余5个实验都是设计性实验。

1.1设计思想

实验课题的设计是开展设计性实验教学必须妥善处理的关键问题之一。实验课题应该有合适的难度,使得大部分学生在现有基础上通过自己的分析和努力能够做出设计(不一定是完全正确的设计)。实验课题应该在本课程教学的重要知识点范围内,通过实验可以使学生更好地掌握相关知识点,实现理论教学与实验教学相辅相成。实验课题应该在书本或网络等其他信息源上没有现成的解答,学生必须自己进行分析设计才能得到解答。

在高度网络化和信息化的今天,各种教材、参考书和网络上已经有很多的VHDL语言程序的实例,为了保证学生是真正做设计,笔者在设计实验课题时也广泛查找了资料。有几个设想的课题就因为发现有相同的VHDL语言程序实例存在而被否定。最后确定的5个实验课题,到目前为止还没有发现有相同的VHDL语言程序实例。这5个实验课题包括2个组合逻辑设计实验课题和3个时序逻辑设计实验课题。实验课题的难度和复杂程度是逐渐增加的。除了基本实验外,还为少数学有余力的学生设计了选做题目。

1.2实验课题

1) 实验课题一。

设计一个代码转换逻辑电路。把7位的ASCII码转换成7段字符显示代码。能显示数字0~9,字母A、b、C、d、E、F、H、L、o、P、U、Γ和一些符号(-、_、=、┫、┣、、)等。用VHDL语言编程并仿真。

2) 实验课题二。

设计一个多功能的运算器,有控制信号M、S2、S1、S0。当M=1,在S2、S1、S0的控制下能完成两个1位二进制数A、B的以下算术运算:A加B,A加1,A加B和低位来的进位,B加1,A加 ,A加0,A加A,A加 加1。当M=0,作逻辑运算。在S2、S1、S0的控制下能完成两个1位二进制数A、B的以下逻辑运算:A+B,A•B, , , , , , ,等。用VHDL语言编程并仿真。

3) 实验课题三。

设计一个自动售饮料机的控制逻辑电路。该机器有一个投币口,每次只能投入1枚1元或5角的硬币。当投入了1元5角的硬币,机器自动给出1杯饮料。当投入了2元的硬币,机器在自动给出1杯饮料时,还找回1枚5角的硬币。

确定输入/输出变量、电路的状态并化简,做出状态转换图、状态转换表。在完成以上逻辑设计后,用VHDL语言编程并仿真。

4) 实验课题四。

用74HC163设计一个十九进制计数器。用VHDL层次结构设计方法设计程序并仿真,底层器件是74HC163。

完成以上题目后,还可以选做题:用74HC163设计一个余3码计数器。用VHDL层次结构设计方法设计程序并仿真,底层器件是74HC163。

5) 实验课题五。

实验课题五有两个题目,学生可以任选一个。

题目一:设计一个可控计数器,当控制信号S=0时,是五进制计数器,当控制信号S=1时,是十五进制计数器。设计出逻辑图。分别用两种不同的方法设计(行为描述,结构描述),用VHDL语言编程并仿真。

题目二:设计一个数字钟电路,要求能用7段数码管显示从0时0分0秒到23时59分59秒之间的所有时间。做出逻辑图。用VHDL语言编程并仿真。

2教学效果分析

实验课题一的目的是强化译码器、7段字符显示代码和ASCII码等知识点。学生可以参考书上的BCD码-7段字符显示译码器的VHDL程序做这个设计,但是要实现那些特殊符号的显示还是需要动脑筋的。实验结果显示,学生基本上都能做出数字和字母的显示代码设计,但是极少有能做出那些特殊符号的显示代码设计的。

实验课题二的目的是强化加法器、全加器、算术运算、进位和逻辑运算等知识点,并且考虑到与后继课程计算机组成原理的ALU等知识点教学的衔接。学生做设计时可以参考1位全加器的VHDL程序。很多学生在做实验之前认为这个题目很简单,只要用VHDL语言的算术运算符就可以了。开始做实验才发现根本不是那样,必须先推导出每个运算功能的逻辑表达式才能编程,而相当多的学生忘记了算术运算还有进位的逻辑表达式。这个实验确实达到了强化上述知识点的目的。

实验课题三的目的是强化状态机和Mealy型时序逻辑电路设计等知识点。学生做设计时可以参考状态机的VHDL程序。经过这个实验,大部分学生真正懂得了什么是状态机,时序逻辑电路是在时钟信号的作用下发生状态转变的,另外还有怎样确定有哪些状态和做状态化简。

实验课题四的目的是强化计数器、用集成计数器实现任意进制计数器和Moore型时序逻辑电路设计等知识点,也是学生第一次用VHDL结构描述的方法做设计。学生做设计时可以利用书上的74HC163的VHDL程序例子。通过这个实验学生进一步理解了触发器和计数器,掌握了用集成计数器实现任意进制计数器的方法和用VHDL结构描述做逻辑电路设计的基本方法。选做题是为少数学习好、能力强的学生准备的,使这部分学生有机会得到更多的训练和提高。选做题还可以使学生掌握余3码的概念,确实也有很少的几个学生完成了选做题。

实验课题二和实验课题三都是用行为描述的方法进行逻辑电路设计,比较容易掌握,实验成功率较高,而实验课题四要求用结构描述的方法做逻辑电路设计。在实验中间发现,相当多学生并没有理解结构描述的概念,也不知道应该怎样做。因此,实验课题五继续强化用结构描述的方法做逻辑电路设计。

实验课题五题目中的第一个,目的是巩固用集成计数器实现任意进制计数器和Mealy型时序逻辑电路设计等知识点。同时,也使学生进一步掌握用行为描述和结构描述进行设计的方法。虽然这个题目相对第二个题目要简单一些,但是由于要求分别用行为描述和结构描述两种方法进行设计,所以总的工作量比实验课题四要多。这两个题目中的第2个不仅难度更大、更复杂,而且其设计还要考虑如何仿真的问题,是一个有挑战性的题目。然而,选择这个题目的学生却出乎意料得多,而且有若干种不同的设计思想,既有用结构描述的也有用行为描述的。虽然在2个小时的时间内,几乎没有学生完全正确地完成这个高难度实验的设计和仿真,但是有个别学生在以后的几个星期里仍然继续探讨并最终正确地完成了这个实验。像数字钟这样的复杂实验,在过去想要用中小规模集成电路在实验箱上插接连线的方式完成是不可想象的,但是现在用Quartus系统上设计和仿真的方式却是可以完成的。

设计性实验比验证性实验的难度有明显提高,学生也要花更多的时间做预习、设计和写实验报告。在学习数字逻辑之前的各课程(物理、电路、模拟电子)实验都是验证性实验,大部分学生已经养成不做实验预习的习惯。在做第一个实验(熟悉Quartus系统)时就发现很多学生基本上是进了实验室才开始看实验指导。结果是两个小时过去了,一部分学生并没有掌握VHDL程序调试和仿真的基本方法,个别学生输入的源程序甚至连编译都没有通过。针对这个问题,我们采取了要求学生提前做实验预习,写出实验设计和程序才允许进实验室做实验的措施,并且在逐位点名时逐个检查实验预习。实验教学改革也在一定程度上调动了学生的积极性。

3结语

用VHDL语言设计组合逻辑电路和时序逻辑电路的方法与传统的用逻辑代数和逻辑图设计的方法有很大不同,特别是行为描述的方法很容易掌握。用软件工具对所做设计进行仿真以检验设计的正确性比在面包板上插接、连线、调试要方便容易,避免了接触不良造成的故障和连线错误损坏器件等问题,实验成功率高、消耗低。学生不仅要做逻辑设计,还要做仿真输入波形设计。仿真输出波形直观地表现了逻辑功能的正确与否。部分学生自己有计算机,可以提前做出设计并编程,在进入实验室后能够在比较短的时间里完成实验;也有一些学生由于设计错误,在实验室没有完成实验,是回去以后继续用自己的计算机改正程序、完成仿真的。

从实际教学效果看,上述实验课题的设计是成功的。大部分学生通过设计和实验都有不同程度的提高,基本上理解了有关的知识点,掌握了VHDL程序设计、调试和仿真方法。从后来的调查问卷的结果看,大部分学生认为数字逻辑实验“不是很难”(4个选项分别是太难、不是很难、很简单、不能理解),只有少数学生不喜欢这种设计性实验。

数字逻辑课程的实验教学改革探索取得了初步成功,今后还将继续改进,也希望与其他学校的教师交流教学改革的经验和教训,共同提高。

参考文献:

[1] 黎忠文,向兆山.“做中学”模式在计算机教学中的探索[J]. 计算机教育,2006(10):30-32.

Exploration of Experiment Teaching of Digital Logic

SHENG Jian-lun

(School of Computer, Qingdao Technological University, Qingdao 266033, China)

Abstract: Aimed at the problems in experiment teaching of digital logic, the idea of reforming experiment teaching of digital logic and designing experiment task is proposed in this paper. The traditional test-and-verify experiments are replaced with design experiments of VHDL. The design of experiment tasks and the teaching effect are introduced. The experiment tasks should be the major point of knowledge and in appropriate difficulty and no existing answer. The experiment tasks include two combinational logic design and three sequential logic design tasks. There are basic experiments and optional experiments as well. The teaching effect shows that the design of experiment tasks is successful, and the anticipating aim is achieved.

Key words: Digital Logic; experiment teaching; design of experiment task; teaching reform; VHDL

上一篇:基于集中形式的软件工程课程设计 下一篇:操作系统课程双语教学的实践与思考