吴华
【摘 要】“FPGA开发与应用”这门课主要应用VHDL语言进行数字系统设计,本文提出采用项目化教学使学生提高VHDL语言的编程能力,理解自顶向下的系统设计方法,熟悉利用ISE平台进行数字系统设计流程,激发学生的学习兴趣。
【关键词】项目化教学;FPGA开发与应用;VHDL
1 基于FPGA的数字系统设计简介
FPGA是Field Programmable Gate Array的缩写,即现场可编程门阵列,它完全由用户通过软件进行编程和配置,从而完成某种特定的功能,且可以反复擦写的新型器件。传统的数字系统设计方法是自底向上的设计方法,它是以各种不同的中小规模集成电路芯片为基础,按照功能要求在印刷电路板上将不同的芯片连接起来,构成实现某种功能的电子系统。基于FPGA[1]的数字系统设计方法采用自顶向下的设计方法,把系统分成若干个基本单元,然后再把每个基本单元划分为下一层次的基本单元。它以FPGA芯片为核心,通过编程的方式完成系统功能的设计并将设计写入FPGA芯片内,使芯片具有设计的功能。设计过程中通过不同阶段的仿真可以及时检查设计的正确性,电路的修改只需要通过修改程序并重新下载到FPGA中即可。因此基于FPGA的数字系统设计易于测试和修改,设计周期短,便于移植。
2 项目化教学实施过程
“FPGA开发与应用”这门课是针对大三计算机网络工程专业学生开设的一门专业课,学生在前期已学过《电路》、《数字电路》、《模拟电路》、《C语言程序设计》等课程。通过该门课,使学生掌握VHDL语言(超高速集成电路硬件描述语言)的编程方法,能熟练应用ISE平台进行数字系统设计,理解自顶向下的系统设计方法,积累数字系统设计经验。
传统的教学方法重在介绍VHDL语言的语法规则和语句,知识点较零散,学起来较枯燥,而且不知如何应用这些语句。而项目化教学重在将知识点融在项目中理解,学生通过做一个小项目可以掌握相应的知识点,并通过3-4人一组协作完成,培养其团队合作能力、沟通能力和语言表达能力等。项目化教学真正实现了三个转变:以教师为中心转变为以学生为中心;以课本为中心转变为以项目为中心;以课堂为中心转变为以实际经验为中心[2]。
下面将通过“点亮两位数字”项目分析如何实施项目化教学[3][4]。“点亮两位数字”项目即利用Xilinx公司的ISE软件平台进行系统设计,通过VHDL语言编程实现显示两位数字的功能,并最终生成二进制文件,下载到Basys2开发板上验证。
2.1 项目立项阶段
教师先向学生展示最终要完成的效果,讲明项目任务,再对学生进行分组,尽量采取自愿原则,教师可对小组成员适当调整,保证每组中至少有一人学习情况较好,并任命一人为组长。
2.2 需求分析阶段
根据项目要求,分析最终要呈现的效果,确定程序的功能模块和性能需求。比如要用两个数码管显示、动态扫描问题、译码问题等。
2.3 系统设计阶段
首先每个小组要确定总体方案设计,例如分哪几个模块、每个模块要实现什么功能,再进行详细设计,包括用Visio软件绘制系统功能结构图(如图1所示)、每个模块如何用VHDL语言实现等。在详细设计中,涉及每个模块具体的功能,写出详细的系统设计报告,以此进行编码和测试,从而保证系统设计的可靠性。可以由组长分配任务,让每个组员完成一个模块的编写工作。
2.4 编码、测试阶段
教师检查每组的系统功能结构图,若无问题,则可以开始编程。在用VHDL语言编程阶段,学生可根据系统功能结构图分模块进行调试,先将底层三个模块(分频器、控制模块、译码器)都编好后,通过ISE软件编译检查语法错误、并进行仿真,若无问题,再进行顶层文件编写;若有问题,则需修改源代码,直至无错误为止。顶层文件主要是通过元件例化语句将底层三个模块进行连接,编好后,也需要经过ISE软件编译检查语法错误。
2.5 下载、验证阶段
最后将生成的二进制文件下载到basys2开发板上验证,若能正确显示两位数字,即成功。若不能正常显示,则需返回到ISE软件中,修改底层文件或顶层文件,直至验证成功为止。
2.6 验收阶段
在编写代码的过程中,教师可适当给予指导,给学生提供一些参考资料或相似的例子,帮助学生完成项目。教师要检查各组最终能否实现“显示两位数字”,协助并指导各组,完成编写“显示两位数字”项目文档,并对各组进行成绩评定。各组组长向全班汇报、展示本组的作品,并列举项目开发中遇到的各种问题,其他组的学生可以提问,最后教师对各组进行点评。各组组长根据小组成员的贡献对小组成员进行打分,教师根据小组成绩和组长对各成员的打分,确定每位学生的成绩。
3 总结
由于传统的教学方法重在介绍VHDL语言的语法和语句,学生学起来较枯燥,因此结合《FPGA开发与应用》课程的特点,通过“显示两位数字”项目,展示如何在《FPGA开发与应用》课程中实施项目化教学。通过项目化教学,不但能使学生掌握VHDL语言的编程方法和自顶向下的系统设计方法,熟悉真实项目的实施过程,而且通过分组协作完成一个项目,可以锻炼学生的团队协作能力、沟通能力、语言表达能力等,从而激发学生的学习兴趣,提高学生的自主学习能力。
【参考文献】
[1]陈学英,李颖.FPGA应用实验教程[M].国防工业出版社,2013,05.
[2]张学琳,陈齐超,段珊,胡波.项目教学法在“C语言课程设计”中的研究与应用[J].实验技术与管理,2011,28(02):164-167.
[3]吴玲.《EDA技术与应用》项目化教学改革研究与探索[J].科技信息,2012(21):244.
[4]张辉,王彦.项目教学法在《EDA技术及应用》课程中的应用[J].新课程研究:高等教育,2011(2):73-76.
[责任编辑:杨玉洁]