资源描述:
《乒乓球游戏机设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《EDA课程论文设计》乒乓球游戏机设计学校:学院:班级:姓名:学号:指导教师:乒乓球游戏机设计一、实验目的:(1)采用VHDL语言编写程序,并利用MAX+plusII对程序进行文本编辑输入、仿真测试并得出仿真波形,了解控制信号的时序。(2)编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。二、设计内容:用VHDL设计一个乒乓球游戏机,用开关来模拟球手及裁判,用LED来模拟乒乓球,采用每局十一球赛制,比分由七段显示器显示。采用按功能分块,将整个电路分成若干子程序,利用不同的子程序来实现记分、显示、键盘控制。三、
2、设计原理:1、设计步骤:(1)对4MHZ信号进行分频,得到所需的1HZ,及七段显示器所需的频率.存为CLOCKMAKE.VHD(注:仿真时所加的信号频率比这要高。)。(2)设计一个子程序来描述裁判,左击球手,右击球手的动作对LED显示的影响,及失球后给出失球信号.这个程序是通过状态机来完成。存为PLAYANGLED.VHD(3)利用上一子程序给出的矢球信号,来实现记分。并用按键来控制清零。DATACONTROL.VHD(4)从记分子程序得到分数,译码并动态显示出来。程序名为DATAGET.VHD及DISPLAY.VHD。(5)写主
3、程序将上面的子程序组合起来。程序名为PINGPANGGAME.VHD。按动开关JUDGE可以变动是由哪边开始发球.球发出后,朝对方移去,如果对方接球过早,将使对方得一分,如果球到最近仍不击球,也将丢分,只有在球移动到最进处时,按动击打开关,球才会改变方向朝对方移去.选手每得一分,分数显示加一,满十一分时,局数加一.2、设计原理图:四、实验设备:软件环境:MAX+PLUSⅡ CPLD软件开发系统,VHDL硬件描述语言五、设计程序: (1)顶层模块:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEI
4、EEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYpingpanggameISPORT(clk_4mhz:INSTD_LOGIC;playr:INSTD_LOGIC;playl:INSTD_LOGIC;judge:INSTD_LOGIC;clr:INSTD_LOGIC;led:OUTSTD_LOGIC_VECTOR(8DOWNTO0);tclr:INSTD_LOGIC;scan:OUTSTD_LOGIC_VECTOR(5downto0);displaycode
5、:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDpingpanggame;ARCHITECTUREplayOFpingpanggameISCOMPONENTclockmakePORT(CLK:INSTD_LOGIC;CLK_DSP:OUTSTD_LOGIC;CLK_1HZ:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTplayandledPORT(clk:INSTD_LOGIC;playr:INSTD_LOGIC;playl:INSTD_LOGIC;judge:INSTD_LOGIC
6、;led:OUTSTD_LOGIC_VECTOR(9DOWNTO1);playrloss:OUTSTD_LOGIC;playlloss:OUTSTD_LOGIC);ENDCOMPONENT;COMPONENTdisplayPORT(bcdin:INSTD_LOGIC_VECTOR(3DOWNTO0);displaycode:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDCOMPONENT;COMPONENTdatagetPORT(datain:INSTD_LOGIC_VECTOR(23DOWNTO0);clk
7、_dsp:INSTD_LOGIC;scan:OUTSTD_LOGIC_VECTOR(5DOWNTO0);bcdout:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCOMPONENT;COMPONENTdatacontrolPORT(clk_1hz:INSTD_LOGIC;clr:INSTD_LOGIC;tclr:INSTD_LOGIC;playrloss:INSTD_LOGIC;playlloss:INSTD_LOGIC;data:OUTSTD_LOGIC_VECTOR);ENDCOMPONENT;SIGN
8、ALclk_1hz:STD_LOGIC;SIGNALclk_dsp:STD_LOGIC;SIGNALbcdin:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALplayrloss:STD_LOGIC;SIGNALplaylloss