APP下载

基于FPGA的数字逻辑新型实验方法研究

2012-10-14徐尚中

赤峰学院学报·自然科学版 2012年17期
关键词:计数器实验设计逻辑

徐尚中,李 靖

(周口师范学院 计算机科学与技术学院,河南 周口 466001)

基于FPGA的数字逻辑新型实验方法研究

徐尚中,李 靖

(周口师范学院 计算机科学与技术学院,河南 周口 466001)

针对《数字逻辑》实验教学目前存在的问题,对《数字逻辑》课程的实验方法进行了分析和探讨,提出了一种基于FPGA的新型实验方法.该方法不仅具有很大的灵活性与可重构性,而且能提高实验的准确性和成功率,具有很大的发展空间.

实验方法;FPGA;数字逻辑

1 引言

《数字逻辑》是计算机、自动化和电子工程等专业的专业基础课程之一,具有很强的工程实践性,是深入了解计算机内核的一门最关键的基础课程.作为课堂所授理论知识的必要的补充,《数字逻辑》课程实验是学生获得所学知识和进行能力训练的重要途径,对学生能否真正掌握所学的课程内容以及能否灵活运用所学知识去解决实际问题起着决定性的作用.

2 《数字逻辑》课程实验的现状分析

目前,在地方师范院校《数字逻辑》实验课程的开设主要有两种情况:一是部分高校虽然开设了《数字逻辑》课程,但由于种种原因并不开设相应的实验课程,即纯粹的理论讲解;二是绝大部分高校开设了《数字逻辑》实验课程,但实验设施和实验方法相对落后,实验效果不佳.在具体的实验方法上,也有两种情况:

2.1 基于硬件的传统实验方法

当前许多高校在进行《数字逻辑》实验教学时,还是沿用传统的实验箱来实现组合逻辑实验和时序逻辑实验.传统的实验方法都是在集成电路等各组成部件相对固定的情况下进行的,如基本的组合逻辑器件:与、或、非门、编码器、译码器、触发器、寄存器、计数器等,通过连线,学生用这些器件可以完成一些基本的功能性验证或简单的设计性实验.其优点是:通过这些看得见摸得着的实物仪器装置,学生可以较容易的获得感性认识,从而将抽象的理论变成直观的现实,这种传统实验室为学生提供了真实的实验环境,使学生身临其境,理论上来讲教学效果应当非常好.但是这种实验方法局限性很大.首先,学生的设计很难突破实验箱的限制,难以实现一些综合性、设计性实验.其次,在传统实验室中,由于实验设备较为复杂,实验环境等客观因素对实验有很大的影响,其中有些问题是由学生操作不当引起的,有些问题可能是当时的设备状态出了问题,如不能及时检查纠正,过后就很难确定问题出现的原因,这样往往使学生无法找到问题的本质,严重影响学生对实验的理解.另外,有些实验需要学生插接的连线可能比较多,在实验过程中,只要有一个连线或元器件出现接触不良现象就会影响到整个实验的完成情况,实验的成功率很低,也会影响到学生的学习兴趣.所以,学生尽管花了许多的时间去做实验,却收获甚微.

2.2 基于软件的虚拟实验方法

另一种常用的方法是采用所谓的“虚拟实验室[1]”,如 EWB、Multisim、QuartusⅡ等都是专门用于电子电路仿真的“虚拟电子工作平台”,它以软件为基础,软件即为仪器,以计算机为操作平台,采用一定的数学模型和仿真算法,在输入即将实验的电路模型及元器件参数后,软件会依据元器件的特性对电路模型进行仿真,虚拟仪器、仪表可将电路测试点的波形和数据显示出来,能方便地应用在实验教学中,有效地降低实验成本,提高实验效率.同时,“虚拟实验室”提供了传统实验室无法相比的大量的虚拟元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,使得学生在实验中能够打破传统实验方法的束缚,自主的从事一些综合性、创新性的实验设计,大大提高学生的学习兴趣[2,3].虚拟实验室有效的弥补了传统实验室存在的不足,在教育领域得到了越来越广泛的应用.目前,国内许多高校都根据自身需求建立了虚拟实验室,取得了很好的教学效果.但是虚拟实验方法也有其自身的缺点.首先,虚拟实验方法采用虚拟环境,虚拟设备与真实的实验设备还有一定的差距,无法使学生掌握对真实元器件进行识别和引脚功能判断的方法,无法掌握实际电路元器件的安装与连接的方法以及真实仪器、仪表的使用方法等.其次,实际电路中各元器件之间及连线之间的相互干扰问题也是虚拟实验设备所无法表达的.因此,这种实验方法不能培养学生在元器件识别、电路连接,电路调试、仪器操作等方面的实践动手能力[4].

通过对传统实验方法和虚拟实验方法进行比较,可以看出,二者各有优缺点,只有将二者结合起来,才能为学习者营造一个不受时间、地点、实验设备约束的实验环境,使学生既可以感受到逼真的实验过程,提高实验数据的准确性,又能节约学校专用实验室的投入,提高实验的成功率.

3 基于VHDL的新型实验方法

EDA技术的快速发展使数字系统的设计发生了革命性的变化[5],将这一技术运用到《数字逻辑》实验中,即可构建出基于计算机平台“虚实结合”的《数字逻辑》实验系统.

3.1 基于VHDL的新型实验的设计流程

具体来讲,基于EDA技术的《数字逻辑》实验系统就是选用高性能的FPGA芯片作为硬件平台,采用VHDL语言在QuartusⅡ环境中设计实验电路模型并进行仿真[6,7],即首先运用虚拟实验的方法在计算机软件平台上设计出实验电路模型和进行初步的软件仿真,确认无误后再将设计好的相应程序经数据线下载到实验系统中的实验电路板上进行实际验证.学生在实验过程中可以节省出大量的接线时间,把实验的重点放在电路模型的设计、仿真和验证上,从而培养学生的分析设计能力和实践操作能力.其设计流程如图1所示.

图1 FPGA设计器件的一般流程

图1中,设计输入是将设计者所要设计的电路模型以VHDL代码形式或以原理图的形式表达出来.综合是将VHDL语言或原理图等设计输入进行编译、优化、转换和综合,生成门级电路.适配是将逻辑综合生成的网表文件映射到某一具体的器件.仿真验证则是验证设计输入逻辑功能的正确性.器件编程是指设计输入编译成功后,设计者使用器件编程器将程序下载到实际器件的过程.

以带使能端的四位二进制计数器为例,要完成一个计数器实验,首先需要编写计数器VHDL程序来作为实验的设计输入,其核心代码如下:

代码中enable为使能控制端,高电平时有效.cnt为计数变量,每当clk来一个上升沿时且使能端有效时进行一次计数.将计数器VHDL代码所形成的.vhd文件作为QuartusⅡ的设计输入进行编译,检查无误后对计数器进行时序仿真,得到计数器输出波形如图2所示.

图2 QuartusⅡ环境下计数器波形仿真

由图2可知,计数器在软件环境下通过编译、仿真,输出波形完全符合实验设计的要求,说明在虚拟环境下所做的实验设计是完全正确的.下面要做的工作就是绑定FPGA芯片引脚,将程序下载到FPGA芯片中,进行实验的实际验证.由此可以看出,这种实验方法真正做到了实验的虚实结合,它既能提高实验的成功率,又能观察实验的实际运行效果.

3.2 新型实验设计的灵活性与可重构性

与传统的实验方法相比,基于VHDL虚实结合的实验方法的优点还体现在它的灵活性与可重构性上.采用传统的实验方法,一旦所设计的实验出现了问题,设计者必须重新对实验电路检查一遍,实验电路越复杂,连线也会越多,出现的问题也越多.有时辛辛苦苦连了一两个小时候的线,却不到实验结果,有时也会有一些粗心的同学出现烧坏芯片的事情.但是,基于VHDL的新型实验方法却不会有这些现象发生.

3.2.1 新型实验设计的灵活性.

在VHDL语言中,电路模型都是通过程序来编写的.实验电路的正确与否可以在软件环境中进行检测,当出现问题时,只需修改VHDL代码就行了.另外,由于实验系统的硬件平台采用的是可编程的FPGA芯片,掉电后设计好的电路就不复存在了,所以在同一个系统下,可做多次实验、多个实验.编写不同的程序,即可实现不同的功能电路.比如:对带有使能端的四位二进制计数器进行适当的修改,即可变成一个加/减计数器电路.VHDL关键代码如下:

上述代码中加入了一个加/减计数控制端(up_down),为高电平时进行加法计数,为低电平时进行减法计数.可得到其仿真波形如图3所示.

图3 QuartusⅡ环境下加减计数器波形仿真

此外,新型实验设计的灵活性还体现在QuartusⅡ环境下设计输入的多样化.QuartusⅡ软件支持模块/原理图输入、文本输入、第三方EDA工具输入等多种输入方式.因此,在进行实验设计时,即使学生不懂得VHDL语言,也能通过原理图的输入方式设计出相应的实验电路.

3.2.2 新型实验设计的可重构性

FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是作为专用集成电路 ASIC(Application Specific Integrated Circuit)领域中的一种半定制电路而出现的,FPGA能够完成任何数字逻辑器件的功能,上至高性能的CPU,下至简单的74系列电路,都可以用FPGA来实现.FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言(VHDL)自由地设计一个数字系统.

基于FPGA的电路设计采取的是一种自顶向下的设计方式[8],即按照数字系统的功能描述,把系统划分为若干个功能模块,然后再把每个模块划分为不同层次,从高层次到低层次逐步细化.把这种思想应用到《数字逻辑》实验中,可以大大简化实验设计的复杂程度.采用模块化设计的方法,把每个实验课题内容逐步细化为若干个具体的模块,每个模块具体为一个或若干个程序,能够完成一定的功能.同时若干个模块又可以组合成一个大的模块,即可实现电路设计的可重构.比如:本次设计好的实验电路可以作为一个模块保存下来,当下次实验设计刚好需要用到这个模块的时候,可以随时取过来作为新的实验设计的一部分,这样做的实验越多,积累的模块也越多,学生做起实验也就越方便.

4 结束语

实验教学是培养学生实践和创新能力的一个重要环节.作为传统实验方法和虚拟实验方法的给合体,基于FPGA的新型实验方法具有很大的发展前景,代表了未来的发展方向.然而,这种先进的实验方式并没有在中国大多数著名高校广泛使用,由此可见,实验教学在国内的创新研究和推广工作无疑任重而道远的.

〔1〕汪航,孙琪.教学型虚拟实验室的应用研究[J].现代远距离教育,2010(4).

〔2〕刘辉,曾松.计算机类课程虚实结合的实验构建[J].计算机教育,2011(10)

〔3〕汤书森,李蜀娴,饶增仁.仿真技术在数字逻辑电路实验教学中的应用与实践[J].高校实验室工作研究,2012(1).

〔4〕徐尚中,崔仲远.高校《数字逻辑》课程教学改革的思考与探讨[J].现代计算机(专业版),2010(9).

〔5〕江晋剑.基于FPGA的可重构性数字逻辑实验方法[J].安庆师范学院学报(自然科学版),2011(4).

〔6〕罗苑堂.CPLD/FPGA常用模块与综合系统设计实例精讲[M].北京:电子工业出版社,2007.

〔7〕刘福奇.基于VHDL的 FPGA和NoisⅡ实例精炼[M].北京:北京航空航天大学出版社,2011.

〔8〕郑亚民,董晓舟.可编程逻辑器件开发软件QuartusⅡ[M].北京:国防工业出版社,2006.

TP302.2

A

1673-260X(2012)09-0020-03

河南省教育厅自然科学项目(No.2010B520035),周口师范学院校级教改项目(No.J2010086)

猜你喜欢

计数器实验设计逻辑
刑事印证证明准确达成的逻辑反思
采用虚拟计数器的电子式膜式燃气表
逻辑
不同的温度
有趣的放大镜
创新的逻辑
哪个凉得快?
无字天书
女人买买买的神逻辑
计数器竞争冒险及其处理的仿真分析