《基于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年全国 电子设计大赛的同学取得好成绩!