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

小鸟游戏设计VHDL代码Quartus DE1-SOC开发板

09/09 11:20
625
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2410101QI6344.doc

共1个文件

名称:小鸟游戏设计VHDL代码Quartus  DE1-SOC开发板

软件:Quartus

语言:VHDL

代码功能:

小鸟躲避游戏VGA显示器DE1-SOC开发板

通过按键可以让小鸟飞起来,松开按键小鸟会自动降落,若不断点击的话,小鸟会越飞越高,所以控制飞行时要做到起伏有致才能让小鸟飞得平稳。前方会无规律的长出管道,若小鸟触碰管道则游戏结束。

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

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

DE1-SOC开发板.png

演示视频:

设计文档:

整体仿真图

分频模块

游戏控制模块

游戏绘制模块

Lsfr随机数模块

数码管显示模块

上板效果

部分代码展示:

LIBRARY ieee;
USE ieee.std_logic_1164.all; 
ENTITY bird_game IS 
PORT
(
clk :  IN  STD_LOGIC;
key0 :  IN  STD_LOGIC;--up key
key1 :  IN  STD_LOGIC;--down key
key2 :  IN  STD_LOGIC;--start
key3 :  IN  STD_LOGIC;--retry
h_sync :  OUT  STD_LOGIC;
v_sync :  OUT  STD_LOGIC;
VGA_CLK       : OUT STD_LOGIC;
    VGA_BLANK_N   : OUT STD_LOGIC;
blue :  OUT  STD_LOGIC_VECTOR(3 DOWNTO 0);
green :  OUT  STD_LOGIC_VECTOR(3 DOWNTO 0);
red :  OUT  STD_LOGIC_VECTOR(3 DOWNTO 0);
hex :  OUT  STD_LOGIC_VECTOR(6 DOWNTO 0)
);
END bird_game;
ARCHITECTURE rtl OF bird_game IS 
COMPONENT game_draw
PORT(up_key : IN STD_LOGIC;
 down_key : IN STD_LOGIC;
 Clock : IN STD_LOGIC;
 GAME_RESET : IN STD_LOGIC;
 Random : IN STD_LOGIC_VECTOR(9 DOWNTO 0);
 State : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
 Horiz_sync : OUT STD_LOGIC;
 Vert_sync : OUT STD_LOGIC;
VGA_CLK       : OUT STD_LOGIC;
    VGA_BLANK_N   : OUT STD_LOGIC;
 Blue : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
 energy : OUT STD_LOGIC_VECTOR(31 DOWNTO 0);
 Green : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
 life : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
 pixel_column_out : OUT STD_LOGIC_VECTOR(9 DOWNTO 0);
 pixel_row_out : OUT STD_LOGIC_VECTOR(9 DOWNTO 0);
 Red : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
);
END COMPONENT;
COMPONENT clk_div
PORT(clk_in : IN STD_LOGIC;
 clk_out : OUT STD_LOGIC
);
END COMPONENT;
COMPONENT sevenseg_decoder
PORT(digit : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
 LED_out : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
);
END COMPONENT;
COMPONENT lsfr
PORT(CLOCK : IN STD_LOGIC;
 RANDOM : OUT STD_LOGIC_VECTOR(9 DOWNTO 0)
);
END COMPONENT;
COMPONENT game_ctrl
PORT(CLOCK : IN STD_LOGIC;
 start_key : IN STD_LOGIC;
 retry_key : IN STD_LOGIC;
 RESET : IN STD_LOGIC;
 LIFE : IN STD_LOGIC_VECTOR(2 DOWNTO 0);
 Game_RESET : OUT STD_LOGIC;
 score: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
 STATE_OUT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0)
);
END COMPONENT;
SIGNALclkin :  STD_LOGIC;
SIGNALenergy :  STD_LOGIC_VECTOR(31 DOWNTO 0);
SIGNALGAME_RESET :  STD_LOGIC;
SIGNALlife :  STD_LOGIC_VECTOR(2 DOWNTO 0);
SIGNALpix_col_out :  STD_LOGIC_VECTOR(9 DOWNTO 0);
SIGNALpix_row_out :  STD_LOGIC_VECTOR(9 DOWNTO 0);
SIGNALrandom :  STD_LOGIC_VECTOR(9 DOWNTO 0);
SIGNALstate_out :  STD_LOGIC_VECTOR(2 DOWNTO 0);
SIGNALreset_val :  STD_LOGIC;
SIGNALup_key_n :  STD_LOGIC;
SIGNALdown_key_n :  STD_LOGIC;
SIGNAL   score: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN 
clk_div_inst : clk_div
PORT MAP(clk_in => clk,
 clk_out => clkin);
reset_val <= '0';
game_draw_inst : game_draw
PORT MAP(up_key => key0,
 down_key => key1,
 Clock => clkin,
 GAME_RESET => GAME_RESET,
 Random => random,
 State => state_out,
 VGA_CLK =>VGA_CLK,
 VGA_BLANK_N =>VGA_BLANK_N,
 Horiz_sync => h_sync,
 Vert_sync => v_sync,
 Blue => blue,
 Green => green,
 life => life,
 Red => red);

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

  • 2-2410101QI6344.doc
    下载

相关推荐