主线实验教学法研究及其在VHDL程序设计课程中的应用

2017-11-04 01:56
实验室研究与探索 2017年9期
关键词:开发板数码管电路

黄 方 剑

(电子科技大学 能源科学与工程学院,成都 611731)

·实验教学与创新·

主线实验教学法研究及其在VHDL程序设计课程中的应用

黄 方 剑

(电子科技大学 能源科学与工程学院,成都 611731)

现有的不少实验课程中,练习实验普遍存在着零散、不系统的缺憾。为了让同学们在有限的课程实验中更好地得到系统地训练,主线实验教学法将一系列高度系统化的实验练习衔接起来,途径各个阶段性小实验,最后完成终极实验。整个实验流程具有很强的目的性和循序渐进性,各个子项之间环环相扣,承前启后。通过在本科课程VHDL程序设计中近两年来的教学测试,与原来的传统教学方法成效相比,采用主线实验的教学方法能够大大地提高同学们学习的主动性,层层递进的阶段实验使大家一直保持着学习的动力与激情,解决问题式的实验要求又能够培养创新意识。同时,终极实验的完成也带来很强的学习成就感。

超高速集成电路; 硬件描述语言; 主线实验教学; 系统化

0 引 言

实验教学是理工科课程学习必不可少的一个重要环节。传统的教学模式,有些将实验与理论部分分割为两个单独的课程、或者虽在同一课程内,但为两个独立的阶段,这些做法容易导致实践练习与理论知识学习之间的交互性出现断层,学生的理解、动手情况不能很好地反馈到理论教学中去。而在实验时,学生往往是跟着老师看一遍,做一遍,做完之后就忘掉。学习的主动性不高,没有成就感,很容易失去学习的动力和激情,就更不要说创新了。如何解决上述问题,教学人员提出了一些改革方案,有结合应用阶段强调理论与实验的结合教学方法[1];一些新的教学体系,如“三位一体”实验教学体系[2]、计算机专业硬件基础课程实验教学体系[3];基于情景教学的实验平台[4];使用翻转课堂的教学模式[5]等。文献[6]中研究了Matlab与EDA软件联合仿真的新方法,利用Matlab的数据计算、分析等优势,纳入信号与系统、数字信号处理等多门课程中的知识点,提高了实验课程的综合性水平。文献[7]中对实验所使用的硬件系统提出改革,以模块化的思想引导学生学习、自制系统。这些研究均有很好的教学效果。文献[8]中提出了“实验教学内容是影响实验教学质量的重要因素之一”的观点。文献[9]中提出了“设计型实验和探究型实验是实现高层次实验教学目标所必需的实验类型”的观点。对练习实验的设计提出了新的要求。文献[10]中也提出要选用与科研、生产和生活相联系的课题,以激发学生学习和应用的兴趣。因此,如何设计实验项目,以便更好地服务于教学、练习,需要更多的考虑与探索。如何消除实验的零散性,提高实验部分整体的系统性,同时,激励学生的学习、动手积极性、自主性、创新性,是一个需要持续研究、探索的问题。

VHDL程序设计或者其他相似硬件描述类语言课程在多个理工科类高校均有开设。作为电子设计自动化的一个主要工具,硬件描述类语言与一般的软件类语言在语法上有些相似,但在设计思路上有很大的不同。如何让同学们迅速掌握其设计方法,明白与软件类语言的区别,同时又能吸取原有的软件类语言设计经验给授课教员提出了不小的挑战。

1 主线实验教学法

在针对教学实验的设计进行大量研究后[11-14],提出了围绕主线实验的教学方案。这个方法的主要特点是将理论和实验融合在一起,建立整个实验阶段的系统性,消除了单个实验的零散性。具体来说,就是设立一个(或多个)终极目标实验以及一些围绕它的阶段性实验,即每个小实验都是在为最终目标做准备,具有承前启后的作用。教师提供各个实验的设计原理、要求、参数,而将具体实现的算法留给大家自己思考。这样,就容易保持学生的实验中的动手积极性,使得他们能有自己的想法并且实现之。同时,通过实验,能够给学生们带来成就感,激励他们的创新意识。通俗地讲,整个实验阶段,就好像是在打一个具有很多关卡的游戏,完成一个小实验就相当于通一关,当完成所有阶段性实验及最后目标实验(打通关)时,那成就感不言而喻。

从理论上而言,在这个模式下设计实验有点类似于EDA中的自顶而下的设计流程。在提出最终目标实验后,教师需要根据理论知识点将其分解为多个模块。当然,为了更多的练习,也可以衍生出更多的相关小实验。在学习相应的知识点后,学生根据各个实验的要求,自行完成程序设计。

2 应 用

本节以VHDL程序设计课程的具体安排来说明主线实验教学法的教学流程,并以各阶段实验来阐述涵盖的知识点及学习重、难点。

(1) 在课程设计时选定主线实验。因本课程性质是全校性的素质公选课,教学内容是介绍基本语法及设计思路。主要知识点涵盖有:基本结构(实体、结构体)、各类并行、顺序选择语句、元件例化、有限状态机等。主要目的是引导学生进入以硬件功能描述的方式来设计电路的领域。所以,选择了带暂停功能的数码二极管时钟显示电路设计作为主线实验。

(2) 将选定主线实验分解为几个阶段性实验。其实,这个划分也与功能分块相似。当然,为了教与学,对其进行了一些改动。具体包括(按教学进度排序):译码电路、(带暂停功能的)对时钟信号上升沿的计数器、(带暂停功能的)1位固定位数码管显示电路、1位切换位数码管显示电路。下面对各阶段练习实验进行详细说明。

第1阶段译码电路。这是一个组合电路器件,要求:输入0~9范围内的整数,输出共阴极(或者共阳极)数码管显示该输入数字的7位控制向量。这个器件可以有很多种描述方式,可以使用when_else, with_select, if, case等语句,也可以用纯组合逻辑方式将控制向量的每一位表示出来。在介绍了最基本的结构语法(实体、结构体声明)及简单的选择语句(一般是when_else结构)后,就可以安排学生着手此实验。通过这个实验可练习的语法点很多,除了具体的选择语句,还可以分辨并行与顺序语句结构上的不同。此实验只要求仿真,没有开发板操作。通过该实验,除了语法练习,还要求同学们对开发平台(选用QuartusII)的使用要熟练。教学人员可以根据需要,将其中一、两种方法作为必做题,余下的作为拓展练习。练习阶段,只讲原理及要求,不讲具体代码。激励学生自己动手写。以检查RTL电路图是否是纯组合电路及仿真结果是否正确作为合格条件。

第2阶段(带暂停功能的)对时钟信号上升沿的计数器。这也是一个仿真实验,最基本的要求是对输入的时钟信号的上升沿计数,从零开始数至给定的值再循环,并输出当前的计数以及进位信号。此实验主要是练习使用不完整if语句构成时序电路的方法、数据类型转换等。进一步可以要求增加端口实现异步复位功能,实现同步使能,再进一步实现暂停功能等。特别是暂停功能的实现,经课堂观察,同学们很容易受到一般软件语言工程设计惯性思维的影响。通过此实验,同学们除了能够得到相应的语法练习以外,还能够加深以软件代码设计硬件电路的思想。特别是能具体地理解是综合器将程序映射为相应电路的,与一般高级软件语言设计不一样,并不是所有符合语法规则的代码都能够成功完成预想功能的。这个实验也有很多衍生实验,基本上与计数相关的都能涉及,比如:修改输出的进位信号,可以很容易地拓展为分频器。

上述两个实验是基本实验,对同学们的要求是一定要通过自己的思考来解决,基本上在4或5个课时内大部分认真的同学都能很好地完成。这两个实验也都是仿真类型的,不用上板子测试。经过此两阶段,同学们对QuartusII平台的操作基本上均已熟练,VHDL基本语法的掌握已入门。

第3阶段(带暂停功能的)1位固定位数码管计数显示电路。从这个实验开始,同学们开始接触开发板的使用及多层系统的设计。基本的要求是在开发板的8位数码二极管上使用一位固定位置,每秒计数一次,循环显示计时0~9。进一步,可以加上异步复位功能、暂停功能、更改计数频率等要求。同学们逐步学习如何将软件与硬件相连接,了解开发板的实际性能,体会到仿真结果正确并不能代表硬件设置满足要求,并且能够从开发板的实际使用中发现的问题出发,寻找解决方案,培养独立发现、思考问题的能力,进一步提高大家的激情和创新意识。比如,在仿真时是无法发现按键抖动问题的。在实现异步复位功能时,虽然要求有按键,但也不容易感觉到。只有在实现暂停功能时,才会真正体会到按键防抖的重要性。大部分同学在设计此电路是都能够体会到按键防抖的必要性,大家也能够自行设计方案解决。除了语法学习,根据功能来进行元件划分及调用也是这个实验的一个重要结构训练点。大家逐渐开始有意识在复杂系统中进行功能分块,慢慢开始理解自顶而下的设计思路。

第4阶段1位切换位数码管显示电路。此实验的基本要求是用8位数码管显示一个固定的1位数字,每秒钟切换一个显示位置,8个管位循环显示。进一步可以要求8个位置上的固定数字不同;更改切换位置的频率,寻找8个位置能够同时显示数字的切换频率等。这个实验主要是要求同学们理解数码管扫描显示的原理。据课堂统计,显示固定数字比较容易,但当要求不同位置显示不同数字时,学生容易出现不知道如何将数字显示到对应位置上的问题,对功能模块的划分也需要多次重复设计。总之,这个实验是理解数码管扫描显示的重、难点,需要3个左右的课时才能较好地完成。

在完成这4个阶段实验后,就可以开始进行最终实验的设计了:(带暂停的)8位数码管扫描时钟显示电路。此实验是前面4个实验的系统综合,基本上涵盖了除去有限状态机以外的所有基础语法点。基本要求是利用开发板上的晶振进行计时,并用8位数码管以hh-mm-ss格式显示。进一步,可以要求异步复位、暂停等功能。这个实验对同学们的考查,从结构上来说,是对复杂系统的功能模块划分;从语法来说,是基本上所有的基础语法点;从操作来说,是QuartusII平台的整体设计流程及开发板上晶振、数码管、按键等器件的使用。具有很强的综合性。这个实验涉及多次分频,据课堂观察,虽有前面实验做铺垫,但在刚开始时,有部分同学仍然对功能模块划分不够熟练,直接使用if语句嵌套计数来计时。部分同学有分频的意识,但也未使用多层次器件设计的模式。当然,这样设计的器件从功能上来讲是成功的,但整个程序的可读性不太好,代码的可复用率也较低。在自行设计阶段完成后,教师可对同学们的设计进行总结,邀请几位设计思路有特色的同学来分享交流。在从功能模块划分角度稍作分析解释后,大部分同学能够对自己的器件重新进行模块划分、设计,基本上程序可读性会有很大提高,整体电路图层次、分块清晰。

在本课程中,还设计了选做的扩展实验:1路交通信号灯数码管及LED灯显示电路。基本要求:利用有限状态机设计,仿照交通灯让红黄绿三色LED灯循环亮固定时长,同时用数码管显示倒计时。因为开发板上并未设置红黄绿三色LED灯,所有相应接口需要从开发板原理图上查找而得,所以这个实验可以训练同学自行查阅资料的能力,培养兴趣。经过前面实验的练习,这个实验成功率很高。

3 结 语

在前几届授课中,基本上都是采用传统的教学模式,虽然采用了理论课时与实验课时的交替教授方法,实验练习也设计得不少。但是从实验课堂答疑发现同学们的动手积极性并不高,设计进度也比较缓慢。自从最近2年开始采用主线实验教学法后,3学期共6个实验班,效果可谓越来越好。同学们理论学习,实验动手的积极性都有很大提高。特别是在一开始实验时,就提出了最后目标,不少同学课下自行查阅相关资料。由于整个实验阶段具有很强的系统性与循序渐进性,同学们在整个阶段中都能够保持很高的动手热情,每个阶段实验练习时,不时提出新的设计方案,最后综合实验的完成率也比往年大有提高。

经过近2年的教学,发现主线实验教学法非常适合语言类课程入门阶段的教学。系统性的实验能够让同学们从一开始就有目标;循序渐进的阶段实验能让大家一直保持学习的激情;完成一个阶段时,又能够找到学习成就感;每个阶段可有多种方案,这又可以培养大家的创新意识;实验中,特别是需要结合硬件开发板的时候,可能碰到的各种硬件问题,又可以给大家提供独立发现、思考、解决问题的机会,提高了同学们进行科学研究的能力。

现在的实验方案主要是针对入门教学等级的,我们准备进行更深入的研究,为更加有效地发挥实验教学在创新型人才培养中的作用,针对不同学习深度的要求设计出更多的主线实验。

[1] 王保丽,印兴耀,张广智.“理论-实验-应用”一体化教学的探索与实践[J].实验室研究与探索,2015,34(11):152-155.

[2] 王革思,周 天,高明生,等.构建“三位一体”实验教学体系培养本科生创新型人才[J].实验技术与管理,2016,33(9):18-21.

[3] 盛建伦,巩玉玺,刘淑霞,等.计算机专业硬件基础课程实验教学体系的研究[J].实验室研究与探索,2013,32(10):387-391.

[4] 职会亮,马 超,施宏伟. 基于情景教学的创新实践教学平台研究与实验过程设计[J]. 现代教育技术,2011,21(10):112-116.

[5] 丁雪梅,张晓君,王 鹏,等. 翻转课堂教学模式在大学实验教学中的应用[J]. 实验室研究与探索,2015,34(6):207-212.

[6] 李琳琳,任家富,吴建平,等. EDA新实验模式的研究与设计[J]. 实验室研究与探索,2014,33(12):176-178,315.

[7] 黄卫华,贾历程. 基于FPGA的EDA实验系统改革与实践[J]. 实验室研究与探索,2012,31(4):203-206.

[8] 许家瑞,周 勤,陈步云,等.构建创新实验教学体系的探索与实践[J].实验技术与管理,2009,26(5):1-4.

[9] 赵建华. 高校实验教学目标探析[J]. 高教探索,2012(4):71-73.

[10] 徐彦凯,双 凯,姜 珊. EDA课程设计课题的开发和体会[J]. 实验室研究与探索,2011,30(2):114-116.

[11] 唐志强.计算机专业数字逻辑实验的改革与创新[J].实验室研究与探索,2013,32(10):182-184.

[12] 杜新虎,韩芝侠.基于FPGA的智力竞赛抢答器实验设计与实现[J].实验室研究与探索, 2008,27(3):36-39.

[13] 颉洪睿,孙丹丹,魏学军. 基于CPLD的智能密码锁设计与实现[J].实验室研究与探索,2015,34(11):99-102.

[14] 徐爱萍,张玉萍,涂国庆. 基于VHDL之CPU设计与实践[J].实验室研究与探索,2014,33(5):120-124.

ResearchontheMain-lineExperimentTeachingMethodandItsApplicationtoVHDLDesign

HUANGFangjian

(School of Energy Science and Engineering, University of Electronic Science and Technology of China, Chengdu 611731, China)

In some experiment courses, there is a common weakness that the exercise experiments are discrete and not systematic. In order to provide some systematic training for the students in the limited courses, the main-line experiment proposed in this paper is a systematic collection of a series of experiments including some phase ones and a final goal. The entire course is with a strong purpose and the items are hierarchical and connected to each other. This method has been applied to design course of VHDL (very high speed integrated circuit hardware description language) for undergraduate students for two years. Compared to the traditional method, the main-line experiment teaching method can greatly improve student initiative, keep their motivation and passion to study, foster their innovation and bring them a very strong sense of achievement.

very high speed integrated circuit; hardware description language(VHDL); main-line experimental teaching; systematization

TP 312; G 642.0

A

1006-7167(2017)09-0136-04

2016-09-22

国家自然科学基金(61374001);电子科技大学教师实验教学改革研究项目(BKSJY-2016-85)

黄方剑(1980-),男,四川富顺人,博士,讲师,现从事电力电子稳压器设计研究及电子设计自动化的教学工作。Tel.: 18980412131;E-mail: huangfangjian@hotmail.com

猜你喜欢
开发板数码管电路
电路的保护
微课教学设计之“数码管动态显示”
解读电路
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
巧用立创EDA软件和Altium Designer软件设计电路
基于MATLAB模拟混沌电路
浅析单片机开发板的设计与制作
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证