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

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

09/10 08:28
303
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2410101S005615.doc

共1个文件

名称:赛车游戏设计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

演示视频:

设计文档:

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;

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

  • 2-2410101S005615.doc
    下载

相关推荐