名称:小鸟游戏设计VHDL代码Quartus? DE1-SOC开发板
软件:Quartus
语言:VHDL
代码功能:
通过按键可以让小鸟飞起来,松开按键小鸟会自动降落,若不断点击的话,小鸟会越飞越高,所以控制飞行时要做到起伏有致才能让小鸟飞得平稳。前方会无规律的长出管道,若小鸟触碰管道则游戏结束。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE1-SOC开发板验证,DE1-SOC开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
整体仿真图
分频模块
游戏控制模块
游戏绘制模块
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
阅读全文
441