




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1EDAEDA技术课程设计技术课程设计课题:乒乓球比赛游戏机系别:电气与电子工程系专业:电子信息工程姓名:学号:指导教师:河南城建学院2012年6月日2成绩评定一、指导教师评语一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。二、课程设计评分二、课程设计评分成绩:成绩:20122012年年66月月日日3目录一、设计目的.1二、设计要求.1三、总体设计方案要求.41、设计的总体原理.42、设计内容.6四、EDA设计与仿真.61、系统程序设计.62、系统程序各功能介绍.123、仿真结果及数据分析.13五、硬件实现.141、硬件实现步骤.142、硬件实现结果.16六、设计总结.20七、参考文献.21八、设计生成的电路总图.214一、设计目的一、设计目的通过对FPGA(现场可编程门阵列)芯片的设计实践,使学生掌握一般的PLD(可编程逻辑器件)的设计过程、设计要求、设计内容、设计方法,能根据用户的要求及工艺需要进行电子芯片设计并制定有关技术文件。培养学生综合运用已学知识解决实际工程技术问题的能力、查阅图书资料和各种工具书的能力、工程绘图能力、撰写技术报告和编制技术资料的能力,受到一次电子设计自动化方面的基本训练。培养学生利用EDA技术知识,解决电子设计自动化中常见实际问题的能力,使学生积累实际EDA编程。通过本课程设计的学习,学生将复习所学的专业知识,使课堂学习的理论知识应用于实践,通过本课程设计的实践使学生具有一定的实践操作能力。二、设计要求二、设计要求1、设计一个由甲、乙双方参赛,有裁判的3人乒乓球游戏机。2、用8个(或更多个)LED排成一条直线,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依此从左到右,或从右到左,其移动的速度应能调节。3、当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。4、一方得分时,电路自动响铃3秒,这期间发球无效,等铃声停止后方能继续比赛。5、设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计满21分为1局。6、甲、乙双方各设一个发光二极管,表示拥有发球权,每隔5次自动交换发球权,拥有发球权的一方发球才有效。三、总体设计方案要求三、总体设计方案要求1.设计的总体原理设计的总体原理本实验主要部分设计采用状态机设计,设置了7个状态,分别是“等待发球状态”、“第一盏灯亮状态”、“第八盏灯亮状态”、“球向乙移动状态”、“球向5甲移动状态”、“允许甲击球状态”,“允许乙击球状态”。这是该程序中起决定作用的七个状态。开始的时候处于“等待发球状态”,若甲发球则状态转移到“第一盏灯亮状态”,若乙发球则转移到“第八盏灯亮状态”,具体说明以甲球为例。若发球后乙没有提前击球-规定球移动到对方第一个发光二极管时允许击球,那么状态机从“第一盏灯亮状态”转移到“球向乙移动状态”;若在“球向乙移动状态”乙仍然没有提前击球,状态就转移到“允许乙击球状态”,在此状态下,如果乙击球了,那么状态就转移到“球向甲移动状态”;在“第一盏灯亮状态”,“球向乙移动状态”中,如果乙击球了,就算提前击球,这样甲得分,状态转移到“等待发球状态”等待发球,“球向甲移动状态”之后的过程和前面的过程只不过是甲乙角色的调换而已。本设计流程图与乒乓球游戏机原理图如下:甲乙否否NNNNYYYY游戏开始正确接发球?大于21?甲方加分乙方加分大于21?乙方胜利甲方胜利游戏结束图31设计流程图6甲得分乙得分甲发球乙发球乙击球甲击球乙击球甲击球乙没击球甲没击球2.2.设计内容设计内容用8个(或更多个)LED排成一条直线来模拟乒乓球的轨迹,以中点为界,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依此从左到右,或从右到左,其移动的速度应能调节。当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。一方得分时,电路自动响铃3秒,这期间发球无效,等铃声停止后方能继续比赛。设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计数满21分为1局。甲、乙双方各设一个发光二极管,表示拥有发球权,每隔5次自动交换发球权,拥有发球权的一方发球才有效。四、四、EDA设计及仿真(设计程序、仿真波形图)设计及仿真(设计程序、仿真波形图)1、系统程序设计、系统程序设计libraryieeeuseieee.std_logic_1164.alluseieee.std_logic_arith.alluseieee.std_logic_unsigned.allentitymydecoderis等待发球第一盏灯亮球向乙移动允许乙发球第八盏灯亮球向甲移动允许甲发球图32乒乓球游戏机原理图7port(binaryin:instd_logic_vector(1to5)-5位二进制码的输入端口bcdout1:outstd_logic_vector(1to4)-七段译码器输出端口bcdout2:outstd_logic_vector(1to4)endmydecoderarchitecturemofmydecoderissignaltembinaryin:std_logic_vector(1to5)beginprocess(binaryin)begintembinaryinbcdout1i=1state=light1onj=j+1if(j=9)thenji=8state=light8onjiii=2-进程处于第一盏灯亮状态ifhit2=1theni=0count1=count1+1c=1state=waitserveelsec=0statei=7-进程处于第八盏灯亮状态ifhit2=1theni=0count2=count2+1c=1state=waitserveelsec=0stateifhit1=1then-进程处于球向乙移动状态i=0count2=count2+1c=1state=waitserveelsifi=2theni=1c=0state=allow1hitelseiifhit2=1then-进程处于球向乙移动状态i=0count1=count1+1c=1state=waitserveelsifi=7theni=8c=0state=allow2hitelseiifhit1=1theni=2c=0state=ballmoveto2-进程处于允许甲击球状态elsecount2=count2+1i=0c=1statefhit2=1theni=7c=0state=ballmoveto1-进程处于允许乙击球状态elsecount1=count1+1c=1i=011state=0andj=5)thenserve=5andj10)thenserve=10endifendprocessP2p3:process(cclk2)variabled:integerrange0to4108beginifc=1thend:=4108if(clk2=1)thenifd0thenspeaker=clk1endifendifendifendprocessp3light=10000000when(i=1)else-进程处i信号控制发光二极管的亮暗01000000when(i=2)else00100000when(i=3)else00010000when(i=4)else00001000when(i=5)else1200000100when(i=6)else00000010when(i=7)else00000001when(i=8)else00000000-其他情况所有发光二极管都暗u0:mydecoderportmap(count1score11score12)-用七段译码器显示甲的分数u1:mydecoderportmap(count2score21score22)-用七段译码器显示乙的分数endgame-2、系统程序各功能介绍、系统程序各功能介绍2.1该乒乓球游戏机的输入与输出端口:首先考虑输入端口,一般应该设置一个异步置位端口reset用于在系统不正常时回到初始状态;两个击球输入端hit1和hit2,逻辑1分别表示甲击球和乙击球;一个开始游戏按钮startbutton处于逻辑1表示可以开始游戏;还有时钟输入端口clk、clk1、clk2。其次考虑输出端口,芯片应该有8个输出端口来控制8个发光二极管,输出逻辑1即输出一个高电平,可以使发光二极管点亮;蜂鸣器输出端口speaker,用时钟信号来驱动蜂鸣器发声;还要直观地表示双方的得分,就得用到4个七段显示数码管,每方用到2个,可以表示0到21的数字,每个七段显示数码管需要芯片的4个输出端口来控制。2.2实体程序设计:实体分为三个进程:进程一用状态机设计,状态机设置了7个状态分别是waitserve、light1on、ballmoveto1、allow1hit、light8on、ballmoveto2和allow2hit它们代表的具体数值依次是0到6。在整个程序中,状态机起的是中央控制器的作用,由它控制的信号来影响整个程序中的其他相关部分,如积分显示、发光二极管部分、蜂鸣器发声。乒乓球游戏机中有两个计数器count1和count2,分别记忆甲和乙的得分,用发光二极管的轮流发光表示球的移动轨迹。进程二的作用自动设置发球权,每隔5次自动交换发球权,通过对信号serve的赋值,serve=“10”代表甲发球,serve=“01”代表乙发球;进程三13的作用是使蜂鸣器发声,当一方得分时,蜂鸣器自动响铃3秒。2.3七段数码管显示设计:七段译码器是在数学电路设计中经常用到的显示电路。所谓七段译码器,其实是由7段发光二极管组成的用于显示数字的器件。记分译码器(mydecoder):由于记分需要显示出来,所以要使用七段译码器。而状态机中的记分是由5位二进制码来表示的,即count1和count2。七段数码管显示采用一个元件设计,将5位二进制码译成四位二进制来驱动数码管的显示。3、仿真结果及数据分析、仿真结果及数据分析图4-1总程序的时序仿真波形图一14图4-2总程序的时序仿真波形图二图4-1与4-1总程序的时序仿真波形反应设计的总体情况,乒乓球的移动情况用8位二进制码表示,仿真波形中用light显示;双方计数显示的分数用score11、score12、score21、score22来显示;蜂鸣器speaker的发声用时钟信号clk1来表示。图4-3LED的显示情况15图4-4状态机的状态转移图图4-4状态机的状态转移图,显示状态机7个状态分别是waitserve、light1on、ballmoveto1、allow1hit、light8on、ballmoveto2和allow2hit的具体转移情况。五、硬件实现五、硬件实现11、给出硬件实现、给出硬件实现实验步骤:(1)打开Quartus9.0软件,建立进程,进程的名字和程序的名字相同;(2)打开新建选择VHDLFile然后把程序输入进去;(3)保存文件点击软件页面上方的编译按键进行编译;(4)编译成功后,进行软件仿真,点击File选择VectorWaveFile然后点击鼠标右键选insetnodeorbus键,把引脚输入进去,再进行引脚设定;(5)然后保存,点击Assigment中的settings选择时序仿真,进行程序的时序仿真;16(6)时序仿真成功后,点击上方AssigmentEditor键进行引脚锁定;(7)引脚锁定完成后,需要再编译一次,将引脚锁定信息编译进编程文件中;(8)编译成功后并连接好试验线路后,将编译产生的SOF格式配置文件在编程窗中配置进FPGA中,就开始硬件测试了。本设计采用试验箱的模式五图5-1引脚锁定图2.2.硬件仿真结果硬件仿真结果在这次设计中刚开始由于种种原因我们的硬件仿真结果没能够正常的显示出来经多次的努力我们修改了程序后最终仿真结果显示是正确的。下面我照17了一些我们仿真的硬件结果来显示本设计的具体情况如下图所示:图5-2硬件仿真结果图示一此图显示系统的复位键reset处于低电平情况,此时数码管显示都为0LED灯处于熄灭的状态。图5-3硬件仿真结果图示二此图的复位键reset处于低电平,开始键startbutton处于高电平,表示比赛正在进行,并且数码管显示甲乙双方的比分情况5:5,在此之前没有进行击球,可见实现了5次自动切换发球的功能,初始状态设置为乙先发球;此时18乒乓球运动由上面的8个LED灯显示,正在由乙向甲进行运动。图5-4硬件仿真结果图示三此图的复位键reset处于低电平,开始键startbutton处于高电平,并且数码管显示甲乙双方的比分情况5:6,此时乒乓球运动正在由甲向乙进行运动。图5-5硬件仿真结果图示四19图5-6硬件仿真结果图示五图5-5和图5-6共同反应乙击球的情况。图5-5显示了球由甲向乙运动,当球运动到乙的最后一位时,立即按下击球键,球向甲方移动,如图5-6所示,反应了乙击球的功能。图5-7硬件仿真结果图示六20图5-8硬件仿真结果图示七图5-7和图5-8共同反应甲击球的情况。图5-7显示了球由乙向甲运动,当球运动到甲的最后一位时,立即按下击球键,球向乙方移动,如图5-8所示,反应了甲击球的功能。六、设计总结六、设计总结这次课程设计是一个综合比较强的设计,所要设计的系统完成的功能也比较多,一定要认真分析系统的构造,些画出相应的原理框图。必须理清思路,状态机的转移应分清楚各个状态之间的逻辑关系以及转移条件。在用VHDL语言进行描述时,一定要分清楚组合电路和时序电路的区别。由于VHDL是一种硬件描述语言,因此不是象C语言那样只要把逻辑描述
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地下pvc管施工方案
- 别墅仿古施工方案怎么写
- 水库人工骨料场施工方案
- 重庆办公室地板施工方案
- 绍兴景观杉木桩施工方案
- 初中体育篮球教学课件
- 生产车计划培训
- 养成良好学习习惯的教学设计方案
- 云南矿山安全员考试题库及答案解析
- 高层楼顶防水施工方案
- 密歇根九级综合复习题
- 供货方案及保证措施供货服务方案
- 新冠核酸检测结果报告单
- 2023年人教版初中英语八年级Unit 4 教案
- 施乐S2011、S2320、S2520维修手册
- GB/T 32892-2016光伏发电系统模型及参数测试规程
- GB/T 14339-2008化学纤维短纤维疵点试验方法
- GB/T 10708.1-2000往复运动橡胶密封圈结构尺寸系列第1部分:单向密封橡胶密封圈
- 骨髓细胞学检查-英文版课件
- 惠普云教室用户操作手册
- 基于PLC的物料分拣系统设计
评论
0/150
提交评论