新工科背景下“EDA技术”教学改革探索

2024-01-17 10:03
电气电子教学学报 2023年4期
关键词:EDA技术学时教学内容

周 越

(北京林业大学 理学院, 北京 100083)

为主动应对新一轮科技革命与产业变革,教育部高等教育司于2017年在“卓越工程师教育培养计划”的基础上发布了《关于开展新工科研究与实践的通知》,旨在深化工程教育改革,推进新工科的建设与发展,从而适应以新技术、新业态、新模式、新产业为代表的新经济的要求。就电子信息科学与技术专业来说,要求培养在信息技术和智能制造产业链中熟悉软硬件的,系统层面上的综合创新型工程技术人才[1]。

课程是人才培养的核心要素,其质量直接决定了人才培养质量,课程的教学内容和方法要紧跟时代的发展步伐,与时俱进。教育部于2019年出台了关于一流本科课程建设的意见,为课程教学改革指明了方向。本文结合新工科的建设要求和课程定位,对“EDA技术”课程教学中存在的主要问题做了剖析,并结合近年的教学实践探讨了课程改革的目标和具体措施。

1 “EDA技术”课程的特点

就“EDA技术”课程而言,EDA(Electrical Design Automation,电子设计自动化)指以硬件描述语言为逻辑功能的主要表达方式,以EDA工具软件为开发环境,以大规模可编程逻辑器件为载体的设计方式。EDA技术的发展打破了软件与硬件之间的壁垒,利用硬件描述语言和高性能的综合工具,可以用类似开发软件的方式开发硬件。与传统电子设计技术相比,这种新的方法具有投资少、周期短、便于升级、开发工具智能化等特点,因而在通信、航天、医疗电子、工业控制等领域得到了广泛的应用。掌握可编程器件的开发、应用技术日益成为电子工程师的基本要求。

在北京林业大学电子信息科学与技术专业中,“EDA技术”是专业核心课程之一,主要教学内容包括EDA集成开发环境Quartus Prime和仿真工具Modelsim的使用,基于硬件描述语言VHDL和Verilog HDL的电子系统设计。从形式上看教学内容偏重于软件,但本质上又是描述和开发硬件,这决定了“EDA技术”是一门软硬结合,工程性、综合性和实践性都很强的课程。

2 课程存在的问题

与数电、模电等相比,“EDA技术”是一门开设较晚的课程,在很多方面尚无成熟的模式可循,经过近年的教学实践,在教学内容和组织等方面都暴露出一些问题。

2.1 教学内容选择不够合理

硬件描述语言的使用是“EDA技术”课程的核心部分。目前最常用的两种硬件描述语言是VHDL和Verilog HDL,国内院校在制订该课程的教学大纲时,或者兼修两种语言,或者选择其中一种讲授。北京林业大学以往采用的是第一种方案,两种语言各分配10学时左右。但在总学时并不充裕的条件下,平均分配学时使得两个章节的教学时间都很有限,只能介绍比较基础的内容,结果学生对两种硬件描述语言的掌握都难以达到解决实际问题的程度。这种“概论”式的讲法无疑与专业核心课程的定位是不匹配的。

2.2 教学内容组织不符合认知规律

在现有的教材中,硬件描述语言的章节基本上是遵循语法本身的知识结构来组织的,即先说明文字规则,然后讲授数据对象和各类运算符,最后介绍各种语句的格式和功能。这种编排方式的优点是条理清楚,结构完整,便于学生随时查阅,但这种以语法为主线,过度侧重介绍语法本身的讲法并不合乎语言学习的认知规律。从教学实践看,脱离实际应用场景,专门记忆大量语法规则,学习效率很低。即使能勉强记住,也只适合应付书面考试,难以灵活运用解决实际问题。此外,规则性的内容罗列过多,也使课堂教学像复述一本流水账,较为枯燥乏味,无法激发学生的学习兴趣。

2.3 实践教学环节薄弱

作为一门实践性很强的课程,实践环节是“EDA技术”课程极为重要的组成部分。从EDA开发工具的使用到硬件描述语言的编程开发,都是需要大量上机操作才能真正掌握的。从国内电子类强校开设的同类课程来看,实验与理论学时的比例通常为1∶1到1∶2[2],且近年来实验学时所占的比例是趋向增加的。以往北京林业大学开设的“EDA技术”课程只有6个实验学时,不足理论学时的四分之一,这使课时不足的问题十分突出。在必要的讲解之后,往往时间已所剩无几,只能安排几个非常基础的实验,且以验证性实验为主,达不到必要的训练强度。此外,部分更适合在实验学时中讲授的内容如EDA工具软件的使用,被迫放在理论学时中进行,但学生在普通教室中只能单纯观看教师演示,无法跟随示范动手操作,下课后对操作步骤只有一个粗略的印象,当自己上机时很难顺利上手。

2.4 实验设备与实际需求脱节

传统上,EDA的实验主要在各型教学实验箱上完成。目前市场上常见的教学实验箱产品通常在设计上一味贪大求全,结构复杂,价格昂贵,实际并不切合本科教学的需要。相当一部分功能在整个使用年限内很少能用到。实验箱本身的体积和重量较大,储存、携带、分发都不够便利,也不太适合借给学生在课下练习。特别是,EDA教学实验箱的报价普遍较高且换代周期较短,由于经费限制每次一般只能采购十余台,这样即使采用分班上课的形式也只能两个或者更多学生合用一台设备。从实践看,在入门阶段采用这种分组的形式,并不能起到共同提高、提升协作能力的作用,往往是自觉性较好的学生唱独角戏,自觉性差的学生搭便车过关,无从保证教学效果。

3 教学改革的思路和措施

新工科人才培养的要求迫切需要对现有课程进行改革。除设立新专业外,目前各高校普遍在传统电子类专业中增加了大数据、物联网、人工智能等新兴领域的选修课程。但是没有基础课程的支撑,学习任何新技术都是无本之木。如何在总学时大体不变的条件下加入前沿课程,同时保证教学效果,是制订专业课程体系时面临的挑战。这要求协调各门课程的分工与合作,精简重复性内容,激发学生的自主性学习,并将工程实践和创新能力的培养贯穿于整个课程体系。基于这些考虑,我们对“EDA技术”课程做了如下改革。

3.1 调整教学安排

1)增加实践环节学时

在新版的教学大纲中,“EDA技术”的实验课时由6个调整到14个,并根据理论课的进度分配到5个教学周中。这样,EDA工具软件的使用相关章节可以改在实验室中讲授,便于学生跟随教师操作练习。实验内容方面,在保留原有验证性实验的基础上,增加2~4个设计性实验。通过这些调整,显著改善了实践环节内容单薄,训练不足的问题。

2)借鉴翻转课堂,挖掘学生课余时间

增加学时数只是部分地解决了学时紧张的问题,课时的调整涉及整个培养方案的协调,受到各种客观因素的限制,因此还应适当挖掘学生的课余时间。对此笔者借鉴了“翻转课堂”的教学模式[3]。即学生在课前利用教师提供的各种资料自主学习必要的背景知识,完成源程序的编写、仿真和初步的硬件测试;在课堂上教师组织学生以讨论的形式交流实验设计思路、实验心得和改进方向等,协助处理学生未能独立解决的问题,并就学生在实验中出现的共性问题进行重点讲解;学生在课后继续改进完善实验设计并撰写实验报告。

3.2 完善教学内容

1)从实际出发选择和组织教学内容

“EDA技术”课程的一个主要教学目标是使学生初步具备使用硬件描述语言对数字逻辑电路建模和验证的能力。在课时有限的条件下,要达到这一目标,两种硬件描述语言应当有所侧重。从社会需求看,国内外大部分企业单位中设计开发以Verilog HDL为主,VHDL只在科研院所和军工领域中相对普遍一些,以Verilog HDL为主要学习对象更符合农林院校电子专业的定位。从学习难度看,VHDL是强类型语言,语法严格,代码较长,初学者不易上手;Verilog HDL语法相对简单自由,代码风格接近学生比较熟悉的C语言,学习的门槛要低得多,更适合作为入门的硬件描述语言。基于这两点考虑,笔者对教学内容做了如下调整:将教材中第四章Verilog HDL的讲授时间提到第三章VHDL之前,并且用15~16个学时的时间精讲。由于两种硬件描述语言的语法存在很多共通之处,学生在掌握Verilog HDL之后,再学习VHDL的难度会大大降低。利用剩余的4~5学时扼要地介绍VHDL,即可让学生具备通读VHDL代码的能力。通过这些调整,使教学内容符合从易到难的学习规律,也更切合社会的实际需求。

2)补充教材中讲解不细致的要点和难点

学生以往所学习的计算机语言只要代码符合语法规则,都是可以编译通过的。硬件描述语言用于描述数字电子系统,其代码经过逻辑综合等设计处理步骤,将转化成反映电路具体结构的门级网表。由于综合器的性能,以及硬件的可实现性等客观因素限制,可以逻辑综合的代码只是硬件描述语言全部语法的一个子集,即使代码合乎语法规则,也可能是不可综合的。目前的教材往往对可综合性的要求言之不详,学生即使认真研读教材,有时也难以找出编译不通的原因。针对这种情况,笔者总结了在实践中非常普遍,而教材中未提及或一笔带过的规则和技巧,并添加到教学课件中。例如,描述一个带有异步清零功能的时序逻辑电路模块是设计中很常见的问题。异步清零信号本身是一个电平敏感信号,按照教材中介绍的规则在敏感信号列表中没有posedge/negedge修饰。但可综合性要求同一敏感信号列表中的所有信号必须都有或者都没有修饰,如果没有修饰,就不能和有修饰的时钟并列;可综合性还要求不能在两个always块中对同一变量赋值,因此也不能把时钟和清零信号放在不同的always块中。正确的写法是:形式上要把异步清零信号加上posedge/negedge修饰,在always块内部通过合理安排if语句的分支条件可以实现电平敏感的实际效果。只有让学生清晰地了解这些特殊规则,才能写出合乎规范的代码。

3)重构实践教学内容

提升学生的工程实践能力是课程教学改革的一个核心内容,在解决了学时过少的问题之后,下一步要做的是结合专业培养目标重构实践教学内容。作为学生熟悉EDA工具软件使用和开发流程的必要步骤,原有的基础验证性实验酌情保留,在此基础上增加设计性实验。对于后者,采用项目教学法来组织是比较理想的方法[4],即在教师的指导下,由学生自主完成相对独立的项目,涵盖资料调研、项目方案的制定和具体实施等内容。

布置合理的实验项目是项目教学法成功的关键,笔者在设计实验项目时,主要遵循以下几个原则:

(1) 难度和规模适中。实验项目应该是多数学生经过必要的努力之后,在合理的时间内可以完成的。为了照顾不同层次的学生,可以将实验项目设计要求分为基本要求和扩展要求,后者在有余力的条件下完成。这样既可以达到训练目的,又不会打击学生的学习热情和信心。

(2) 典型性。实验项目的主体应该是电子系统中具有较大实用价值的典型模块,便于与电子设计竞赛、大创和毕业设计等环节衔接。

(3) 综合性。从结构上说,实验项目应该是一个由多个子模块构成的系统,使学生掌握基本的层次化设计技术。同时,项目应该尽可能覆盖课程的重要知识点,学生在完成实验的过程中,也对理论课所学内容做了复习和巩固。

(4) 结果便于观察。实验项目的运行结果应该是可以在七段数码管、蜂鸣器和示波器等设备上展示的。成果清晰直观,可以使学生在完成之后更有成就感,同时也便于教师检查验收。

当然,项目内容还必须是现有开发板上的硬件资源所支持的。UART和SPI串行通信、PWM调制、DDS,频率测量等都是在中小型开发板上可以实现的典型应用技术。

例如, UART串行通信是单片机技术课程的教学内容之一,但侧重于相关的软件开发,学生在学习后对UART的理解局限于面向程序员的抽象模型。在完成对UART的硬件描述语言建模后,可使学生获得对底层硬件的工作过程的深入理解。

仿真和验证是EDA开发的重要环节,作为初学者学生一般更喜欢用Quartus Prime自带的波形编辑工具创建激励信号,并通过观察仿真波形验证设计的正确性。这种方式简便易行,但只能做初级的仿真,应使学生初步掌握在Modelsim中利用Verilog测试平台仿真的方法。例如,对UART接收模块,可以要求学生用测试平台产生测试激励信号,实现接收数据与测试数据的自动比较并给出问题报告。

将基本模块的功能适当组合,即可构造有一定综合性的实验项目。例如,以PWM方式产生不同频率的方波信号驱动蜂鸣器可以产生各种音调作为简易音乐播放器;与UART模块结合可以实现在计算机中输入音符文件,在开发板上播放的功能;添加七段数码管译码和驱动模块可以实现音符的实时显示;如学生有兴趣和余力,还可以自行添加音乐存储和回放等功能。

3.3 改进教学方法

1)以案例为中心组织教学

按照认知规律,学习计算机语言的一般过程可以概括为“读”“仿”“造”[5]。即先通过读懂别人的代码,初步领会编程思路和语法规则,然后在模仿和局部修改别人程序的基础上,尝试编写功能相近的程序,最终做到根据具体需求自如地开发各种程序。学习者在阅读、模仿示例程序和上机调试的过程中,自然而然地掌握常用的语法结构,即使再专门学习语法知识,也是在此基础上的规范化和系统化。因此,应该从对示例程序的解读入手组织教学。教材中虽然也提供了一些例子,但这些程序段大都是为说明语法本身的功能服务的,总体过于简单。硬件描述语言中的语句(特别是顺序语句)与其他高级语言差别并不大,对已有一定的计算机语言基础的学生来说,这些例子的示范作用很有限。当学生尝试编写面向实际问题的程序时,由于复杂度陡然增大,往往感到无从措手。这就要求示例程序具备必要的规模和深度,同时应尽可能地体现硬件描述语言区别于一般高级语言的特点。例如,并行结构是硬件描述语言的一个重要特性,也是学生经常不能很好领会的。如果用包含多个并行结构(VHDL中的进程或Verilog HDL中的always块),且并行结构之间存在通信的程序作为示例,就可以让学生更好地理解和掌握这个知识点。

2)为学生提供在线指导

2020年上半年的疫情迫使全部课程教学改在线上进行,现在虽已恢复正常教学秩序,但以微信群、QQ群等方式加强师生间的沟通仍然是有益的。学生作为初学者在课下做实验的过程中经常会遇到各种调试不通的情况,如果能提供及时的指导,可以避免学生长时间卡在某个特定的问题上,大大提升效率。学生一般习惯于单独向教师提问而不是将问题直接发到群里,QQ群允许非好友成员发起临时会话,相比微信更适合作为师生间在线交流的平台。特别是,EDA工具软件在使用中的一些问题很难只通过文字交流解决,QQ提供了完善的远程协助功能,教师可以通过远程桌面直接操作学生的电脑,实时解决学生遇到的难题。

3.4 更新实验器材

翻转课堂的教学模式要求学生在课下具备必要的实验条件。笔记本电脑在学生中的普及率接近100%,设计输入、设计处理和仿真等环节均可在学生的个人电脑上完成;利用Quartus Prime内置的嵌入式逻辑分析仪,在计算机屏幕上即可观察信号波形,基本可以满足各种调试任务。需要学院提供的主要是以可编程逻辑器件为核心的硬件开发环境,而传统的试验箱并不适应这一角色。近年出现的“口袋实验室”打破了传统实验室的时限性和封闭性,使学生随时随地进行实验成为可能[6]。“口袋实验室”本质上是将实验仪器设备微型化,方便学生随身携带,甚至可以放在口袋中。以STEP MAX10-02 FPGA开发板为例,集成了按键、拨码开关、三色LED灯、七段数码管、LCD显示屏、AD/DA转换器、串口、蜂鸣器、温度传感器等资源,而主板仅5×2 cm,加上扩展板也只有半个手掌大小。开发板上自带配置芯片,无需另备USB-Blaster下载器,利用手机通用的数据线连接电脑和开发板即可实现编程配置。其低于300元的价格只有传统教学实验箱的十分之一左右,利用较少的经费即可实现学生人手一台。在开课后将开发板下发给学生,学生就可以在课余灵活安排时间进行各种实验,结课后再将开发板回收。

3.5 优化考核方式

“EDA技术”课程的总评成绩由平时成绩和期末考试组成,以往由于实验学时有限,平时成绩所占的比重较低,且侧重于实验课的考勤情况,难以全面评估学生的学习情况和综合能力。针对这种情况对课程考核方式做了若干调整,力图兼顾公平性、客观性和有效性。其一是在期末试卷中减少对基本概念、语法规则等记忆性内容的直接考查,相应增加综合分析类题目的比重,从而杜绝了依靠考前突击复习,死记硬背轻松过关的可能性。其二是加强对实践环节的考核。如何客观评价学生在实践环节的总体表现是一个难点,教师在较短的学时内观察几十名学生的实验情况并分别给出客观性强的表现分不具备可操作性,因此仍以实验结果和实验报告的撰写情况作为主要评分依据。实验结果根据设计目标的完成情况给出相应分数;对实验报告则结合完整性、规范性和个人创见等方面做出综合评价。为了尽可能消除靠抄袭、搭便车获得高分的情况,实验报告一律提交到自带查重功能的“课堂派”平台;以小组为单位完成的实验,要求学生在撰写实验报告时突出个人完成的部分并重点考查,从而确保考核结果的公平公正。

4 课程教学改革的成效

4.1 提升了课堂教学效果

通过优化教学内容和方法,改善了以往课堂教学内容枯燥、气氛沉闷、效率低下的问题。在围绕典型性案例分析和探究的过程中,学生的注意力普遍较为集中,而且能够针对其中的问题展开积极的讨论。近几年“EDA技术”课程的课堂教学评价由87分左右提升到92分以上,说明学生总体上对教学改革的结果是满意的。

4.2 提升了学生的编程能力

以往由于训练量不足,学生通常阅读程序的能力尚可,而一旦自己动笔,各种低级问题就层出不穷。书面考试受评分标准的客观性所限,程序类题目以程序补全为主,并不需要学生从头写完整的程序,即使如此,以往这一部分的得分率也只有40%左右。教学改革后,学生通过由浅入深,从易到难的训练,编程能力得到明显提升。反映到测试中,在难度大体相当的条件下,程序题的平均得分率提高到70%以上。

4.3 提高了学生的工程实践能力

以往受课时限制,实践环节以验证性实验为主,按照说明的步骤操作即可得到结果,对提升解决实际应用问题能力的帮助有限。通过教学改革,学生在教师指导的基础上,自主进行资料查阅、方案选择、程序开发、系统调试,完成有一定综合性和实用性的实验项目。从结果看,学生一般都能较好地实现基本要求,部分基础好的还能在扩展要求之外,进一步加上个人发挥的部分。在近年的毕业设计和电子类学科竞赛中,基于FPGA方案的设计多次获得校级优秀毕业设计、北京赛区二等奖等奖项,体现了学生工程实践与创新能力的提升。

5 结语

“EDA技术”作为电子信息类专业的核心课程,是卓越工程师培养中的一个重要环节。当前技术市场与人才市场对EDA 的需求日益增长,凸显了加强课程建设的必要性和紧迫性。在对“EDA技术”课程教学中存在的问题做具体分析的基础上,通过重组和优化教学内容,在实践环节引入翻转课堂和项目制模式等举措,在提升课堂教学效果,提高学生创新和工程实践能力等方面取得了阶段性成效。电子设计自动化是目前发展迅速的领域,只有与时俱进,不断对课程的教学内容和方法进行改革和创新,才能培养切合社会需要的专业技术人才。

猜你喜欢
EDA技术学时教学内容
《诗词写作》课程教学大纲(节选)
学时压缩下有机化学教学方法探讨
教学大纲国画(工笔花鸟)
探索学时积分制 构建阶梯式成长激励体系
挖掘数学教学内容所固有的美
EDA技术在数字电子技术教学中的探索
“启蒙运动”一课教学内容分析
基于EDA技术的计算机硬件实验教学体系构建
“清末新政”也可作为重要的教学内容
EDA技术与数电课程教学结合的探讨