• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

投篮游戏VHDL代码Quartus DE1开发板验证

08/07 08:14
220
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240Q91U202327.doc

共1个文件

名称:投篮游戏VHDL代码Quartus? DE1开发板验证

软件:Quartus

语言:VHDL

代码功能:

基于VGA的投篮游戏DE1开发板验证

玩家可以通过拨码开关控制投篮的角度和力度,从而控制篮球进入篮筐,投进得分,数码管显示分数。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在DE1开发板验证,DE1开发板验证如下,其他开发板可以修改管脚适配:

DE1开发板.jpg

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. 管脚分配

6. Testbench

7. 仿真图

整体仿真图

游戏控制模块

VGA时序模块

显示模块

部分代码展示:

LIBRARY?IEEE;
???USE?IEEE.std_logic_1164.all;
???USE?IEEE.NUMERIC_STD.ALL;
???--use?IEEE.std_logic_unsigned.all;
???--use?IEEE.std_logic_arith.ALL;
???
--游戏控制
ENTITY?game_controller?IS
???PORT?(
??????clk_in,rst??????:?IN?STD_LOGIC;--50MHz
??pixel_clk:OUT?STD_LOGIC;--VGA时钟
??????sw?:?IN?unsigned(7?DOWNTO?0);--SW移动速度
??btnL,btnR?:?IN?STD_LOGIC;--按键
??????hcount???:?IN?unsigned(10?DOWNTO?0);
??????vcount???:?IN?unsigned(10?DOWNTO?0);
??????blank??:?IN?STD_LOGIC;--空白指示
??vgaRed:?OUT?STD_LOGIC_VECTOR(3?downto?0);--RGB
??vgaBlue:?OUT?STD_LOGIC_VECTOR(3?downto?0);--RGB
??vgaGreen:?OUT?STD_LOGIC_VECTOR(3?downto?0);--RGB
??receive:?OUT?STD_LOGIC--投中
???);
end?game_controller;
ARCHITECTURE?Behavioral?OF?game_controller?IS
COMPONENT?key_jitter?IS
???PORT?(
??????clkin????????:?IN?STD_LOGIC;--25M
??????key_in???????:?IN?STD_LOGIC;--按键输入
??????key_p??:?OUT?STD_LOGIC--按键上升沿输出
???);
END?COMPONENT;
???signal?clk:?STD_LOGIC?:=?'0';
???signal?new_frame:?STD_LOGIC?:=?'0';
???signal?left_of_stick????:?unsigned(10?DOWNTO?0);
???signal?right_of_stick????:?unsigned(10?DOWNTO?0);
???signal?left_of_ball??????:?unsigned(10?DOWNTO?0);
???signal?right_of_ball??????:?unsigned(10?DOWNTO?0);
???signal?top_of_ball??????:?unsigned(10?DOWNTO?0);
???signal?botton_of_ball??????:?unsigned(10?DOWNTO?0);
???signal?ball_h_move????:?unsigned(10?DOWNTO?0);
???signal?ball_v_move????:?unsigned(10?DOWNTO?0);??
???signal?dir_up:?STD_LOGIC;
???signal?dir_down:?STD_LOGIC;
???signal?dir_left:?STD_LOGIC;
???signal?dir_right:?STD_LOGIC;
???signal?display_stick:?STD_LOGIC;
???signal?display_ball:?STD_LOGIC;
???signal?display_man:?STD_LOGIC;
???
???signal?move_x????:?unsigned(4?DOWNTO?0);
???signal?move_y????:?unsigned(4?DOWNTO?0);?
???signal?frame_cnt?:?unsigned(2?DOWNTO?0);?
???
???signal?top_of_stick??????:?unsigned(10?DOWNTO?0);
???signal?botton_of_stick??????:?unsigned(10?DOWNTO?0);
???
???signal?use_top_of_stick??????:?unsigned(10?DOWNTO?0);
???signal?use_botton_of_stick??????:?unsigned(10?DOWNTO?0);
???
???signal?hit:?STD_LOGIC?:=?'0';
???signal?btnL_p:?STD_LOGIC?:=?'0';
begin
??????
?U_key_jitter:?key_jitter
?????????PORT?MAP(
????????????clkin??????=>?clk,--25M
????????????key_in?????=>?btnL,--按键输入
????????????key_p??????=>?btnL_p--按键上升沿输出
?????????);
???receive<=hit;
???
???--计数0~3
???process?(clk_in)
???begin
??????if?(rising_edge(clk_in))?then
?clk?<=?not?clk;--25MHz
??????end?if;
???end?process;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=908

  • 2-240Q91U202327.doc
    下载

相关推荐