河北科技大学EDA课程设计.doc_第1页
河北科技大学EDA课程设计.doc_第2页
河北科技大学EDA课程设计.doc_第3页
河北科技大学EDA课程设计.doc_第4页
河北科技大学EDA课程设计.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河北科技大学课程设计报告学生姓名: 高志明 专业班级: 电子信息工程L121班 课程名称: EDA课程设计 学年学期:20142015学年第二学期 指导教师: 安国晨 负责部分: hit部分模块 2 01 5 年 7月 课程设计成绩评定表学生姓名 高志明成绩专业班级电信L121起止时间2015年6月26日7月2日设计题目打地鼠游戏设计指导教师评语指导教师: 年 月 日目录一、 设计题目及要求3二、 系统结构框图3三、 状态流程图4四、 程序清单6五、 调试及仿真波形8六、 设计分工 10七、 心得与体会 10八、 参考文献 1212一、设计题目及要求1、功能:由8只LED代表虫洞,8个按键代表打虫棒,虫子随机在8虫洞随机出现(LED亮)1s,1s内按相应的虫棒即算打中地虫,得一分,按错或1S内按过其他键或未按键即丢1分。间隔2S出现下一只虫子。10只虫算一关,打对十只算本关通过,重新从0积分,否则游戏结束。2、要求:上电时数码管显示“STAr-00”并闪烁,按“开始”键,进入第一局; 打关时数码管显示 关数和分数; 过关时数码管显示“STAr-XX”并闪烁(XX为下一关数),按“开始”键,进入下一关;每过一关,虫子出现的时间为上一关的3/4,共设计8关。 8关全过时显示“-end -”3、发挥:声效、过关音乐等。二、系统结构框图1.总系统框图计分模块显示模块随机数发生模块等级判断模块分频模块计数模块键盘输入模块比较模块2. 各个模块的功能描述1) 分数判断模块判断选手得分或失分主要是由一个比较器完成的,将系统传给LED灯的信号与选手输入的信号作比较,相同则加分,否则扣分,这两个信号分别传给计分模块,从而完成系统判定得分的工作。 2)系统时钟模块将内部2MHz的时钟分频为1Hz、及游戏时钟,供以后程序适使用。3)键盘电路主要通过产生行扫描,来识别用户的按键,其提供给控制器按键的编码。4)等级判断模块判断等级,若游戏未开始时,将等级设为初始值,游戏开始后则判断每一等级是否按对次数是否大于按错次数,是责加分,否则相应减分。并通过分数的正负进行等级的判断及变化。5)随机数产生模块为使得测试结果的公平性,需要L9-L16等灯亮灭具有随机性,因而需要随机数产生过程,在本课设中,采用伪随机数产生方法,即在ROM中存入随机表中的数据,游戏开始后采用一个计数器不断计数,并通过计数寻址,读出存储的随机数据,传送至灯进行显示。6)显示模块用来显示地虫的出现位置及各关、分数等三、状态流程图加分减分分数=0?是否等级升级是否按对?是游戏结束否是游戏开始Reset=0?否初始状态Start=1?stop=1?tsstopstopstop=1?否是hi四、程序清单library ieee; -蜂鸣器部分use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity bell isport(clk1:in std_logic; -时钟信号输入right,wrong:in std_logic; -正确、错误脉冲输入bellout:out std_logic -时钟驱动输出);end bell;architecture func of bell issignal countr:integer range 0 to 7; -RIGHT时用于声音频率分频的计数器signal countw:integer range 0 to 3; -WRONG时用于声音频率分频的计数器signal counttime1,counttime2:integer range 0 to 399; -控制声音长短signal outr,outw,rf,wf:std_logic:=0; -正确输出、错误输出,时间标志beginprocess(right,clk1)beginif(right=0 and rf=0) then outr=0;-由right或rf启动驱动蜂鸣器elsif(clk1event and clk1=1) thenif(countr=countrhigh) thencountr=0;outr=1;elsecountr=countr+1;outr=0;end if;if(counttime1=counttime1high) thencounttime1=0;rf=0; -达到发声时长,时间标志清零else counttime1=counttime1+1;rf=1;end if;end if;end process;process(wrong,clk1)beginif(wrong=0and wf=0) then outw=0; -由wrong或wf启动驱动蜂鸣器elsif(clk1event and clk1=1) thenif(countw=countwhigh) thencountw=0;outw=1;elsecountw=countw+1;outw=0;end if;if(counttime2=counttime2high) thencounttime2=0;wf=0; -达到发声时长,时间标志清零else counttime2=counttime2+1;wf=1;end if;end if;end process;bellout=(outr or outw);-由于right和wrong脉冲不会同时到来,可将outr和outw或后输出end func;五、调试及仿真波形1.仿真波形2.程序硬件调试把实验箱串口插头与串口线(已经与pc机串口相连)联接1) 将程序正确下载到FPGA上,引脚绑定情况如下表:信号名对应器件名管脚名Clk1石英晶振79Clk2石英晶振183Sp蜂鸣器63Start按键K1588Reset按键K1689a(7 downto 0)按键K1,K2,K3,K4,K5,K6,K7,K864,65,67,68,69,70,71,73deng(7 downto 0)Led灯 L16、l15、 L14、l13、L12、l11、 L10、l9、205、203、202、200、199、198、197、196y1(7 downto 0)段码 M4D、M4C、M4B、M4A、M3D、M3C、M3B、M3A195、193、192、191190、189、187、179wei(7 downto 0)位码M2D、M2C、M2B、M2A、M1D、M1C、M1B、M1A177、176、175、174173、172、170、1692)点击start按钮K15灯亮,表示游戏开始,开始计分。3)点击reset按钮K16灯亮,无论游戏从何处开始,都从第一关开始计分。4)打地虫时蜂鸣器是否响起,过关时蜂鸣器是否响起。 观察是否能打地虫,打时是否有音效,打中或未打中是,看实验箱数码管的变化是否正确,过关后是否有音效。六、设计分工小组成员主要负责模块韩伟Hit部分高志明Bell部分焦睿雄Counter部分吕晓丁Kaishi部分陈冠桥Jihe部分敦致远总程序检验和连接试验箱验证七、收获与体会这次EDA课程设计历时一个星期,在这一个星期里可以说是苦多于甜,但是可以学到很多东西。期间不仅巩固了以前学习的知识,而且还学到了很多书本上没有学过的知识。而且通过这次课设,进一步加深了我们对EDA的了解,让我们对它有了更加浓厚的兴趣。特别是当子模块调试成功时,心里特别的开心。通过这次课设是我懂得了理论与实际相结合的重要性,只用理论知识是远远不够的。只有把学到的理论知识和实践结合起来,从实践中得出结论才能真正体会到知识的妙用,从而提高自己的动手能力和独立思考问题解决问题的能力。在实践中我们看到了自己的不足,同时通过学习我们掌握了很多新的知识。总的来说这次课设设计的相当成功,我们不仅把基本部分做好,还把发挥全部做好了。通过这几天的设计,终于完成了打地鼠设计,该设计让我们懂得了许多的东西,包括专业方面和学习方面的。在系统设计上,我知道了要设计一个电子系统是要经过许多步骤,包括硬件和软件方面的知识;在学习方面,让我懂得了学习要扎实。一开始我们很简单的认为,只要把VHDL语言弄懂了就能轻松完成一个电子系统的设计,到了后来我才发现我们是错的,这里面包括要对整个系统做到完全的把握,包括每一个步骤,除此之外还

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论