华一村, 曹 源, 张义红, 邓开连, 李 楠
(东华大学 信息科学与技术学院,上海 201620)
我国高度重视应用型创新人才培养,以应对新时代背景下人才质量不能适应产业界需求的问题[1]。高校是培养人才的重要阵地和社会生产力输送的重要源头,在高校推行应用型创新人才的培养理念,将理念贯穿于教学过程,为社会培养有创造力和有应用能力的人才,是高校义不容辞的责任和义务。
现场可编程门阵列(Field Programmable Gate Array,FPGA)[2],是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物[3]。相比于原有可编程器件,FPGA集成度更高[4],资源更丰富,适用于实现运算能力较强的数据密集型数字系统。它是作为专用集成电路(ASIC)领域中的一种半定制电路[5]而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。当前,FPGA产品的应用领域已经从原来的通信[6]扩展到交通[7]、工业[8]、测试测量[5]等广泛的领域。
鉴于FPGA优良的性能及广泛的应用前景,我校积极引进FPGA软硬件系统装置,现有EDA实验室346 m2,FPGA实验装置123台,并为学生开设相应的实验教学课程。本文将应用型创新人才的培养理念应用于FPGA教学过程,弥补传统教学模式的不足,推行产学研[9]联合培养模式,并以FPGA“按键-显示”实验课为案例,详细阐述新模式下实验教学的流程,为基于应用型创新人才培养的FPGA实验教学提供参考。
高校实验教育发展至今,已经历了一系列教学模式的革新[10-11],取得了一些教学成果[11],但传统教学模式[12]仍占据主导地位,课堂教学内容与实际应用技能无法衔接,学生的创新能力受到限制,教学过程枯燥单一,缺乏启发性。FPGA实验课程作为我校电学专业的一门必修课,也深受传统教学模式的约束。存在的问题主要有以下几点。
(1) 教学内容与实际生产脱节。实验类课程本应是培养学生实际动手能力,生产实践能力的重要渠道,FPGA在实际生产生活中有广泛应用,但实验课程内容仅仅局限于完成实验装置上的特定功能,并未紧密联系生产实际。学生缺乏对应用背景的了解,对课程的学习感到抽象和空洞[13],对实验内容没有系统性的认识。
(2) 缺乏创新能力的培养。传统的“灌注式”[14]教学模式能在最短时间内将教学内容传授给学生,老师讲,学生听,听完开始做实验。这样的模式枯燥乏味,课堂没有活力,学生接受度低,而且学生始终处于被动接受教师讲授的状态,思维受限,缺乏自主创新意识。这样的模式培养出的学生无法满足社会对于创新思维和实践能力的要求。
(3) 缺乏自主学习能力的培养。由于传统教学模式以教师为中心,学生过分依赖实验教师的教授与帮助,当遇到问题时,不会自行查找资料,解决问题,而是一味地等待实验老师解答。然而一个实验教师要面对几十个学生,往往不能及时帮忙查找错误,回答问题。学生等待答疑的时间长,学习效率低下。并且这样的模式培养出的学生,缺乏自主学习能力,将来在社会实践中遇到问题,也不能很好地应对。
应用型创新人才的培养要从应用能力,创新思维能力,自主学习能力三方面入手。借助产学研[9]结合途径培养学生的工程应用能力,用启发式[15]的教学方法培养学生的创新思维能力,课堂讲解时紧密结合学习资料的使用,并建设“经验库”培养学生的自主学习意识和能力。构建的应用型创新人才培养的FPGA实验教学模式如图1所示。
图1 应用型创新人才培养的FPGA教学模式框架
FPGA实验教学模式的主要内容有:
(1) 产学研结合强调应用技能培养。产学研相结合的人才培养模式有助于学生加深理解产业界所存在的工程技术问题以及行业发展状况[16],从中提炼出科学问题,并在实验室可提供的软硬件基础上进行功能研发,对实验内容有系统性的认识,大大提升技术应用能力。FPGA尺寸小、功耗低、集成度高,移动灵活的特性非常适合于开发可穿戴设备[17]。我校与西塘纽扣产业有项目合作,将FPGA芯片嵌于纽扣中,根据用户需要增加如温度控制,摄像监控,心跳监测等功能,开发出可穿戴的智能纽扣,满足市场需求。上课时,给学生普及FPGA的应用背景,并开放项目通道,鼓励学生参与FPGA项目开发,使学生将课堂所学及时应用于现实生产,真正实现应用型人才培养的目的。
(2) 启发式教学培养创新能力。启发式教学以学生为主体,调动学生的主动性,引导学生积极思考、拓宽思路,从而提高创新思维能力,独立分析问题和解决问题的能力[15]。鼓励学生用已有电路电子理论知识自行设计实验方案。在讲解过程中,教师不再是知识的灌输者,而只是作为一位引导者,设计有针对性的思考题,用提问的方式激励和启迪学生发现问题,分析问题,根据学生的反馈,与学生平等交流、讨论,一步一步辅助学生用不同的开发思路实现产品功能。
(3) 经验库建设培养自主学习能力。为鼓励学生自主学习,在讲解PPT时,会同时引导学生查看指导书的相应内容,教给学生利用指导书、互联网等查找所需资源的方法。由于每届学生在软件操作过程中经常提问类似问题,将学生们提出的常见问题搜集并整理为一个“经验库”,经验库中给出问题的描述,解决该问题的步骤,以及软件操作界面的截图。有的学生在刚开始创建项目的时候没有选中正确的FPGA核心芯片,在后面的操作中需要修改芯片,则定位到“经验库”的第9个问题“实验中更改芯片”,给出了详细的步骤描述和软件操作界面截图,并用红色箭头标示出对应操作位置,如图2所示。这样,学生遇到问题时,可以先从“经验库”寻找帮助,有效解决了师资不足无法及时解答所有学生提问的问题,也节约了学生的等待时间,提高了学习效率。学生也会效仿这样的方法建立自己的经验库,方便今后的学习。
图2 经验库部分内容截图
本实验所采用的FPGA软件平台为Altera公司开发的Quartus II[18]软件,硬件系统为Altera公司开发的Cyclone系列EP1C3T144C8核心芯片及LP-2900开发装置[2]。在此基础上,以企业需求为导向,抽象出实验室可以满足的开发功能,并对学生进行实验指导,在教学过程中培养学生的自主学习能力,创新思维能力,并在提高部分帮助学生将实验课堂所学真正运用于实际产品开发。现以一个教学实例阐述这一过程。
(1) 以企业需求为导向设计实验内容。企业需求为设计一个智能纽扣系统,通过纽扣按键切换智能模式,并在微型LED屏幕上显示当前模式序号。因课堂资源有限,截取“按键-显示”的功能作为案例,在EDA实验室的FPGA装置上进行实验,由此设定实验目标功能:LP-2900开发装置设有3×4键盘,共12个按键,按键内容为数字“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”,及符号“*”“#”。按键显示系统的开发目标为:① 利用3×4键盘输入“0~9”任意10个数字键,字符能在FPGA装置上的LED显示屏从左到右依次正确显示,每按1次键,显示1位数字,同时已有的数字依次左移1位。② 设有复位键,用来清空显示屏,等待键盘新一轮输入。在提高部分,指导学生去市场上采购合适尺寸和功耗的屏幕,按键等电子元器件,完成真正的产品开发。
(2) Quartus II基础教学培养自主学习能力。由于学生在这门实验课前对于FPGA为零基础,所以要进行一定的基础教学。踏实的专业基础能力是应用型创新人才培养的第一步,只有在牢固掌握专业基础能力的前提下才能进行创新,才知道如何创新,并灵活地将已有知识应用于实际生产中。
用Quartus II软件进行电子电路设计的开发流程如图3所示,虚线框内为可选步骤。教学中着重培养学生的自主学习意识,在讲解每个步骤时,引导学生查看指导书对应于该步骤的相应页码,也帮助学生掌握用学校图书馆电子资源和互联网等渠道查找相关资料。同时,为了给学生更直观的感受,老师在讲解每一个关键步骤后,对该步骤进行Quartus II 软件的实际操作演示,通过机房屏幕广播软件[19],控制机房所有电脑屏幕,同步演示。
图3 Quartus II的开发流程
为巩固教学内容,老师在每个关键步骤讲解结束后,立即指导学生用该步骤内容完成系统中的部分模块功能。学生由于掌握了自主学习方法,能很快找到需要查阅的资料,并参考这些资料进行模块开发。
(3) 启发式教学模式下系统方案设计与实现。启发式教学的关键是设计“思考题链”[15],实验教师用提问的方式引起学生的思考,并鼓励创新思维,得到不同的解决方案。在“按键-显示”实验案例中,“思考题链”设置如图4所示。
图4 FPGA“按键-显示”实验启发式教学模式
根据“思考题链”的启发,学生针对目标功能要求设计出多种可行方案,这里给出其中一种实现方案如图5所示。虚线框内为LP-2900装置上的3×4键盘系统。FPGA通过DE1~DE3这3个端口控制译码器A的输入,以使译码器A的Y0~Y3中某一个输出为低电平,进而获取按键阵列的列线状态,再通过RK1~RK3这3个端口读取按键阵列的行线状态。通过行线和列线状态定位被按下的按键位置。为了让DE1~DE3 3个端口输出循环往复变化,设置1个计数器[20],通过计数器循环往复的计数输出(q[0]~q[2])控制DE1~DE3依次不断变化,实现按键的列线扫描。由于计数器需要一个时钟输入(Clock),且该频率小于LP-2900装置上自带的晶振[21]频率,所以设置一个分频器[22],以将晶振的频率进行分频,降低频率输出。按键阵列的行线信息用一个2-4线数据选择器[23]进行获取,数据选择器的选择输入A、B两个端口用计数器q[3]、q[4]进行控制。为了记录按键阵列的行列信息以进行后续处理,要设置一个寄存器[24]。数据选择器的输出端同步控制计数器的使能EN和寄存器的时钟CLK1,这样,当扫描到有按键被按下时,计数器的当前计数输出q[0]~q[4]就能立即被寄存器记录。
图5 FPGA“按键-显示”实验的实现方案举例
接下来,要对获取到的按键阵列的行、列线信息进行译码,并显示在LED屏幕上。如只是显示当前按键,则只需设计1个7段显示译码器,将获取到的q[0]~q[4]的数据翻译为LED显示屏上7段数码管的A,B,C,D,E,F,G。这里,由于目标功能中要求原有数据保留显示,并依次左移1位,故设置移位寄存器[25],并配套3-6线数据选择器,移位寄存器的时钟也由用来获取按键行线数据的2-4线数据选择器的输出控制。这样,当有按键按下时,移位寄存器将原有输出下移1位,而配套的3-6线数据选择器通过不断扫描输出移位寄存器的6个输出端以实现移位显示功能。
复位按键可设计为控制移位寄存器的清零端CLR,则当复位按键按下时,移位寄存器输出清零,将其在7段显示译码器中翻译为LED屏全灭。最终,实现“按键-显示”系统的全部功能要求。
(4) 系统软硬件调试提升应用能力。完成软件电路设计后,要将设计的电路导入FPGA硬件装置,以查看最终开发效果。这时,学生会遇到一些问题,电路设计上的错误会真实地反映到硬件上。比如,有的学生按键时屏幕上没有显示,有的学生屏幕上的数字不能移位等。这时要进行调试,让学生分析产生问题的可能原因,去电路原理图中查找对应模块是否设计有误,及时更正错误,完成最终作品。在这个过程中,学生能深切感受到理论分析与实际产品开发的区别。
在提高部分,要求学生分析企业所需产品的特点,考虑尺寸,功耗等各方面因素,去市场上挑选合适的电子元器件,来代替实验装置,完成实际产品开发。这一过程大大提高了学生的自主学习能力,创新思维模式以及工程应用技能。
在本案例中,实验内容紧密结合工程背景,使学生对实验目的有清晰的认识,对实验内容有系统性的概念,在完成产品开发后,对自己的应用技能产生信心。自主学习能力的培养使学生拥有独立学习和独立开发产品的意识和能力,在未来的学习工作中,懂得如何查阅资料,独立进行产品研发。“经验库”的使用在实验课中大大减少了学生的等待时间,提高了学习效率,同时,许多学生也效仿这个思想,建立了自己的“经验库”,将解决方案不断补充进去,方便今后查阅。启发式的教学模式不仅提高了学生的课堂参与度,也活跃了学生的思维,提出了许多创新的解决方案。基于应用型创新人才培养的教学模式在FPGA实验教学中取得了良好的效果。
为弥补传统教学模式的不足,提出了培养应用型创新人才的FPGA实验教学模式,并通过FPGA“按键-显示”系统的实验课案例详细阐述实验教学过程。从FPGA的工程应用背景入手,运用“产学研”结合的教学模式提高学生的工程应用能力。在Quartus II等基础教学过程中配合“经验库”的建设,着重培养学生的自主学习能力。在方案设计实验教学环节,运用启发式教学模式,设计环环相扣的“思考题链”,引导学生积极思考,培养创新思维能力。最终,在新模式的引导下,学生从对FPGA一无所知的状态,逐渐掌握FPGA的专业知识,自主完成软件设计,硬件电路调试,完成产品开发,并运用于实际生产中。在此过程中培养了学生的自主学习能力、创新思维能力和工程应用能力,较好地实现了应用型创新人才的培养目标。