G(3)<='1';LED(3)<='1';
ELSIF( S2='1')AND NOT(G(0)='1' OR G(1)='1' OR G(3)='1') THEN G(2)<='1';LED(2)<='1';
ELSIF( S1='1')AND NOT(G(0)='1' OR G(2)='1' OR G(3)='1') THEN G(1)<='1';LED(2)<='1';
ELSIF( S0='1')AND NOT(G(1)='1' OR G(2)='1' OR G(3)='1') THEN G(0)<='1';LED(3)<='1'; END IF;
STOP<=G(0) OR G(1) OR G(2) OR G(3); END IF; END IF; CASE G IS
WHEN \ WHEN \ WHEN \ WHEN \ WHEN OTHERS=>STATES<=\END CASE; END PROCESS;
END ARCHITECTURE ONE;
4.1.2 抢答锁存电路的模块
在这个模块中主要实现抢答过程中的抢答功能,并且能实现当有一路抢答按键按下时,该路抢答信号将其余个绿抢答封锁的功能。在这个模块输入端有WARN输入(以时间控制系统的WARN输出信号为信号源)、一个和时间控制系统公用的CLEAR端、4人抢答输入信号端S0,S1,S2,S3和有一个时钟信号端CLK,这个时钟信号是个高频信号,用以扫描S0,S1,S2,S3是否有信号输入。输出端有对应于S0,S1,S2,S3编号的4个指示灯LED 和4线2进制输出端STATES (用于锁存当前的状态),还有一个STOP 端用于指示S0,S1,S2,S3按钮状态。
13
图5 抢答锁存电路的模块
4.2 仿真
图6 仿真图
由图中可看出在复位信号CLEAR从高电平降到低电平后,抢答器开始正常工作,此时抢答开始。在此之前S0抢答无效。而S2作为第一抢答者最先抢答,这时开始报警,数码管输出显示1,说明A最先抢答。
14
总结
一周的FPGA课程设计很快就过去了,其中真是有苦更有甜,苦的是我在第一次独自设计一个应用型设备时的不熟悉和不知所措,甜的是经过一周的时间我通过回顾课本知识、询问同学老师和上网学习收获到了很多专业方面的知识更加锻炼了我的动手能力和专业技能。
记得大二下学期第一次上EDA程序设计课的时候,我对硬件设计语言是那么的难以上手,通过杜老师一学期细致的讲解,配合实验课程让我对EDA相关知识、VHDL编程、quartusII软件、MAX_PLUSⅡ软件有了更深的理解和更熟练的掌握。
本次我的课程设计为四路竞赛抢答器,根据电路的特点,我采用层次化结构化设计,将此项设计任务分成部分模块,分别对各个模块进行编程,然后再将各模块合起来编译,这一步一步的加深了我们对于层次化设计的理解和对VHDL设计流程的熟悉。在设计的过程中,遇到问题我们尽量独立思考,查找资料,到自己不能解决的时候就和同小组同学研究讨论,或者向指导老师请教。这样的经历不仅提高了我们独立发现问题、分析问题、解决问题的能力,又很好地培养了交流合作的精神。
通过这次课程设计,进一步加深了我对EDA技术的了解,让我更加明确VHDL的设计流程,并产生了更加浓厚的兴趣。特别是当每一个模块程序调试成功时,内心的满足感真的无法形容。这次经历更让我懂得了理论与实际相结合是十分重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,使理论服务于实际,才能真正为社会服务。在设计的过程中我们不可避免的遇到各种问题,因为这毕竟第一次做的,难免会不尽善尽美。同时在设计的过程中发现了自己不少不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,以后一定加强基础知识的学习。在这次课程设计种我积累了很多宝贵的经验,这对于未来出身社会的我无疑是一笔巨大财富。没有谁是天生就知道那个该怎么做的,都是要靠自己慢慢去探索、学习、尝试的。我深刻知道用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降
15
低了开发成本。这些课程知识的学习我们电子信息工程的同学提供了莫大的帮助,我们理当认真学习这些语言和算法。
总体来说,这次有意义的课程设计让我们都收获颇丰。在学习了EDA技术一学期后我们接着跟随杜老师学习了单片机,在这个知识融会贯通的节骨眼上开展了基于FPGA的课程设计无疑帮助我们更好的理解软件设计的方法,培养了我们独立完成一个项目设计的能力,进一步加深了对EDA技术相关课程的理解,增强了以后专业学习的兴趣,为以后深入学习甚至是工作都积累了宝贵的经验,感谢杜老师和耿老师给我们提供这次设计的机会。
16
致谢
本次课程设计是在我的导师杜老师和耿老师悉心的指导和耐心的帮助之下才得以顺利完成的。这些专业基础知识正是我的EDA技术兼单片机任课老师杜海明老师和FPGA高级应用任课老师耿鑫老师在一节又一节富含激情而且充满了专业前沿知识的课堂中点点滴滴的传授给我们的。两位恩师那严谨的治学态度和渊博的专业知识时时刻刻鼓励着我不断前行,犹记得杜老师为了给我们做实验中午无法休息,周末来到学校加班,对待同学们像自己的孩子一样慈祥而关爱,也难忘耿老师对待学生一丝不苟,为我们补课做实验依然如日常教学一般认真。老师们诲人不倦的作风和踏实认真地品格无不深深的影响着我,受益无穷,我很荣幸能成为这样优秀的教师的学生,借此课程设计结束之际特向这些勤勤恳恳的专业课老师们表达我最深最诚挚的敬意,谢谢你们!
同时,我还要感谢我的同学们和所有给予这次课程设计帮助的老师们,遇到困难时我们一起讨论如何解决,调试成功时我们欢呼雀跃为了一点点成功激动不已,不积跬步无以成千里,相信通过这一点一滴的进步我们一定能够成为像各位老师一样富有专业技能为社会做出贡献的有为之士!
最后,再一次真诚的感谢各位老师和同学们,也谢谢这次答辩的老师们,感谢您百忙之中抽出时间为我们提出宝贵的意见和建议,谢谢你们!
17
参考文献
[1] 王萍.电子设计自动化EDA教程[M].成都:电子科技大学出版社,2000 [2] 黄继业,潘松.EDA技术实用教程[M].北京:科学出版社,2006 [3] 谢自美.电子线路测试(第三版)[M].北京:华中科技大学出版社,2003 [4] 董玉冰.Multsim9在电工电子技术中的应用[M].北京:清华大学出版社,2007
[5] 陈振官.数字电路及制作实例[M].北京:国防工业出版社,2008 [6] 褚振勇. FPGA设计及应用(第三版)[M].西安电子科技大学出版社.2012,4
[7] 陈怀琛.MATLAB及在电子信息课程中的应用[M].北京:电子工业出版社.2008,1
18