基于fpga的乒乓球游戏设计

上传人:第*** 文档编号:49695375 上传时间:2018-08-01 格式:PPT 页数:38 大小:811KB
返回 下载 相关 举报
基于fpga的乒乓球游戏设计_第1页
第1页 / 共38页
基于fpga的乒乓球游戏设计_第2页
第2页 / 共38页
基于fpga的乒乓球游戏设计_第3页
第3页 / 共38页
基于fpga的乒乓球游戏设计_第4页
第4页 / 共38页
基于fpga的乒乓球游戏设计_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《基于fpga的乒乓球游戏设计》由会员分享,可在线阅读,更多相关《基于fpga的乒乓球游戏设计(38页珍藏版)》请在金锄头文库上搜索。

1、要求用指定的FPGA平台结合SOPC技术构造 一个乒乓球游戏机。系统结构如果所示, FPGA通过两条I/O信号输出两组脉宽调制波 ,经过低通滤波器提取脉宽调制的均值电压 ,输入到双通道示波器中。示波器工作在X/Y 模式。示波器屏幕上的光点代表乒乓球。 乒乓球X/Y电压的控制下在屏幕上移动。 基本要求: 1.构造两组无源低通滤波器,使得FPGA可以 用脉宽调制方式控制球的位置(20分) 2.用给定的运放制作一放大器,使光点运动 范围在示波器的X轴,Y轴方向上可调(10分 ) 3.乒乓球可按抛物线自动在屏幕上左右弹射 ,球的落点为屏幕两侧边的中间。(20分) 扩展要求: 1.使用两个按钮分别作为左

2、侧击球钮和右侧击球钮 。当乒乓球靠近屏幕左边时按下左侧击球钮,可将 球击回右侧。右侧击球钮亦然。(10分) 2.建立成败机制,即球抵达边沿而未按下击球钮, 记为击球失败,用LED灯光表示。(10分) 3.建立记分机制,在七段数码管上显示双方得分( 10分) 4.特殊功能,在不调整放大器的情况下,连按两下 击球钮能击出高抛球,轨迹抛物线曲率变大(20分 )竞赛板卡 扩展I/0RS232VGA接口电源开关 按钮七段数码管扩展I/0LED器材示波器、稳压源、函数信号发生器、导线、 电烙铁、个人PC机、RS232串口线、Hep EXCD竞赛开发板、竞赛对插通用电路板、 万用表、镊子、面包板、松香等。

3、电子元件0.1uF电容若干、220uF电容若干 、1K电阻若干、 10K电阻若干、51K电阻若干、100K电阻若干、 10K电位器若干、s运放一片等。设计思路FPGA无源低通 滤波器无源低通 滤波器增益可调 放大器增益可调 放大器XY双踪示波器PWM1 (线性 )PWM2 (非线性 )击球按钮七段数码 管显示计分硬件部分 无源低通滤波器分析硬件部分 无源低通滤波器分析硬件部分 无源低通滤波器FH=1/sqrt(2*pi*RC)硬件部分 增益可调放大器UI=UO*R1/(RF+R1) UO=UI*(1+RF/R1)6无符号逻辑矢量 -无符号slv_reg0(32位)slv_reg0(0 to 1

4、5) (16位)slv_reg0(16 to 31) (16位)逻辑矢量 -无符号逻辑矢量 -无符号比较器比较器PWM1PWM2分频器divclkdivclkCount1count2count_value2count_value1compare1compare2compare_value1compare_value2软件部分 VHDL 端口及信号量PWM1 : out std_logic; PWM2 : out std_logic;signal divclk : std_logic; -分频时钟 signal count1 : std_logic_vector(0 to 15):=X“0000

5、“;-计数器1 signal count_value1: unsigned(0 to 15); -无符号计数值1 signal count2 : std_logic_vector(0 to 15):=X“0000“;-计数器2 signal count_value2 : unsigned(0 to 15); -无符号计数值2 signal compare1 : std_logic_vector(0 to 15); -比较匹配值1 signal compare_value1: unsigned(0 to 15); -无符号比较匹配值1 signal compare2 : std_logic_ve

6、ctor(0 to 15); -比较匹配值2 signal compare_value2 : unsigned(0 to 15); -无符号比较匹配值2 signal dir1 : std_logic:=1; -计数器1计数方向标志1为增计数,0为减计数 signal dir2 : std_logic:=1; -计数器2计数方向标志1为增计数,0为减计数 signal slv_reg0 : std_logic_vector(0 to C_SLV_DWIDTH-1);软件部分 VHDL 时钟分频 PWM_CLK_DIV_PROC:process(Bus2IP_Clk) variable count1:integer:=0; begin if(rising_edge(Bus2IP_Clk) then if (count1=5) then count1:=0; divclk=0 /VHDL=C语言 例子:ADC ip核基地址从Xparameters.h查询谢谢!预祝各位参加2011年全国 电子设计大赛的同学取得好成绩!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号