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

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

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

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
    下载

相关推荐