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

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

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

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

相关推荐