论文部分内容阅读
摘要:介绍HDL课程实验教学改革的方案。明确课程特点,帮助学生尽快步入HDL的实验设计大门;对比强调知识点之间的联系和区别,增强学生对概念的理解,提高学生程序设计的准确率;优化实验顺序,逐步提高学生的实践能力;充分调动自主实践的积极性,引导学生自主学习。实践证明,通过对HDL课程实验教学的改革,提高了学生的学习能力和创新能力。
关键词:HDL;教学改革;实践能力
作者简介:齐本胜(1969-),男,湖北枣阳人,河海大学计算机与信息学院,副教授;苗红霞(1968-),女,河北邯郸人,河海大学计算机与信息学院,讲师。(江苏 常州 213022)
基金项目:本文系2010年教育部电子科学与技术专业教学指导分委员会合作项目(项目编号:C0914)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2011)04-0128-02
高校实验室的作用渗透在大学人才培养、科学研究和社会服务的三大功能里面,[1]因而,各高等院校对各类课程的实验教学环节都非常重视,并积极地推进各类实验课程的改革。各高等院校对各类课程的实验教学环节都非常重视,并积极地推进各类课程的实验改革。
HDL(Hardware Description Language,即硬件描述语言)是应电子信息行业的社会需求而逐渐兴起的是一门专业基础课,让学生们在学校里掌握HDL语言设计的基本技能,是提高他们硬件设计能力所必需的,可为其毕业后从事现代数字电路设计工作打下坚实的基础。
采用HDL语言设计电子系统是当今的趋势,这不仅是提高设计效率的需要,更是我国电子工业在世界市场上生存、竞争与发展的需要。作为河海大学(以下简称“我校”)的一门弱电类核心课程,HDL課程名称为“HDL及系统设计”(2学分)和“HDL课程设计”(1学分),我校对自动化、电子科学与技术、电子信息和通信专业的学生都开设该课程,即每个年级都有约400名学生选修该课程。该课程的特点是实践性非常强,因此,对该课程进行实验教学改革,对培养学生的设计能力、新技术开发能力、创新意识和创新精神,进而使学生以后能更好地服务社会具有重要意义。[2]
一、HDL课程实验教学现状
该课程是大二或大三学生在学过数字电路和C语言之后所学的一门课程。在HDL课程实验教学过程中发现,大多数学生总觉得该课程难学,不易入门,实验的程序设计无从下手。主要表现在以下几点。
(1)学生很难在“思维”上尽快入门,HDL是用软件实现硬件的工具,但学生经常沿用C语言的思维,所以,学生在设计实验方案时,不能尽快接受HDL的设计思维方式。
(2)该课程的实践内容较多,学生若没有掌握各知识点之间的联系,不熟悉开发流程,就很难有设计思路,事倍功半。
(3)现有的教学和实践的手段单一,传统的填鸭式实验教学对于没有工程实践经验的学生来说吸引力不够,教学和实践的效果不太好。
二、实验教学改革的实施
1.帮助学生尽快掌握该课程的特点和学习思路
数字电路是硬件,采用并行处理方式,C语言是软件,采用串行处理方式。HDL采用“软硬结合”思路,其语法虽然和C语言相近,但它是用软件实现硬件的工具,学生刚接触该课程时,经常会沿用C语言串行处理的思维,不能尽快掌握该课程的特点和设计思路。HDL语言是一种电路硬件描述语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计,具有自己的特点,学生只有充分掌握了这些特点,才能有学习思路,从而准确地设计实验方案。HDL 硬件描述语言与传统数字系统设计方法是完全不同的,具有以下几个特点。[3-5]
(1)与传统的自下而上的设计方法不同,HDL采用自上而下的设计方法。
(2)采用FPGA芯片,根据电路的实际需要,用HDL设计出的系统电路更趋合理,体积更小。HDL 支持数字电路的设计、验证、综合和测试,可以在行为域和结构域对数字系统建模,支持这两个域的所有描述层次。
(3)早期仿真。对系统设计进行三级仿真,在系统设计的早期就能及时发现并解决问题,与传统的后期仿真相比,大大缩短了系统的设计周期。
(4)降低硬件电路设计难度。HDL既是包含一些高级程序设计语言的结构形式,又是兼顾描述硬件电路连接的具体构件。用HDL语言设计硬件电路,只需用语言编写出硬件电路的功能和行为,不必在设计电路前写出该电路的逻辑表达式或真值表,可使硬件电路的设计难度大幅度下降。
(5)主要设计文件是用HDL语言编写的源程序,不是电路原理图,而传统硬件电路设计最后形成的主要文件是电路原理图。
(6)C语言等程序设计语言是串行的,而HDL是并发的,即具有在同一时刻执行多任务的能力,所以HDL 语言具有并发的特征。
(7)HDL 有时序的概念。一般地说,程序设计语言是没有时序概念的,但在硬件电路中,从输入到输出总是有延时存在。为描述这些特征,HDL 需要建立时序的概念。因此使用HDL 除了可以描述硬件电路的功能外,还可以描述其时序要求。
在实验教学实践中发现,学生只有尽快掌握该课程的特点,才能尽快入门,掌握其实验的设计思路。
2.通过对比强调知识点之间的联系和区别
该课程中有些概念是原先学生从没接触过的,所以学习起来理解不深、概念不清,实验程序也经常有问题,实验效果就不理想。比如其中的功能模块和测试模块,很多同学开始很难理解它们之间的关系,行为描述语句经常混淆。通过对比,强调它们之间的不同概念,实验时才能正确设计。功能模块是最终要实现的,要用寄存器传输级(RTL级)描述语句,而测试模块是用来仿真功能模块的,可以用系统级描述语句。二者既有联系又有区别。若照本宣科、平铺直叙,则学生听完之后印象不深。这样通过对比,强调各知识点之间的区别和联系,可以增强学生对概念的理解,在实验设计时,起到事半功倍的效果。
再例如,信号和变量也是学生最易混淆的问题之一,主要表现在大部分学生无法分清变量与信号的区别。实际上信号与变量在定义上差别不大,使用上有时可以互换,有时却不能。从行为仿真和HDL语句功能上看,信号与变量有着很明显的区别,其差异主要体现为接受和保持的方式以及信息保持和传递的区域大小上。信号的有效域为整个结构体,可以存在于多个进程中,变量的使用范围只能在进程和子程序中使用;变量只能作为局部的信息载体,而信号可以作为模块间的信息载体;在进程中只能将信号列入敏感信号表,而不能将变量列入敏感信号表;信号的赋值只有在进程挂起时才发生代入,而变量的赋值则是立即发生的;从波形仿真的结果可以看出,信号可以形成波形,而变量没有波形,只有当前值。在实际的应用中,更多地使用信号进行电路内部的数据传递,只有在描述一些用信号很难描述的算法时才会用到变量。[6]
在实验教学实践中,笔者经常把学生容易混淆或出错的概念加以比较分析,这样可以增强学生对概念的理解,有助于他们正确地设计出实验程序。
3.优化实验顺序
HDL是实践性很强的课程,从实验形式上分,包括“虚”的仿真、“实”的硬件实现以及“虚实结合”的既有仿真又有硬件实现的完整实验。为了循序渐进,笔者优化了实验顺序,先做仿真实验,然后不加仿真,直接做FPGA实现实验,最后做完整的既有仿真又有硬件实现的实验。
另外,将HDL的实验内容分为三个层次,在教学内容上不断递进。基础型实验是课程入门的实验,通过实验帮助学生理解一些抽象的概念和行为,掌握单一的知识点;提高型实验要完成一定的综合功能,通过实验,学生逐步将单一知识点联系起来,对整个系统以及系统的构建形成较为深刻的认识,也为下一阶段的综合型实验打下基础;综合型实验则侧重于学生创新能力的培养,实验内容取材于实际的工程应用和科研中的课题。
HDL的基础型实验包括基本I/O 实验、七段数码管实验、NIOS II 开发流程实例——LED 显示、三人表决器的设计、四位全加器的设计、触发器设计、计数器设计等;提高型实验包括多功能数字钟的设计、智能交通灯的设计、频率计的设计、基于LPM 核的正弦函数发生器、用FPGA 设计PS2 键盘接口、NIOS II LCD 显示实验等;综合实验型实验包括秒表设计实验、简易存储示波器的设计、RS232串口通讯设计、电子秤的设计、UART IP 核的研究、UC/OS II 的移植等。
该课程对三个层次的实验内容进行了优化,难度由浅入深,部分项目环环相扣,从入门级的基础型实验,到提高型、综合型,循序渐进,学生逐步感受到HDL技术就在自己身边,学习兴趣明显增强。
4.充分调动學生自主实践练习的积极性
现今,大部分学生已习惯于填鸭式学习方式,老师讲什么就听什么,不愿意练习,更不愿意自主实践。因此,笔者改变了照本宣科的灌输式实验教学方法,在关注知识教学设计的同时,注意了学习情境的设计。从创设问题情境出发,激发学生的兴趣和探究激情,引导学生自主探究和体验知识的发生过程,还原原来的科学思维活动,通过师生互动、双向交流的形式,鼓励学生发表独立见解和质疑、批评,培养大学生的创新思维和创新能力,这是改革HDL实验教学设计的一次尝试。
比如笔者设计了“参与、启发和练习”性内容,设计了基本功能模板,鼓励学生在实验室当场改变参数、改变编程,设计成各具特色的模块,有不同意见的同学或老师,可以当场质疑,讨论完毕,再当场进行实验演示。这样很像变戏法,一会模板变成了跑马灯,一会它又变成了计数器、译码器等。学生对设计有了成就感,就有了兴趣,而兴趣是最好的老师,学习的兴趣又和学习的主动性相伴相随,就像是一对孪生姐妹,学生有了兴趣,学习、实践的主动性就会提高。
另外,为了充分调动学生自主实践练习的积极性,笔者会提出一些典型问题让同学回答,比如,实验中你在哪个地方花的时间最多?出了什么问题?最后怎么解决的?然后老师再归纳总结。通过对这些典型问题的回答,不仅可以使同学、老师的经验得到交流,互通有无,而且可以让真正花精力做实验的同学有机会描述自己从失败到成功的过程,可以增强他的成就感,同时也会督促那些不认真做实验的同学,下次一定要主动实践、积极参与。通过对这些问题的问答,可提高学生自主学习、实践的积极性。
三、结语
HDL是一门“虚实结合”的课程,实践性非常强,笔者对其实验教学进行了改革。实践证明,通过帮助学生尽快认识该课程的特点,掌握其学习思路,可使学生尽快步入HDL的编程大门;通过对比强调知识点之间的联系和区别,可增强学生对概念的理解,从而使其正确编程;通过优化实验顺序,即采用先“虚”后“实”、三个层次递进的顺序,可使学生对HDL的掌握逐层递进,逐渐深入,最终达到融会贯通,也使学生的实践能力得到较大的提升,对专业建设、学生就业起到强有力的推动作用。
通过对这些典型问题的回答,提高了同学自主学习、实践的积极性。通过鼓励学生当场自主设计功能模块,并进行讨论、演示,将实验教学活动从一种认知过程发展成为一种师生、生生之间的交往过程,教师从单一的知识传授者、解惑者变为知识促进者、引导者,学生从单一的知识接收者、复制者变为知识发现者、创造者,学生自主学习、自主实践的积极性得到了提高。
参考文献:
[1]刘经南.实验室的作用渗透在大学功能里[J].实验室研究与探索,2004,23(6):1-4.
[2]熊国海,黄南山,向学军.VHDL语言在数字电路教学中的探讨[J].电气电子教学学报,2002,24(2):50-52,113.
[3]刘曦,皇晓辉.EDA 中的数字系统实验[J].实验技术与管理,2004,21(5):89-93.
[4]罗杰,康华光.两种硬件描述语言VHDL/Verilog 的发展及其应用[J].电气电子教学学报,2002,24(4):1-5.
[5]卢庆利.将VHDL 硬件描述语言引入数字电路教学的探索[J].实验室研究与探索,2000,(5):67-70.
[6]杨丹,张树林.VHDL中信号与变量的教学体会[J].电气电子教学学报,2006,28(3):30-32,35.
(责任编辑:沈清)
关键词:HDL;教学改革;实践能力
作者简介:齐本胜(1969-),男,湖北枣阳人,河海大学计算机与信息学院,副教授;苗红霞(1968-),女,河北邯郸人,河海大学计算机与信息学院,讲师。(江苏 常州 213022)
基金项目:本文系2010年教育部电子科学与技术专业教学指导分委员会合作项目(项目编号:C0914)的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2011)04-0128-02
高校实验室的作用渗透在大学人才培养、科学研究和社会服务的三大功能里面,[1]因而,各高等院校对各类课程的实验教学环节都非常重视,并积极地推进各类实验课程的改革。各高等院校对各类课程的实验教学环节都非常重视,并积极地推进各类课程的实验改革。
HDL(Hardware Description Language,即硬件描述语言)是应电子信息行业的社会需求而逐渐兴起的是一门专业基础课,让学生们在学校里掌握HDL语言设计的基本技能,是提高他们硬件设计能力所必需的,可为其毕业后从事现代数字电路设计工作打下坚实的基础。
采用HDL语言设计电子系统是当今的趋势,这不仅是提高设计效率的需要,更是我国电子工业在世界市场上生存、竞争与发展的需要。作为河海大学(以下简称“我校”)的一门弱电类核心课程,HDL課程名称为“HDL及系统设计”(2学分)和“HDL课程设计”(1学分),我校对自动化、电子科学与技术、电子信息和通信专业的学生都开设该课程,即每个年级都有约400名学生选修该课程。该课程的特点是实践性非常强,因此,对该课程进行实验教学改革,对培养学生的设计能力、新技术开发能力、创新意识和创新精神,进而使学生以后能更好地服务社会具有重要意义。[2]
一、HDL课程实验教学现状
该课程是大二或大三学生在学过数字电路和C语言之后所学的一门课程。在HDL课程实验教学过程中发现,大多数学生总觉得该课程难学,不易入门,实验的程序设计无从下手。主要表现在以下几点。
(1)学生很难在“思维”上尽快入门,HDL是用软件实现硬件的工具,但学生经常沿用C语言的思维,所以,学生在设计实验方案时,不能尽快接受HDL的设计思维方式。
(2)该课程的实践内容较多,学生若没有掌握各知识点之间的联系,不熟悉开发流程,就很难有设计思路,事倍功半。
(3)现有的教学和实践的手段单一,传统的填鸭式实验教学对于没有工程实践经验的学生来说吸引力不够,教学和实践的效果不太好。
二、实验教学改革的实施
1.帮助学生尽快掌握该课程的特点和学习思路
数字电路是硬件,采用并行处理方式,C语言是软件,采用串行处理方式。HDL采用“软硬结合”思路,其语法虽然和C语言相近,但它是用软件实现硬件的工具,学生刚接触该课程时,经常会沿用C语言串行处理的思维,不能尽快掌握该课程的特点和设计思路。HDL语言是一种电路硬件描述语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计,具有自己的特点,学生只有充分掌握了这些特点,才能有学习思路,从而准确地设计实验方案。HDL 硬件描述语言与传统数字系统设计方法是完全不同的,具有以下几个特点。[3-5]
(1)与传统的自下而上的设计方法不同,HDL采用自上而下的设计方法。
(2)采用FPGA芯片,根据电路的实际需要,用HDL设计出的系统电路更趋合理,体积更小。HDL 支持数字电路的设计、验证、综合和测试,可以在行为域和结构域对数字系统建模,支持这两个域的所有描述层次。
(3)早期仿真。对系统设计进行三级仿真,在系统设计的早期就能及时发现并解决问题,与传统的后期仿真相比,大大缩短了系统的设计周期。
(4)降低硬件电路设计难度。HDL既是包含一些高级程序设计语言的结构形式,又是兼顾描述硬件电路连接的具体构件。用HDL语言设计硬件电路,只需用语言编写出硬件电路的功能和行为,不必在设计电路前写出该电路的逻辑表达式或真值表,可使硬件电路的设计难度大幅度下降。
(5)主要设计文件是用HDL语言编写的源程序,不是电路原理图,而传统硬件电路设计最后形成的主要文件是电路原理图。
(6)C语言等程序设计语言是串行的,而HDL是并发的,即具有在同一时刻执行多任务的能力,所以HDL 语言具有并发的特征。
(7)HDL 有时序的概念。一般地说,程序设计语言是没有时序概念的,但在硬件电路中,从输入到输出总是有延时存在。为描述这些特征,HDL 需要建立时序的概念。因此使用HDL 除了可以描述硬件电路的功能外,还可以描述其时序要求。
在实验教学实践中发现,学生只有尽快掌握该课程的特点,才能尽快入门,掌握其实验的设计思路。
2.通过对比强调知识点之间的联系和区别
该课程中有些概念是原先学生从没接触过的,所以学习起来理解不深、概念不清,实验程序也经常有问题,实验效果就不理想。比如其中的功能模块和测试模块,很多同学开始很难理解它们之间的关系,行为描述语句经常混淆。通过对比,强调它们之间的不同概念,实验时才能正确设计。功能模块是最终要实现的,要用寄存器传输级(RTL级)描述语句,而测试模块是用来仿真功能模块的,可以用系统级描述语句。二者既有联系又有区别。若照本宣科、平铺直叙,则学生听完之后印象不深。这样通过对比,强调各知识点之间的区别和联系,可以增强学生对概念的理解,在实验设计时,起到事半功倍的效果。
再例如,信号和变量也是学生最易混淆的问题之一,主要表现在大部分学生无法分清变量与信号的区别。实际上信号与变量在定义上差别不大,使用上有时可以互换,有时却不能。从行为仿真和HDL语句功能上看,信号与变量有着很明显的区别,其差异主要体现为接受和保持的方式以及信息保持和传递的区域大小上。信号的有效域为整个结构体,可以存在于多个进程中,变量的使用范围只能在进程和子程序中使用;变量只能作为局部的信息载体,而信号可以作为模块间的信息载体;在进程中只能将信号列入敏感信号表,而不能将变量列入敏感信号表;信号的赋值只有在进程挂起时才发生代入,而变量的赋值则是立即发生的;从波形仿真的结果可以看出,信号可以形成波形,而变量没有波形,只有当前值。在实际的应用中,更多地使用信号进行电路内部的数据传递,只有在描述一些用信号很难描述的算法时才会用到变量。[6]
在实验教学实践中,笔者经常把学生容易混淆或出错的概念加以比较分析,这样可以增强学生对概念的理解,有助于他们正确地设计出实验程序。
3.优化实验顺序
HDL是实践性很强的课程,从实验形式上分,包括“虚”的仿真、“实”的硬件实现以及“虚实结合”的既有仿真又有硬件实现的完整实验。为了循序渐进,笔者优化了实验顺序,先做仿真实验,然后不加仿真,直接做FPGA实现实验,最后做完整的既有仿真又有硬件实现的实验。
另外,将HDL的实验内容分为三个层次,在教学内容上不断递进。基础型实验是课程入门的实验,通过实验帮助学生理解一些抽象的概念和行为,掌握单一的知识点;提高型实验要完成一定的综合功能,通过实验,学生逐步将单一知识点联系起来,对整个系统以及系统的构建形成较为深刻的认识,也为下一阶段的综合型实验打下基础;综合型实验则侧重于学生创新能力的培养,实验内容取材于实际的工程应用和科研中的课题。
HDL的基础型实验包括基本I/O 实验、七段数码管实验、NIOS II 开发流程实例——LED 显示、三人表决器的设计、四位全加器的设计、触发器设计、计数器设计等;提高型实验包括多功能数字钟的设计、智能交通灯的设计、频率计的设计、基于LPM 核的正弦函数发生器、用FPGA 设计PS2 键盘接口、NIOS II LCD 显示实验等;综合实验型实验包括秒表设计实验、简易存储示波器的设计、RS232串口通讯设计、电子秤的设计、UART IP 核的研究、UC/OS II 的移植等。
该课程对三个层次的实验内容进行了优化,难度由浅入深,部分项目环环相扣,从入门级的基础型实验,到提高型、综合型,循序渐进,学生逐步感受到HDL技术就在自己身边,学习兴趣明显增强。
4.充分调动學生自主实践练习的积极性
现今,大部分学生已习惯于填鸭式学习方式,老师讲什么就听什么,不愿意练习,更不愿意自主实践。因此,笔者改变了照本宣科的灌输式实验教学方法,在关注知识教学设计的同时,注意了学习情境的设计。从创设问题情境出发,激发学生的兴趣和探究激情,引导学生自主探究和体验知识的发生过程,还原原来的科学思维活动,通过师生互动、双向交流的形式,鼓励学生发表独立见解和质疑、批评,培养大学生的创新思维和创新能力,这是改革HDL实验教学设计的一次尝试。
比如笔者设计了“参与、启发和练习”性内容,设计了基本功能模板,鼓励学生在实验室当场改变参数、改变编程,设计成各具特色的模块,有不同意见的同学或老师,可以当场质疑,讨论完毕,再当场进行实验演示。这样很像变戏法,一会模板变成了跑马灯,一会它又变成了计数器、译码器等。学生对设计有了成就感,就有了兴趣,而兴趣是最好的老师,学习的兴趣又和学习的主动性相伴相随,就像是一对孪生姐妹,学生有了兴趣,学习、实践的主动性就会提高。
另外,为了充分调动学生自主实践练习的积极性,笔者会提出一些典型问题让同学回答,比如,实验中你在哪个地方花的时间最多?出了什么问题?最后怎么解决的?然后老师再归纳总结。通过对这些典型问题的回答,不仅可以使同学、老师的经验得到交流,互通有无,而且可以让真正花精力做实验的同学有机会描述自己从失败到成功的过程,可以增强他的成就感,同时也会督促那些不认真做实验的同学,下次一定要主动实践、积极参与。通过对这些问题的问答,可提高学生自主学习、实践的积极性。
三、结语
HDL是一门“虚实结合”的课程,实践性非常强,笔者对其实验教学进行了改革。实践证明,通过帮助学生尽快认识该课程的特点,掌握其学习思路,可使学生尽快步入HDL的编程大门;通过对比强调知识点之间的联系和区别,可增强学生对概念的理解,从而使其正确编程;通过优化实验顺序,即采用先“虚”后“实”、三个层次递进的顺序,可使学生对HDL的掌握逐层递进,逐渐深入,最终达到融会贯通,也使学生的实践能力得到较大的提升,对专业建设、学生就业起到强有力的推动作用。
通过对这些典型问题的回答,提高了同学自主学习、实践的积极性。通过鼓励学生当场自主设计功能模块,并进行讨论、演示,将实验教学活动从一种认知过程发展成为一种师生、生生之间的交往过程,教师从单一的知识传授者、解惑者变为知识促进者、引导者,学生从单一的知识接收者、复制者变为知识发现者、创造者,学生自主学习、自主实践的积极性得到了提高。
参考文献:
[1]刘经南.实验室的作用渗透在大学功能里[J].实验室研究与探索,2004,23(6):1-4.
[2]熊国海,黄南山,向学军.VHDL语言在数字电路教学中的探讨[J].电气电子教学学报,2002,24(2):50-52,113.
[3]刘曦,皇晓辉.EDA 中的数字系统实验[J].实验技术与管理,2004,21(5):89-93.
[4]罗杰,康华光.两种硬件描述语言VHDL/Verilog 的发展及其应用[J].电气电子教学学报,2002,24(4):1-5.
[5]卢庆利.将VHDL 硬件描述语言引入数字电路教学的探索[J].实验室研究与探索,2000,(5):67-70.
[6]杨丹,张树林.VHDL中信号与变量的教学体会[J].电气电子教学学报,2006,28(3):30-32,35.
(责任编辑:沈清)