适用场景:电子设计课程实践、vhdl编程学习
本文要点:数字时钟模块设计、bcd码译码显示、动态扫描控制
行文逻辑:设计思路→模块划分→功能实现→仿真验证
贵州师范大学学生
实习报告
科目:EDA实习
专业: 电气工程及其自动化
班级: 10电气
姓名: 李启应
学号: 101401010202
实验项目名称:数字电子钟的设计
实验项目性质:普通试验
所属课程名称:VHDL程序设计
一、 实验目的
1 学习 VHDL语言的一些基本特点。
2 掌握VHDL程序的基本结构。
3掌握VHDL程序设计方法。
4 要能够用vhdl语言读懂并编写eda程序,对eda设计的总体框架能有较好的把握,掌握各模块的调用方式。
二、 实验内容和要求
设计一个数字时钟,显示时(2位),分(2位),秒(2位),具体要求是:具有时分秒计数显示功能,以24小时循环计时;数码管动态显示时,分,秒;具有清零功能。
在软件工具平台上,进行VHDL语言的各模块编程输入、编译实现和仿真验证。
三、 实验主要仪器设备和材料
计算机,开发环境MAX-PLUSII,ZY11EDA实验系统,VHDL语言。
四、 实验方法、步骤及结果测试
1、设计思路:
数字钟的主体是计数器,它记录并显示接收到的秒脉冲个数,其中秒和分位60进制计数器,小时为24进制计数器,分别产生3位BCD码。BCD码经译码,驱动后接数码显示电路。
根据实验要求,将设计分为5个主要部分,时功能模块、分功能模块、秒功能模块、扫描仪功能模块和7段LED功能模块。 在时、分、秒模块中,包括复位和预置数,其主要思路如下:
秒钟的模块:设计一个60进制的计数器,以clk为其时钟信号,每60个clk后产
生一个进位信号CF给分钟模块,作为分钟进程的响应信号。
秒钟模块VHDL程序见附录1:
仿真波形如下:
封装如下图:
分钟的模块:同理于秒钟的模块,设计一个60进制的计数器,以CFM为其时钟信号,每60个CFM后产生一个进位信号CFM给小时模块,作为小时模块进程的响应信号。 分钟模块VHDL程序见附录二:
仿真波形如下:
封装如下图:
小时的模块:为24进制计数器,在分的进位信号CFM的激发下计数,从0到23的时候产生一个信号CFH,全部清0,重新开始计时。
小时模块VHDL程序见附录三:
仿真波形如下:
封装如下图:
扫描仪模块:在扫描仪内部,有一个3-8译码器的片选信号,当3-8译码器的片选信号为000时,片选信号选中7段LED模块中的秒的个位,当3-8译码器的片选信号为001时,片选信号选中7段LED模块中的秒的十位,当3-8译码器的片选信号为010时,片选信号选中7段LED模块中的分的个位,当3-8译码器的片选信号为011时,片选信号选中7段LED模块中的分的十位,当3-8译码器的片选信号为100时,片选信号选中7段LED模块中的时的个位,当3-8译码器的片选信号为101时,片选信号选中7段LED模块中的时的十位,就这样动态扫描,当输入的时钟信号频率很高的时候,就形成了我们的时钟。
扫描仪模块VHDL程序见附录四:
仿真波形如下:
封装如下图:
适用场景:电子工程实训任务执行、硬件开发项目复盘分析
本文要点:抢答器电路设计调试、Quartus软件操作实践、团队协作问题解决
行文逻辑:调试源程序→排查错误→解决顶层文件问题→完成仿真调试
本学期末我们进行了EDA实验,我们组做的是四路智能抢答器,不过本次实验与以往最大的不同是在熟练并掌握Verilog硬件描述语言的基础上,运用Quartus软件,对其进行波形以及功能的仿真。我们组抢答器的设计要求是:可容纳四组参赛者,每组设置一个抢答按钮供抢答者使用,电路具有第一抢答信号的鉴别和锁存功能,系统具有计分、倒计时和倒计时锁存等电路,输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮可以用如TA、TB表示;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口可用如LEDA、LEDB、LEDC、LEDD表示,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。整个系统至少有三个主要模块:抢答鉴别模块、抢答计时模块、抢答计分模块。
实验的第一天我们组三个人就开始对抢答器的各部分源程序进行调试,由于刚开始对于quartus2软件用的不是很熟练,所以在第一天几乎上没有啥大的进展,一直都在改程序中的错误。在不停的重复的编译、改错。拿着EDA修改稿、资料书检查出错的地方,一边又一遍的校对分析其中的错误。
在实验中我们遇到了很多的问题。为了解决这些问题我和他们两个都在的想办法通过各种渠道寻找解决问题的方法。上网查资料、问同学、图书馆查资料、问老师、自己想办法,其实最有效的方法还是自己去想那样学到的东西才会更加的深刻记得时间也是最长的,他人的帮助当然是很好的,但只是暂时的要想真正的学到东西还是要靠自己去想办法。不能一有问题就希望要他人帮忙,一定自己先好好想想实在解决不了的再去问老师找同学。
由于在一开始的时候对quartus2软件的不熟悉耽误了很多的时间,在接下来的.几天里遇到了不少的问题。刚开始的时候是源程序中的错误一直在那改,好不容易几个模块中的错误都一个个排除了,但当把他们放到一起时问题就又出现了。于是又开始了检查修改,可是弄了好长时间也没有弄明白,最后找了一个在实验室的同学说是顶层文件有问题。于是晚上又找了些关于顶层文件资料还有课本上的例子。最后对步骤已经有了很熟练的掌握,很快就完成了程序编译、仿真、下载到最后的调试。
纸上谈来终觉浅,绝知此事要躬行。在这短暂的两周实验中深深的感觉到了自己要学的东西实在是太多了,自己知道的是多么的有限,由于自身专业知识的欠缺导致了这次实验不是进行的很顺利,通过这次实验暴露了我们自身的诸多的不足之处,我们会引以为鉴,在以后的生活中更应该努力的学习。
虽然实验仅仅进行了两个星期就匆匆的结束了,但在这两个星期中收获还是很多的。实验的目的是要把学过的东西拿出来用这一个星期的实验中不仅用了而且对于quartus2软件的使用也更加的得心应手,这次实验提高了我们的动手能力、理论联系实际的能力、发现问题分析问题解决问题的能力。实验只要你认真做了都是对自己能力一次很大的提高。
本次设计过程中得到我们老师的悉心指导。瓮老师多次询问设计进程,并为我们指点迷津,帮助我们理顺设计思路,精心点拨,时刻在帮助着我们去提高自己。瓮老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅是我学习的楷模,并将积极影响我今后的学习和工作。在此诚挚地向瓮老师致谢。
为期10天的课程设计将要结束了。在这10天的课程中,我们是以小组的形式的,让我更懂得了团队的意思,怎样和团友们一起分工合作。在这次课程设计中,我学到了很多,获益匪浅。
合作、齐心协力,一起完成了课程设计前的准备工作(阅读课程设计相关文档)、小组讨论分工、完成系统开发的各个文档、课程设计总结报告、小组汇报PPT、个人日记,个人小结的任务。在课程设计的第一天我们便对这次任务进行了规划和分工。在以后的几天中,我们组的成员一起努力,查阅资料、小组讨论、对资料进行分析,并在这段时间里完成了网站的开发设计,并最后撰写课程设计报告及个人总结。我的主要工作是完成课程设计总结和制作PPT,并上台汇报。面对这样的任务,我开始真的很担心,不是害怕要写那么多资料,而是怕站在讲台上,面对那么多的人,我怕讲不出话来。有过两次上台经验的潘同学就耐心的给我传授一下他的心得。而且这是我们必经的过程,以后走入社会肯定会有很多场合需要我们在公共场合讲话,现在如果不去讲的话,那以后我们怎么办呢?还是硬着头皮上吧,没有别的选择了。
在课程设计的过程中,我们经历了感动,经历了一起奋斗的酸甜苦辣。也一起分享了成功的喜悦。这次的课程设计对我们每个人来说都是一个挑战。课程设计中文档的撰写我从来就没有担心过,就是网站的设计我真的很担心,平时对这方面的知识接触的就不是很多,而且对于软件我就更抓狂了。这时候小组的力量就体现出来了,各司其职,各尽其能。发挥了集体的效用。
在这个过程,我受到了好多帮助,一句温暖的话语,一杯热热的"咖啡,让人有无比的动力和解决问题的决心。其实这次的课程设计我的最大的感受不是知识的获得,而是人格的磨练和交际的能力。
和大家想的一样我们也会产生一些小矛盾,当然这是不可避免的。在产生小矛盾的时候,我们没有逃避。重要的是我们如何去解决它。为什么会产生这些矛盾,以怎样的方式去解决它,这是我们应该去考虑的问题。我想经过这样的一个过程我们会学到很多,学会了怎样去和别人沟通,理解别人所做的事,别人也会宽容的对待我们,从而我们就在无形之中加强了我们的人际交往能力。这个经验对我们以后的人生将会发挥很大的作用。毕竟我们是生活在人类这个群体之中的。假如世界上只剩下一个人,那么他不可能长久的生活下去的。
课程设计这样集体的任务光靠团队里的一个人或几个人是不可能完成好的,合作的原则就是要利益均沾,责任公担。如果让任务交给一个人,那样既增加了他的压力,也增大了完成任务的风险,降低了工作的效率。所以在集体工作中,团结是必备因素,要团结就是要让我们在合作的过程中:真诚,自然,微笑;说礼貌用语;不斤斤计较;多讨论,少争论,会谅解对方;对他人主动打招呼;会征求同学的意见,会关心同学,会主动认错,找出共同点;会接受帮助,信守诺言,尊重别人,保持自己的特色。
课程设计结束了,但是我们团队合作的精神与经历,我们会一直记着,这将成为我们人生道路上的一道亮丽的风景线