名称:双人弹球游戏VGA显示设计VHDL代码Quartus? DE1_SoC开发板
软件:Quartus
语言:VHDL
代码功能:
设计一个弹球游戏,并在VGA显示器上显示
1、可以控制游戏开始,开始时数码管显示0分;
2、使用按键控制球拍的运动,当控制球拍接住球时,分数加1;
3、弹球触碰屏幕边缘或者球拍时可以反弹;
4、可以控制小球的移动速度和球拍的大小;
5、当未成功接球时,游戏结束。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE1_SoC开发板验证,DE1_SoC开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1.?工程文件
2.?程序文件
3.?程序编译
4.?RTL图
5.?管脚分配
6.?上板验证效果
部分代码展示:
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; --产生墙、球和球拍 ENTITY?graphic_generator?IS ???PORT?( ?????? ??????clk???????:?IN?STD_LOGIC;--时钟 ??????rst???????:?IN?STD_LOGIC;--复位????? ??????speed_sw??:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);--控制速度 ??????size_sw???:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);--控制球拍大小 ??????btn???????:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);--球拍移动按键 btn2???????:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);--球拍移动按键 ??????pixel_x???:?IN?STD_LOGIC_VECTOR(9?DOWNTO?0);--当前x坐标 ??????pixel_y???:?IN?STD_LOGIC_VECTOR(9?DOWNTO?0);--当前y坐标 ??????video_on??:?IN?STD_LOGIC;--显示使能 ??????score?????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--分数1 score2?????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--分数2 ??????rgb???????:?OUT?STD_LOGIC_VECTOR(11?DOWNTO?0)--RGB颜色 ???); END?graphic_generator; ARCHITECTURE?behave?OF?graphic_generator?IS ??? ???SIGNAL?refr_tick?????:?STD_LOGIC; ??? ???SIGNAL?paddle_y_t????:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?paddle_y_b????:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?paddle_y_reg??:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?paddle_y_next?:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?paddle2_y_t????:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?paddle2_y_b????:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?paddle2_y_reg??:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?paddle2_y_next?:?STD_LOGIC_VECTOR(9?DOWNTO?0); ??? ???SIGNAL?ball_x_l??????:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?ball_x_r??????:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?ball_y_t??????:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?ball_y_b??????:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?ball_x_reg????:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?ball_y_reg????:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?ball_x_next???:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?ball_y_next???:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?x_delta_reg???:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?x_delta_next??:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?y_delta_reg???:?STD_LOGIC_VECTOR(9?DOWNTO?0); ???SIGNAL?y_delta_next??:?STD_LOGIC_VECTOR(9?DOWNTO?0); ??? ???SIGNAL?wall_on???????:?STD_LOGIC; ???SIGNAL?paddle_on?????:?STD_LOGIC; SIGNAL?paddle2_on?????:?STD_LOGIC; ???SIGNAL?ball_on???????:?STD_LOGIC; ???SIGNAL?wall_rgb??????:?STD_LOGIC_VECTOR(11?DOWNTO?0); ???SIGNAL?paddle_rgb????:?STD_LOGIC_VECTOR(11?DOWNTO?0); SIGNAL?paddle2_rgb????:?STD_LOGIC_VECTOR(11?DOWNTO?0); ???SIGNAL?ball_rgb??????:?STD_LOGIC_VECTOR(11?DOWNTO?0); SIGNAL?hit_on???????:?STD_LOGIC:='0'; SIGNAL?hit_on_buf0???????:?STD_LOGIC:='0'; SIGNAL?hit_on_buf1???????:?STD_LOGIC:='0'; SIGNAL?score_buf?????:?STD_LOGIC_VECTOR(3?DOWNTO?0); SIGNAL?hit2_on???????:?STD_LOGIC:='0'; SIGNAL?hit2_on_buf0???????:?STD_LOGIC:='0'; SIGNAL?hit2_on_buf1???????:?STD_LOGIC:='0'; SIGNAL?score2_buf?????:?STD_LOGIC_VECTOR(3?DOWNTO?0);
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1176
阅读全文
404