赛车游戏设计VHDL代码Quartus DE1-SOC开发板

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

软件:Quartus

语言:VHDL

代码功能:

模拟赛车游戏VGA显示器

1、设计一个简易的赛车游戏

2、提供6车道,通过按键控制小车移动

3、小车需要躲避其他车辆,避免碰撞

4、为简化设计,可以使用不同颜色方块表示小车


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

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

演示视频:

设计文档:

设计文档.doc

1、 工程文件


2、 程序文件


3、 程序编译


4、 RTL图


5、 管脚分配


部分代码展示:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.std_logic_unsigned.ALL;
use IEEE.NUMERIC_STD.ALL;
entity game_ctrl is
    Port ( reset : in  STD_LOGIC;
        speed : in  STD_LOGIC; 
  left_key: in STD_LOGIC;
  right_key: in STD_LOGIC;
           clk_vga : in  STD_LOGIC;
  show_en : in STD_LOGIC;
  h_count: in integer;
  v_count: in integer;
  score_display: out STD_LOGIC_VECTOR (7 downto 0);
  red: out STD_LOGIC_VECTOR (2 downto 0);
  green: out STD_LOGIC_VECTOR (2 downto 0);
  blue: out STD_LOGIC_VECTOR (1 downto 0)
  );
end game_ctrl;
architecture Behavioral of game_ctrl is
signal my_car,car1_color,car2_color,car3_color,car4_color,lines_color: STD_LOGIC_VECTOR (0 to 7):="00000000";
signal car1_pos,car2_pos,car3_pos,car4_pos: integer range 24800 to 408799;
signal my_car_left: integer range 0 to 800;
signal automove_time_cnt: integer range 0 to 499;
signal player_time_cnt: integer range 0 to 99999;
signal lines_pos: integer range 24800 to 47799;
signal restart: STD_LOGIC;
signal score: STD_LOGIC_VECTOR (7 downto 0);
signal score_cnt: integer range 0 to 50000000;
signal move_val : integer range 0 to 2;
begin
move_val<= 1 when speed='0' else 2;
process(clk_vga,reset)
begin
if(reset='1' or restart='1') then
lines_pos<=24800;
my_car_left<=429;
car1_pos<=248800;
car2_pos<=24800;
car3_pos<=192800;
car4_pos<=136800;
my_car <= "00000000";
car1_color <= "00000000";
car2_color <= "00000000";
car3_color <= "00000000";
car4_color <= "00000000";
lines_color <= "00000000";
automove_time_cnt <= 0;
player_time_cnt <= 0;
restart<='0';
score<="00000000";
elsif (clk_vga='1' and clk_vga'event) then
lines_pos<=24800;
if(automove_time_cnt=499) then
automove_time_cnt<=0;
if(car1_pos>328800) then
car1_pos<=24800;
score<=score+"00000001";
else car1_pos<=car1_pos+move_val;
end if;
if(car2_pos>328800) then
car2_pos<=24800;
score<=score+"00000001";
else car2_pos<=car2_pos+move_val;
end if;
if(car3_pos>328800) then
car3_pos<=24800;
score<=score+"00000001";
else car3_pos<=car3_pos+move_val;
end if;
if(car4_pos>328800) then
car4_pos<=24800;
score<=score+"00000001";
else car4_pos<=car4_pos+move_val;
end if;

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 赛车游戏设计VHDL代码Quartus DE1-SOC开发板

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员