丁家峰, 李新梅, 孙克辉, 尹林子, 赵 岩
(中南大学 物理与电子学院, 湖南 长沙 410083)
电子设计自动化EDA(Electronics Design Automation)技术是继计算机辅助设计CAD(Computer Aided Design)和计算机辅助工程CAE(Computer Aided Engineer)后用计算机辅助电子系统设计的最高阶段,实现了电子系统设计的全自动化和智能化。
本科阶段的“EDA技术与应用”课程和教材主要围绕FPGA(Field Programming Gate Array)电子系统设计和实践,内容涵盖硬件描述语言、CPLD/FPGA器件和集成化开发环境等[1]。
笔者多年来负责“EDA技术与应用”课程的建设及教学,深刻体会到该课程内容具有相当的广度和深度,将课程内容有机组合服务于专业培养要求实属不易。尤其针对发展速度超快的EDA技术,如何避免学生还未毕业,学到的知识就已经过时的现象,一直是困扰笔者的问题所在[2]。
本文将从“EDA技术与应用”课程特点、理论教学、实践教学和教学评价四个方面论述对该课程改革和创新的一些思路。
基于FPGA的EDA技术实现了用计算机进行电子系统自动化设计的全过程。基于FPGA平台可以实现当前绝大多数数字电子系统设计。作为可编程逻辑器件的典型代表,FPGA采用了查找表方式的逻辑电路实现方法,比采用乘积项方式的CPLD更加简单灵活,比PROM存储器具有更高的利用率,而且集成了锁相环、存储器、硬件乘法器的FPGA可以实现单片机和数字信号处理器的功能。
基于FPGA的“EDA技术与应用”课程基础是“数字电子技术基础”课程,这两门课程以交叉螺旋上升方式共同发展。“数字电子技术基础”基于布尔代数和多值逻辑,采用自底向上的方法描述组合和时序电路的设计方法,为可编程结构的重构和控制提供了坚实的理论基础,是FPGA器件集成和创新的保障。而“EDA技术与应用”课程则基于FPGA的平台,采用自顶向下的设计方法,完成数字系统的快速自动化设计和实现,极大推进了数字电子技术的发展。“数字电子技术基础”充分展现了数字电子设计中自底向上的归纳过程,“EDA技术与应用”充分体现了数字电子设计中自顶向下的演绎过程,两门课程相辅相成、相互促进。
考虑到“EDA技术与应用”课程涵盖的内容很多,而且知识更新的速度很快,因此在课堂中面面俱到的全面讲授根本不可能,也没必要。
从FPGA器件发展来看,从早期的Altera公司的FLEX系列发展到现在的CYCLONE系列,器件的集成度增加了,器件内部集成的锁相环、乘法器、存储器和接口特性都增强了,但器件的基本原理并没有大的变化。
从集成开发工具发展来看,从早期的MAX+PLUSII发展到现在的QUARTUSII,人机交互界面变化了,与最新版Windows操作系统的兼容性增加了,但新版剥离了仿真模块的QUARTUSII给教学带来了一定的不便。
从硬件描述语言的发展来看,以VHDL为例,虽然2000年以后也做了一些更新和扩展,但87版和93版标准仍是目前的主流,被众多工具支持,变化不大。
为了满足电子信息专业本科教学的需要,根据上述三个方面发展的特点,我们提出分三个阶段进行理论教学的安排:
1)阶段一:基础内容引导
作为最基础的部分,涉及到概述、器件、工具和语言四个部分,是课程必须掌握的内容:①概述部分起到概览的作用,了解EDA技术的发展历史、设计方法学、设计流程以及未来展望;②器件部分在此阶段是最基本内容,以乘积项原理的CPLD和查找表原理的FPGA两条主线讲解可编程器件的结构和特点,通过数字电路中的最小项和最大项是否可编程的特性衍生出ASIC、PLA、PROM、PAL、GAL和CPLD器件,然后将CPLD中的乘积项单元用查找表替换获得FPGA器件,进而讲解FPGA器件中的锁相环、存储器、乘法器和接口电路。最后的编程下载和调试功能则是CPLD/FPGA通用技术,紧扣JTAG标准讲解即可;③工具部分的讲解以一个图形化全加器或者全减器设计为例讲解为宜,因为“数字电子技术基础”课程以图形方式建模为核心,学生已经能容易判断图形模型的对错,所以会将精力放在软件工具的掌握上,了解EDA设计的输入、仿真、综合、适配和下载过程,并且可以掌握嵌套式工程设计方法;④语言部分,VHDL硬件描述语言的讲解必须循序渐进,在这个阶段完成基本的语法结构和简单的数字电路设计即可,而VHDL语法结构的讲解最好放到数字电路设计案例中讲解。典型的数字电路为组合的全加器和时序的计数器,通过在行为级、RTL级和结构级对这两个电路进行VHDL文本建模,可以覆盖大部分语法结构。这个阶段的内容和数字电路课程紧密相关,起到承前启后的作用。
阶段一的四个部分,每部分结束时都采用课堂提问的方式进行考核,力求学生能全部掌握,这一阶段占总课时的50%。
2)阶段二:特色系统讲解
考虑到电子技术发展日新月异,数字系统集成度越来越高,若所有的系统都从基本的门电路出发设计,只是多了一种文本式建模方法,不能完全体现EDA技术的优越性。此外,FPGA器件内部集成的锁相环、存储器等特殊资源,必须使用软件提供的宏单元才可以启用。因此调用系统提供的知识产权IP核进行资源复用是电子系统设计的一条捷径。为了体现课程特色,我们通过设计51单片机最小系统这个案例讲解这部分内容。51单片机选择开源的mc8051,PLL、RAM、ROM直接使用FPGA内部资源,单片机的代码在Keil C51中编译转化为HEX格式,然后在QUARTUSII环境中进行集成设计。我们在课堂中认真讲解这个案例的每个细节,使学生不仅了解知识产权复用的办法,而且掌握了快速数字系统设计的方法。
这一阶段以工具的使用为主,多数学生可以掌握,占总课时的25%。
3)阶段三:高级设计方法
在FPGA数字系统设计中,状态机设计和编码、系统优化和抗干扰、时序分析等高级内容都是难点。在这一阶段,我们重点讲解状态机的设计与编码,其它部分由学生自学并在实践环节进行讨论和考核。这主要是考虑到状态机是处理器控制单元设计的基础,除了计算机专业的学生必须掌握以外,电子专业的学生也要能够设计简单的微处理器。该部分以VHDL语言的深入应用为主,通过设计序列检测器和ADC控制器,训练学生们的状态提取和状态转移分析能力,突出基于PROCESS语句的多进程结构,区分不同编码在FPGA和ASIC平台实现中的优劣,对这阶段内容可能只有少数学生达到熟练掌握的程度,这阶段占总课时的25%。
上述三个阶段的课程安排,我们都精心准备了典型的案例,将理论和实践有效地结合起来。同时,在每阶段小结时,均会安排课堂提问环节并布置平时作业,使学生尽快地掌握这门技术。
我校“EDA技术与应用”课程的实验平台主要有两种类型:一种是掌上开发板形式,配合学生的电脑和软件开发工具即可构成口袋实验室,可满足与理论教学同步的实验活动,不受场地和时间的限制,但开发板有限的资源只能满足入门的需求;另一种是实验箱形式,资源充裕,体积较大,只能在专业实验室内使用,需要单独安排实验时段,可满足大型电子系统设计要求。
在课程初期,学生可以借用开发板,紧跟理论教学步伐,完成EDA技术的入门学习。理论课程结束后,学生归还开发板,然后到专业实验室使用实验箱,完成EDA技术的综合和创新实验。考虑到使用口袋实验室,学生已经完成了大部分的实验任务,为使专业实验内容的安排更有效,我们根据理论教学的内容,通过提炼整合各阶段的关键词,有针对性地安排了三阶段的综合实验内容。
阶段一:组合/时序电路+优化/抗干扰实验。这项实验要求学生在基础的组合或者时序电路上增加优化或者抗干扰的功能,如译码电路的输入端增加抗干扰功能、全加器升级为流水线全加器等,对应理论教学的第一阶段。另外,坚决不允许提交同样的作品,要求学生自己去寻找课题,并以最快的速度完成,引起学生对实验的重视。在掌握技巧后,所有学生都能完成这个作业。
阶段二:MC8051+片内外设实验。这项实验要求学生在课堂学习的单片机最小系统上增加片内外设,这些片内外设建立了单片机和实验箱硬件外设之间的关联,然后编制程序实现对硬件外设的控制。这个实验使用的是同样的单片机最小系统,但要求学生在设计片内外设或者硬件外设控制程序上不能重复,因此有一定的实现难度。大约只有50%的学生可以完成这个实验。
阶段三:状态机+ADC转换器实验。这项实验要求学生使用状态机实现对外部模拟-数字转换器的控制,如TLC549、ADC0809、TLC5510等,要求学生通过更换ADC芯片或者状态机的状态数,提交带有个人色彩的不同作品。这是难度等级最高的实验题,只有25%的学生可以完成这个实验。
口袋实验室与专业实验箱结合的实验方式,提高了专业实验的难度和对学生的要求,可以让学生通过实验过程看到最终的实验效果,提升了学生的创新能力和竞争能力。
学生成绩由平时成绩和末考成绩两部分组成,考虑到每年选修该课程的学生人数都超过170人,若平时成绩占比太高,教师主观评价将严重影响学生的总分,且教师会花费大量的时间和精力。所以平时成绩占比不要太高,以30%为宜。但是,对于这门实践技能要求很高的课程,单纯的对概念和基础考试又无法体现学生之间的差异。所以,一份高质量的期末考卷是解决问题的关键,在这份占总成绩70%的考卷中,必须拥有40%以上的实践考核内容。为此我们提出了一种新的创新考评办法。
平时成绩:以一次考勤为基本单位,将课堂问答、平时作业和实验报告以1:1:1的比例折算为考勤分。在理论课每次小结时,教师都会精心准备一些题目,以课堂提问的形式强化学生的理解和记忆。具体流程为:首先教师发问,然后学生翻书查资料准备,这时教师按照名册依次点名,点到名的学生站起来作答,答对者记一次出勤和1次课堂问答,回答不上来者只记一次出勤,点到名但未出勤的学生记一次缺勤,这些记录最终都折算成考核分。(丁家峰等文)
平时作业和实验报告的考核有一定难度,在学生提交时必须当场检查提问,不合格者立刻告知问题并退回,学生修改后可以再次提交。只有通过审核的报告和作业才可提交,最后折算为考核分。课堂提问活跃了学习的气氛、平时作业和实验报告拉开学生的差距,保证了理论教学和实践教学的顺利进行。
期末成绩:因为课程涵盖内容很多,我们采用了开卷考试的形式,注重学生对知识的理解而不是单纯的记忆,通过选择、判断的形式对基础知识进行考核,占60%的题量。另外40%的题量则选自学生的平时作业和实验报告,因为前期对平时作业和实验报告进行了严格把控和精心筛选,所以提交的作品都是精品,从这些精品中提炼考试题目是考验他们运用能力的最佳办法,学生分数可明显被区分开。如层次化工程设计、mc8051单片机最小系统、序列检测器的状态机设计等都是典型的考试题目,以填空、计算和问答的形式进行考核不仅可以客观反映学生的应用能力,而且可以避免评卷的主观性。
上述模式提高了课堂的趣味性、分数的客观性和实践应用能力的比重,增强了学生应用EDA技术的积极性,深化了学生对EDA技术的认识。
通过分析我校“EDA技术与应用”的课程特点,笔者在理论教学、实践教学和学生考评三个方面提出了创新的教学模式,既实现了与“数字电子技术基础”课程的平滑衔接又体现了“EDA技术与应用”课程本身的特色。经过多年的教学实践,学生能很快掌握EDA技术,还曾获得全国电子设计竞赛一等奖和全国嵌入式系统竞赛一等奖的好成绩,以上实践成果证明了该教学模式的有效性。
[1] 潘松,黄继业. EDA技术实用教程-VHDL版(第四版)[M],北京:科学出版社,2010.
[2] 阚玲玲,张秀艳,粱洪卫. “EDA技术与应用”课程教学内容的定位与改革[J]. 南京:电气电子教学学报,2010,32(5):27-28.
[3] 朱正伟,周炯如. EDA技术在硬件课程体系教学改革中的应用[J]. 南京:电气电子教学学报,2010,32(6):23-25.