• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

VGA顯示器的彈球游戲DE1-SoC開發(fā)板乒乓球小球游戲VHDL

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

1-231101151G3313.doc

共1個文件

名稱:VGA顯示器的彈球游戲DE1-SoC開發(fā)板乒乓球小球游戲VHDL(代碼在文末下載)

軟件:Quartus II

語言:VHDL

代碼功能:

彈球游戲,設(shè)計一個彈球游戲,并在VGA顯示器上顯示。

1、可以控制游戲開始,開始時數(shù)碼管顯示0分。

2、使用按鍵控制球拍的運動,當(dāng)控制球拍接住球時,分?jǐn)?shù)加1。

3、彈球觸碰屏幕邊緣或者球拍時可以反彈。

4、可以控制小球的移動速度和球拍的大小。

4、當(dāng)未成功接球時,游戲結(jié)束。

本代碼已在DE1-SoC開發(fā)板驗證,其他開發(fā)板可以修改管腳適配,開發(fā)板如下:

VGA_ball_DE1_SoC.png

演示視頻:

FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com

部分代碼展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
--頂層模塊
ENTITY?vga_controller_top?IS
???PORT?(??????
??????clk_50M???:?IN?STD_LOGIC;--時鐘
??????rst???????:?IN?STD_LOGIC;--復(fù)位
??????speed_sw??:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);--速度控制按鍵
??????size_sw???:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);--大小控制按鍵
??????btn_up????:?IN?STD_LOGIC;--上下按鍵
??????btn_down??:?IN?STD_LOGIC;--上下按鍵
??????hsync?????:?OUT?STD_LOGIC;--行場同步信號
??????vsync?????:?OUT?STD_LOGIC;--行場同步信號
VGA_CLK???????:?OUT?STD_LOGIC;--vga時鐘
VGA_BLANK_N???:?OUT?STD_LOGIC;
HEX???????:?OUT?STD_LOGIC_VECTOR(6?DOWNTO?0);--數(shù)碼管
??????rgb???????:?OUT?STD_LOGIC_VECTOR(11?DOWNTO?0)--VGA三色數(shù)據(jù)
???);
END?vga_controller_top;
ARCHITECTURE?behave?OF?vga_controller_top?IS
--復(fù)位按鍵同步模塊
???COMPONENT?aiso_rst?IS
??????PORT?(
?????????clk???????:?IN?STD_LOGIC;
?????????reset?????:?IN?STD_LOGIC;
?????????reset_s???:?OUT?STD_LOGIC
??????);
???END?COMPONENT;
???--VGA同步模塊
???COMPONENT?vga_sync?IS
??????PORT?(
?????????clk???????:?IN?STD_LOGIC;
?????????rst???????:?IN?STD_LOGIC;
VGA_CLK???????:?OUT?STD_LOGIC;
VGA_BLANK_N???:?OUT?STD_LOGIC;
?????????hsync?????:?OUT?STD_LOGIC;
?????????vsync?????:?OUT?STD_LOGIC;
?????????pixel_x???:?OUT?STD_LOGIC_VECTOR(9?DOWNTO?0);
?????????pixel_y???:?OUT?STD_LOGIC_VECTOR(9?DOWNTO?0);
?????????video_on??:?OUT?STD_LOGIC
??????);
???END?COMPONENT;
????--按鍵同步模塊??
???COMPONENT?debounce?IS
??????PORT?(
?????????clk???????:?IN?STD_LOGIC;
?????????reset?????:?IN?STD_LOGIC;
?????????sw????????:?IN?STD_LOGIC;
?????????db????????:?OUT?STD_LOGIC
??????);
???END?COMPONENT;
???--產(chǎn)生墻、球和球拍
???COMPONENT?graphic_generator?IS
??????PORT?(
?????????clk???????:?IN?STD_LOGIC;
?????????rst???????:?IN?STD_LOGIC;
?????????speed_sw??:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);
?????????size_sw???:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);
?????????btn???????:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);
?????????pixel_x???:?IN?STD_LOGIC_VECTOR(9?DOWNTO?0);
?????????pixel_y???:?IN?STD_LOGIC_VECTOR(9?DOWNTO?0);
?????????video_on??:?IN?STD_LOGIC;
score?????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);
?????????rgb???????:?OUT?STD_LOGIC_VECTOR(11?DOWNTO?0)
??????);
???END?COMPONENT;
--數(shù)碼管模塊
COMPONENT?display?is
??PORT(
?score:IN?STD_LOGIC_VECTOR(3?DOWNTO?0);
???????HEX:out?STD_LOGIC_VECTOR(6?DOWNTO?0)
?);
end?COMPONENT;
???
SIGNAL?clk?????????:?STD_LOGIC:='0';
???SIGNAL?video_on????:?STD_LOGIC;
???SIGNAL?rst_s???????:?STD_LOGIC;
???SIGNAL?pixel_x?????:?STD_LOGIC_VECTOR(9?DOWNTO?0);
???SIGNAL?pixel_y?????:?STD_LOGIC_VECTOR(9?DOWNTO?0);
???SIGNAL?db_btn_up???:?STD_LOGIC;
???SIGNAL?db_btn_down?:?STD_LOGIC;
???SIGNAL?btn_up_dowm?:?STD_LOGIC_VECTOR(1?DOWNTO?0);
???SIGNAL?score???????:?STD_LOGIC_VECTOR(3?DOWNTO?0);
???--?Declare?intermediate?signals?for?referenced?outputs
???SIGNAL?hsync_buf?:?STD_LOGIC;
???SIGNAL?vsync_buf?:?STD_LOGIC;
???SIGNAL?rgb_buf???:?STD_LOGIC_VECTOR(11?DOWNTO?0);
BEGIN
???--?Drive?referenced?outputs
???hsync?<=?hsync_buf;
???vsync?<=?vsync_buf;
???rgb?<=?rgb_buf;
???
clk?<=?clk_50M;
???--復(fù)位按鍵同步模塊
???u0?:?aiso_rst
??????PORT?MAP?(
?????????clk??????=>?clk,
?????????reset????=>?rst,
?????????reset_s??=>?rst_s
??????);
?
????--VGA同步模塊
???u1?:?vga_sync
??????PORT?MAP?(
?????????clk???????=>?clk,
?????????rst???????=>?rst_s,
VGA_CLK???=>?VGA_CLK,
VGA_BLANK_N?=>?VGA_BLANK_N,
?????????hsync?????=>?hsync_buf,
?????????vsync?????=>?vsync_buf,
?????????pixel_x???=>?pixel_x,
?????????pixel_y???=>?pixel_y,
?????????video_on??=>?video_on
??????);
???
???
????--按鍵同步模塊?
???u2?:?debounce
??????PORT?MAP?(
?????????clk????=>?clk,
?????????reset??=>?rst_s,
?????????sw?????=>?btn_up,
?????????db?????=>?db_btn_up
??????);
???
???
????--按鍵同步模塊?
???u3?:?debounce
??????PORT?MAP?(
?????????clk????=>?clk,
?????????reset??=>?rst_s,
?????????sw?????=>?btn_down,
?????????db?????=>?db_btn_down
??????);
???
???btn_up_dowm?<=?(db_btn_down?&?db_btn_up);
?--產(chǎn)生墻、球和球拍
???u4?:?graphic_generator
??????PORT?MAP?(
?????????clk???????=>?clk,
?????????rst???????=>?rst_s,
?????????btn???????=>?btn_up_dowm,
?????????pixel_x???=>?pixel_x,
?????????pixel_y???=>?pixel_y,
?????????
?????????speed_sw??=>?speed_sw,
?????????size_sw???=>?size_sw,
?????????video_on??=>?video_on,
score?????=>?score,--游戲分?jǐn)?shù)
?????????rgb???????=>?rgb_buf
??????);
u5:?display
??PORT?MAP(
?score?=>?score,--游戲分?jǐn)?shù)
???????HEX?=>?HEX
?);
END?behave;

設(shè)計文檔:

1. 工程文件

2. 程序文件

3. 程序編譯

4. RTL圖

5. Testbench

6. 仿真圖

整體仿真圖

復(fù)位按鍵同步模塊

VGA同步模塊

按鍵同步模塊

產(chǎn)生墻、球和球拍模塊

數(shù)碼管模塊

點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=236

  • 1-231101151G3313.doc
    下載

相關(guān)推薦