论文部分内容阅读
摘要:分析了数字电路教学存在的不足,针对数字电路学习和设计中的问题,将多种流行的EDA工具集成起来,构建了集成化、网络化的虚拟实验教学平台,融入多门课程教学内容,阐述了EDA技术在平台中的应用,介绍了虚拟实验仿真教学的理论、方法和实现过程,描述了虚拟实验平台的组成结构、教学内容组织、软件系统设计和实现方法,给出了数字电路教学的应用案例。
关键词:EDA;FPGA;虚拟实验;仿真平台
作者简介:向明尚(1966-),男,黑龙江大庆人,东北石油大学软件学院,高级实验师;王金成(1969-),男,黑龙江大庆人,东北石油大学软件学院,经济师。(黑龙江 大庆 163318)
中图分类号:G642.423 文献标识码:A 文章编号:1007-0079(2011)07-0123-02
数字电路在计算机专业教学和计算机应用领域占有非常重要的地位,而数字电路的学习由于受到实验设备、实验材料、技术手段、应用环境的制约,往往收不到良好的学习效果。由于新技术、新产品不断更新,对现有的教学理念、教学资源、教学手段提出了更高的要求,现有的实验环境和资源已无法满足教学需要,面临着更新换代的压力。而更新设备需要大量的资金投入,对于办学经费本已经很紧张的高校来说,矛盾尤其突出。这种状况已经影响到了教学工作的顺利进行。因此,虚拟实验室的概念应运而生,通过虚拟实验来改善教育教学环境,提高教学质量。虚拟实验教学环境是指开展虚拟实验教学所需的环境,包括硬件和软件环境两部分。[1] EDA(Electronic Design Automation,电子设计自动化)工具在数字电路的设计中也得到了广泛应用。EDA是以计算机大规模可编程器件的开发软件及实验开发系统为设计工具,通过开发软件,自动完成用软件的方式设计的电子系统到硬件系统的实现。[2]本文在此基础上做了数字电路虚拟实验教学方法的改革与探讨,提出了集成化、网络化解决方案,把虚拟实验室理论和EDA工具结合起来,引入EDA仿真技术,即时地以图形、数字或曲线的形式来显示理论课程中难以用语言、文字表达或难以理解的现象极复杂的变化过程。[3]将数字电路教学中涉及到的课程、理论、技术集成起来,构成一个内容丰富、技术先进,理论、实验、仿真相结合的数字电路虚拟实验教学仿真平台,丰富了教学手段。
一、教学中存在的不足
目前,许多高校数字电路教学还采用下列教学方法,但往往因受到制约而收不到良好的教学效果。
1.手工操作法
根据实验内容和要求,设计实验电路;以简单的实验板为载体,以简单门电路、电子元件、导线、开关、LED为主,搭建实验电路;通过开关的不同组合,人为地给电路提供输入信号,观察LED亮、灭的状态,判断电路设计正确与否。由于电子元件和门电路等实验材料的种类和数量有限,实验方案的设计往往受到限制;有效的实验方案,也只能通过现有的材料来实现。简单的实验方案由于涉及到的材料较少,实现起来较为方便。对于复杂的实验方案,涉及到的电子元件、门电路、导线等数量众多,在实验板上手工进行元件布局、导线连接比较困难并且容易出错,导致实验的返工或失败,从而影响到教学实验的顺利进行,无法保证教学质量。
2.半自动操作法
采用专用实验仪器,如数字逻辑、计算机原理等的专用实验仪器。优点在于大部分的基础电路已经事先设计好了,学生做实验时可根据仪器提供的电路、材料、实验方案来完成教学内容的验证实验。由学生自己搭建的线路较少,减少了出错的机会,可以保证实验的顺利进行。正是由于大部分电路已经设计好了,同时仪器提供的实验电路有限,从而使得实验内容、方案、电路的设计受到极大制约,对于复杂的、大规模的实验电路无法实现,尤其是一些创新性、开放性的实验无法完成。
3.自动操作法
采用专用的FPGA(Field-Programmable Gate Array,现场可编程门阵列)实验板,如Altera 的DE0、DE2等。由于FPGA的可编程特性,通过软件设计实验方案、实验电路,并对电路进行功能仿真、时序仿真,验证通过后,根据FPGA的具体型号,手工分配引脚,确定输入、输出逻辑关系,将电路的编程文件下载到实验板,通过实验板上的开关提供输入信号,通过LED、LCD的输出状态来验证电路设计的正确性。由于FPGA的型号不同,内部的逻辑单元的种类、数量不同,同时实验板上的开关、LED、LCD等资源有限,使实验方案的设计、电路的设计也受到限制,只能满足基本的教学需要。无法满足对大型的、复杂的、综合性的数字电路系统设计和实验要求。
以上方法都存在共同的不足之处,即实验设备、材料、资源有限。随着技术的不断发展,教学理论、实验内容的不断更新,现有设备面临着落后、被淘汰的局面,无法满足教学要求,会极大地影响教学工作。
二、虚拟实验室的建立
本文针对以上情况,提出虚拟实验教学方法,建立虚拟实验室,引入EDA仿真工具,开展虚拟和仿真实验教学理论、方法的研究与探讨,目的在于解决资源不足、技术落后的问题,可以有效地保证教学的顺利进行。
数字电路虚拟实验室由一个学习网站和相关的学习系统模块组成。网站提供一个具有用户管理、教学资源和案例组织、学习环境建立、仿真实验等功能的平台。其中的系统模块由以下几部分组成。
1.EDA学习
平台中集成了Quartus Ⅱ、ModelSim、MATLAB、DSP Builder、SOPC Builder、Nios Ⅱ IDE等优秀的EDA仿真工具,为数字电路理论学习、实验方案设计、数字电路设计、电路的功能和时序验证提供了良好的学习和实验的仿真环境。通过对这些工具的学习,可以提高学生数字电路设计和学习能力。
2.语言学习
数字电路的设计,除了采用原理图的形式进行描述以外,更多的是采用HDL硬件描述语言进行设计,尤其是复杂的数字电路。平台中提供了VHDL和Verilog HDL等硬件描述语言的学习环境,建立了大量的语言学习案例,给出了仿真结果,以方便学生的学习。
3.基本门电路学习
以数字电路中的基本门电路如与、或、非、与非、或非、异或、同或等为基础,为学生提供数字电路学习和设计的基本知识、基本原理和简单电路的设计方法,使其掌握数字电路的实验、仿真、验证方法,为数字电路的学习打下坚实的基础。
4.组合电路学习
以数字电路中的触发器、译码器、锁存器、寄存器、计数器、选择器、分配器、比较器、算术逻辑单元等中规模电路为基础,培养学生分析、设计、实现中规模集成电路的能力,加深对数字电路理论的理解,为设计复杂的数字电路打好基础。
5.同步时序电路学习
同步时序电路由组合逻辑和触发器构成,引入时钟、时序的概念,以同步时序电路的基本结构为基础,介绍基本的设计步骤,如状态图、状态表、状态分配和化简、触发器的选择、输出状态的确定、输出函数的推导等。由简到繁逐步学习同步时序电路的设计,由EDA工具对设计进行时序仿真,验证时序电路设计的正确性。本模块提供了寄存器、计数器、分频器、脉冲发生器、脉冲检测器、码组变换器等多种时序电路的学习。
6.异步时序电路学习
异步时序电路分为脉冲异步和电位异步时序电路,其设计复杂而应用远不及同步时序电路,在此只给出部分典型应用案例,为异步电路的学习提供设计参考。
7.数字系统设计学习
提供完整的数字系统设计案例,如交通灯控制系统,求最值系统,数据采集系统、键盘、鼠标驱动系统,显示驱动、控制系统,摄像监控系统,简单的工业各控制系统,等。给出数字系统的设计方法、技术、技巧,有助于学生对数字系统设计的理解和设计方法的掌握,培养学生对综合数字系统的设计能力。
8.DSP、SOPC系统设计学习
提供数字信号处理(DSP)和片上系统(SOC)设计的理论学习、方案设计、仿真案例、实现方法、下载验证。建立了开放性、创新性的教学案例,给出了创新性的仿真试验方法和理论,有助于培养学生的创新能力。
三、教学案例的组织
虚拟实验室的建立能否成功,主要取决于教学资源的组织、新技术的应用、教学内容的安排、案例的构建。其中案例的构建至关重要,在满足教学内容、教学大纲要求的同时,既要考虑到新的理论、技术的发展,又要考虑到学生理论水平和接受能力,以多种形式组织教学案例,提高学习兴趣,收到良好的教学效果。
数字电路的设计有自己的特点,信息的描述以文字、图、表为主,看起来有些枯燥乏味。所以平台中采用EDA工具,以彩色图画的形式显示文字、图、表,引入层次化的原理图设计,采用多种描述语言,以逻辑函数表达式、真值表、原理图、语言文档、功能仿真图、时序仿真图等[4]多种形来构建教学案例,形式新颖、生动有趣、寓教于乐,有助于提高学习兴趣,保证教学任务的顺利完成和教学质量的提高。
四、虚拟仿真实验的实现过程
虚拟实验室的实现包括网站建设和学习系统的设计。在此重点介绍学习系统的设计。系统中采用流行的EDA工具Quartus、ModelSim等构成虚拟实验环境,以虚拟的FPGA为载体,进行实验方案和实验电路的设计、仿真、验证。采用EDA设计电路,修改、调试、验证方便快捷,作为数字电路设计、实验仿真验证的学习工具有着明显的优点。[5]Quartus和ModelSim是优秀的数字电路仿真软件,是基于FPGA进行电路设计的首选,在平台中需要集成和配置才能取得最优的效果,包括软件的安装、环境变量的设置、系统参数和返回信息的处理等。
数字电路设计的学习过程包括:逻辑功能的分析与确定、生成描述逻辑功能的逻辑函数并化简、原理图设计及优化、门电路选型、建立最优逻辑电路、功能验证、时序验证、形成实际电路,[6]由此虚拟实验的实现过程如下。
1.根据设计方案
确定数字电路设计文档的输入模式:原理图描述、HDL描述、混合描述。
2.启动Quartus工具
建立工程项目并选择FPGA的型号。由于Quartus中提供了各种大量的虚拟FPGA器件,几乎可以满足所有的数字电路系统的设计。充分利用这一资源,可以完全满足虚拟实验室对目标器件的需求。
3.输入电路的设计文档
可以采用原理图输入、HDL语言输入,或两者的混合输入方式。对于复杂的数字电路,可以采用自顶向下或自底向上的层次化设计方法,将电路分成多个相对简单的子模块。子模块电路设计相对容易,设计、验证通过后,组合起来构成完整的电路。
4.编译工程项目
对项目进行全程编译,通过后生成测试激励文件TestBench,修改测试文件加入输入测试信号,将测试文件加到项目中并重新编译。启动功能仿真和时序仿真,自动进入ModelSim仿真环境,观察输出波形文件,验证电路设计的正确性。
5.下载验证
如果有FPGA实验板,可以按照板上的资源,配置FPGA的具体型号,确定输入、输出引脚关系。在Quartus中指定相应的引脚,重新编译生成编程下载文件。文件下载到实验板后,通过改变输入信号、观察输出信号状态的变化,来验证电路设计的正确性。如果没有实验板,通过虚拟实验完全可以满足数字电路学习和设计的需要。
五、测试和结论
整个平台包括网站建设、EDA工具的集成、学习系统的设计。涉及到多种EDA技术的集成,对系统的稳定性、可靠性要求较高。为了达到设计要求进行了专门测试。虚拟实验室的建立,学习系统的设计和实现,丰富教学手段的同时,提供了大量的教学案例,将数字电路中的多门课程集成和优化,可以满足教学要求,通过网络访问平台,达到远程学习目的,可节省实验室空间,方便教学任务的实施,有较高的应用价值。
参考文献:
[1]宋正国,刁秀丽.虚拟实验教学环境研究现状及趋势探悉[J].现代教育技术,2009,(12).
[2]王紫婷.EDA技术与应用[M].兰州:兰州大学出版社,2003.
[3]崔栋,郭永新,车琳琳.EDA仿真技术在模拟电子技术教学的应用[J].中国科技信息,2008,(5).
[4]Ronald J.Tocci,Neal S.Widmer,Gregory L.Moss.Digital System:Principles and Applications[M].Prentice Hall,2007.
[5]Introduction to Quartus Ⅱ[M].Altera Corporation,2004.
[6]Stephen Brown,Zvonko Vranesic.Fundamentals of Digital Logic with VHDL Design[M].McGraw-Hill Higher Education,2005.
(责任编辑:苏宇嵬)
关键词:EDA;FPGA;虚拟实验;仿真平台
作者简介:向明尚(1966-),男,黑龙江大庆人,东北石油大学软件学院,高级实验师;王金成(1969-),男,黑龙江大庆人,东北石油大学软件学院,经济师。(黑龙江 大庆 163318)
中图分类号:G642.423 文献标识码:A 文章编号:1007-0079(2011)07-0123-02
数字电路在计算机专业教学和计算机应用领域占有非常重要的地位,而数字电路的学习由于受到实验设备、实验材料、技术手段、应用环境的制约,往往收不到良好的学习效果。由于新技术、新产品不断更新,对现有的教学理念、教学资源、教学手段提出了更高的要求,现有的实验环境和资源已无法满足教学需要,面临着更新换代的压力。而更新设备需要大量的资金投入,对于办学经费本已经很紧张的高校来说,矛盾尤其突出。这种状况已经影响到了教学工作的顺利进行。因此,虚拟实验室的概念应运而生,通过虚拟实验来改善教育教学环境,提高教学质量。虚拟实验教学环境是指开展虚拟实验教学所需的环境,包括硬件和软件环境两部分。[1] EDA(Electronic Design Automation,电子设计自动化)工具在数字电路的设计中也得到了广泛应用。EDA是以计算机大规模可编程器件的开发软件及实验开发系统为设计工具,通过开发软件,自动完成用软件的方式设计的电子系统到硬件系统的实现。[2]本文在此基础上做了数字电路虚拟实验教学方法的改革与探讨,提出了集成化、网络化解决方案,把虚拟实验室理论和EDA工具结合起来,引入EDA仿真技术,即时地以图形、数字或曲线的形式来显示理论课程中难以用语言、文字表达或难以理解的现象极复杂的变化过程。[3]将数字电路教学中涉及到的课程、理论、技术集成起来,构成一个内容丰富、技术先进,理论、实验、仿真相结合的数字电路虚拟实验教学仿真平台,丰富了教学手段。
一、教学中存在的不足
目前,许多高校数字电路教学还采用下列教学方法,但往往因受到制约而收不到良好的教学效果。
1.手工操作法
根据实验内容和要求,设计实验电路;以简单的实验板为载体,以简单门电路、电子元件、导线、开关、LED为主,搭建实验电路;通过开关的不同组合,人为地给电路提供输入信号,观察LED亮、灭的状态,判断电路设计正确与否。由于电子元件和门电路等实验材料的种类和数量有限,实验方案的设计往往受到限制;有效的实验方案,也只能通过现有的材料来实现。简单的实验方案由于涉及到的材料较少,实现起来较为方便。对于复杂的实验方案,涉及到的电子元件、门电路、导线等数量众多,在实验板上手工进行元件布局、导线连接比较困难并且容易出错,导致实验的返工或失败,从而影响到教学实验的顺利进行,无法保证教学质量。
2.半自动操作法
采用专用实验仪器,如数字逻辑、计算机原理等的专用实验仪器。优点在于大部分的基础电路已经事先设计好了,学生做实验时可根据仪器提供的电路、材料、实验方案来完成教学内容的验证实验。由学生自己搭建的线路较少,减少了出错的机会,可以保证实验的顺利进行。正是由于大部分电路已经设计好了,同时仪器提供的实验电路有限,从而使得实验内容、方案、电路的设计受到极大制约,对于复杂的、大规模的实验电路无法实现,尤其是一些创新性、开放性的实验无法完成。
3.自动操作法
采用专用的FPGA(Field-Programmable Gate Array,现场可编程门阵列)实验板,如Altera 的DE0、DE2等。由于FPGA的可编程特性,通过软件设计实验方案、实验电路,并对电路进行功能仿真、时序仿真,验证通过后,根据FPGA的具体型号,手工分配引脚,确定输入、输出逻辑关系,将电路的编程文件下载到实验板,通过实验板上的开关提供输入信号,通过LED、LCD的输出状态来验证电路设计的正确性。由于FPGA的型号不同,内部的逻辑单元的种类、数量不同,同时实验板上的开关、LED、LCD等资源有限,使实验方案的设计、电路的设计也受到限制,只能满足基本的教学需要。无法满足对大型的、复杂的、综合性的数字电路系统设计和实验要求。
以上方法都存在共同的不足之处,即实验设备、材料、资源有限。随着技术的不断发展,教学理论、实验内容的不断更新,现有设备面临着落后、被淘汰的局面,无法满足教学要求,会极大地影响教学工作。
二、虚拟实验室的建立
本文针对以上情况,提出虚拟实验教学方法,建立虚拟实验室,引入EDA仿真工具,开展虚拟和仿真实验教学理论、方法的研究与探讨,目的在于解决资源不足、技术落后的问题,可以有效地保证教学的顺利进行。
数字电路虚拟实验室由一个学习网站和相关的学习系统模块组成。网站提供一个具有用户管理、教学资源和案例组织、学习环境建立、仿真实验等功能的平台。其中的系统模块由以下几部分组成。
1.EDA学习
平台中集成了Quartus Ⅱ、ModelSim、MATLAB、DSP Builder、SOPC Builder、Nios Ⅱ IDE等优秀的EDA仿真工具,为数字电路理论学习、实验方案设计、数字电路设计、电路的功能和时序验证提供了良好的学习和实验的仿真环境。通过对这些工具的学习,可以提高学生数字电路设计和学习能力。
2.语言学习
数字电路的设计,除了采用原理图的形式进行描述以外,更多的是采用HDL硬件描述语言进行设计,尤其是复杂的数字电路。平台中提供了VHDL和Verilog HDL等硬件描述语言的学习环境,建立了大量的语言学习案例,给出了仿真结果,以方便学生的学习。
3.基本门电路学习
以数字电路中的基本门电路如与、或、非、与非、或非、异或、同或等为基础,为学生提供数字电路学习和设计的基本知识、基本原理和简单电路的设计方法,使其掌握数字电路的实验、仿真、验证方法,为数字电路的学习打下坚实的基础。
4.组合电路学习
以数字电路中的触发器、译码器、锁存器、寄存器、计数器、选择器、分配器、比较器、算术逻辑单元等中规模电路为基础,培养学生分析、设计、实现中规模集成电路的能力,加深对数字电路理论的理解,为设计复杂的数字电路打好基础。
5.同步时序电路学习
同步时序电路由组合逻辑和触发器构成,引入时钟、时序的概念,以同步时序电路的基本结构为基础,介绍基本的设计步骤,如状态图、状态表、状态分配和化简、触发器的选择、输出状态的确定、输出函数的推导等。由简到繁逐步学习同步时序电路的设计,由EDA工具对设计进行时序仿真,验证时序电路设计的正确性。本模块提供了寄存器、计数器、分频器、脉冲发生器、脉冲检测器、码组变换器等多种时序电路的学习。
6.异步时序电路学习
异步时序电路分为脉冲异步和电位异步时序电路,其设计复杂而应用远不及同步时序电路,在此只给出部分典型应用案例,为异步电路的学习提供设计参考。
7.数字系统设计学习
提供完整的数字系统设计案例,如交通灯控制系统,求最值系统,数据采集系统、键盘、鼠标驱动系统,显示驱动、控制系统,摄像监控系统,简单的工业各控制系统,等。给出数字系统的设计方法、技术、技巧,有助于学生对数字系统设计的理解和设计方法的掌握,培养学生对综合数字系统的设计能力。
8.DSP、SOPC系统设计学习
提供数字信号处理(DSP)和片上系统(SOC)设计的理论学习、方案设计、仿真案例、实现方法、下载验证。建立了开放性、创新性的教学案例,给出了创新性的仿真试验方法和理论,有助于培养学生的创新能力。
三、教学案例的组织
虚拟实验室的建立能否成功,主要取决于教学资源的组织、新技术的应用、教学内容的安排、案例的构建。其中案例的构建至关重要,在满足教学内容、教学大纲要求的同时,既要考虑到新的理论、技术的发展,又要考虑到学生理论水平和接受能力,以多种形式组织教学案例,提高学习兴趣,收到良好的教学效果。
数字电路的设计有自己的特点,信息的描述以文字、图、表为主,看起来有些枯燥乏味。所以平台中采用EDA工具,以彩色图画的形式显示文字、图、表,引入层次化的原理图设计,采用多种描述语言,以逻辑函数表达式、真值表、原理图、语言文档、功能仿真图、时序仿真图等[4]多种形来构建教学案例,形式新颖、生动有趣、寓教于乐,有助于提高学习兴趣,保证教学任务的顺利完成和教学质量的提高。
四、虚拟仿真实验的实现过程
虚拟实验室的实现包括网站建设和学习系统的设计。在此重点介绍学习系统的设计。系统中采用流行的EDA工具Quartus、ModelSim等构成虚拟实验环境,以虚拟的FPGA为载体,进行实验方案和实验电路的设计、仿真、验证。采用EDA设计电路,修改、调试、验证方便快捷,作为数字电路设计、实验仿真验证的学习工具有着明显的优点。[5]Quartus和ModelSim是优秀的数字电路仿真软件,是基于FPGA进行电路设计的首选,在平台中需要集成和配置才能取得最优的效果,包括软件的安装、环境变量的设置、系统参数和返回信息的处理等。
数字电路设计的学习过程包括:逻辑功能的分析与确定、生成描述逻辑功能的逻辑函数并化简、原理图设计及优化、门电路选型、建立最优逻辑电路、功能验证、时序验证、形成实际电路,[6]由此虚拟实验的实现过程如下。
1.根据设计方案
确定数字电路设计文档的输入模式:原理图描述、HDL描述、混合描述。
2.启动Quartus工具
建立工程项目并选择FPGA的型号。由于Quartus中提供了各种大量的虚拟FPGA器件,几乎可以满足所有的数字电路系统的设计。充分利用这一资源,可以完全满足虚拟实验室对目标器件的需求。
3.输入电路的设计文档
可以采用原理图输入、HDL语言输入,或两者的混合输入方式。对于复杂的数字电路,可以采用自顶向下或自底向上的层次化设计方法,将电路分成多个相对简单的子模块。子模块电路设计相对容易,设计、验证通过后,组合起来构成完整的电路。
4.编译工程项目
对项目进行全程编译,通过后生成测试激励文件TestBench,修改测试文件加入输入测试信号,将测试文件加到项目中并重新编译。启动功能仿真和时序仿真,自动进入ModelSim仿真环境,观察输出波形文件,验证电路设计的正确性。
5.下载验证
如果有FPGA实验板,可以按照板上的资源,配置FPGA的具体型号,确定输入、输出引脚关系。在Quartus中指定相应的引脚,重新编译生成编程下载文件。文件下载到实验板后,通过改变输入信号、观察输出信号状态的变化,来验证电路设计的正确性。如果没有实验板,通过虚拟实验完全可以满足数字电路学习和设计的需要。
五、测试和结论
整个平台包括网站建设、EDA工具的集成、学习系统的设计。涉及到多种EDA技术的集成,对系统的稳定性、可靠性要求较高。为了达到设计要求进行了专门测试。虚拟实验室的建立,学习系统的设计和实现,丰富教学手段的同时,提供了大量的教学案例,将数字电路中的多门课程集成和优化,可以满足教学要求,通过网络访问平台,达到远程学习目的,可节省实验室空间,方便教学任务的实施,有较高的应用价值。
参考文献:
[1]宋正国,刁秀丽.虚拟实验教学环境研究现状及趋势探悉[J].现代教育技术,2009,(12).
[2]王紫婷.EDA技术与应用[M].兰州:兰州大学出版社,2003.
[3]崔栋,郭永新,车琳琳.EDA仿真技术在模拟电子技术教学的应用[J].中国科技信息,2008,(5).
[4]Ronald J.Tocci,Neal S.Widmer,Gregory L.Moss.Digital System:Principles and Applications[M].Prentice Hall,2007.
[5]Introduction to Quartus Ⅱ[M].Altera Corporation,2004.
[6]Stephen Brown,Zvonko Vranesic.Fundamentals of Digital Logic with VHDL Design[M].McGraw-Hill Higher Education,2005.
(责任编辑:苏宇嵬)