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

基于8位LED燈的打地鼠游戲設(shè)計(jì)VHDL代碼Basys2開發(fā)板

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

名稱:基于8位LED燈的打地鼠游戲設(shè)計(jì)VHDL代碼Basys2開發(fā)板(代碼在文末下載)

軟件:ISE

語言:VHDL

代碼功能:

兩種地鼠的產(chǎn)生方式:

①用8位LED燈對應(yīng)8個地洞,用4×4矩陣鍵盤中的1~8鍵對應(yīng)打的動作。

②用4位LED燈指示0001至111對應(yīng)15個地洞,用4×4矩陣鍵盤中的15個按鍵對應(yīng)打的動作。

功能:

①按“開始”鍵進(jìn)入游戲狀態(tài),每輪游戲計(jì)時20秒。每隔一定時間隨機(jī)出現(xiàn)一只地鼠,此時如果沒有及時按下按鍵或者雖然有鍵按下但是與地鼠出現(xiàn)的位置不致,表示沒有打中。

如果按鍵值與地鼠出現(xiàn)的位置一致,表示打中了,打中一只加1分。數(shù)碼管顯示得分。

②游戲結(jié)束后再按“開始”鍵,得分清零,開始新游戲。

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

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

basys2.png

工程文件:

81416478-f45c-4bc4-b313-9ccf68731daf.png

程序文件:

e400541c-e63d-4f08-a151-ba5f69dc0fd8.png

程序編譯:

63a19cfe-b522-4d3b-bfc3-c4ce05d5a781.png

管腳分配:

3658132c-21f1-45d4-9241-8ad9467d3a73.png

RTL圖:

7057be87-6b7c-4108-84e6-2d8293ce16be.png

部分代碼展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
ENTITY?dadishu?IS
???PORT?(
??????clk_50M?????:?IN?STD_LOGIC;
??????reset???????:?IN?STD_LOGIC;
??????L_row???????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--矩陣鍵盤列
??????H_col???????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--矩陣鍵盤行
??????start???????:?IN?STD_LOGIC;--開始
??????LED?????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);--led
??????bit_select??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--數(shù)碼管位選
??????seg_select??:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--數(shù)碼管段選
???);
END?dadishu;
ARCHITECTURE?behave?OF?dadishu?IS
--分頻模塊
COMPONENT?fengping?IS
???PORT?(
??????clk_50M??:?IN?STD_LOGIC;
??????clk_div??:?OUT?STD_LOGIC--50M分頻為100KHz
???);
END?COMPONENT;
--控制模塊
???COMPONENT?control?IS
??????PORT?(
?????????clk_div?????:?IN?STD_LOGIC;
?????????start???????:?IN?STD_LOGIC;
?????????LED?????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
?????????key_num?????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);
?????????random_num??:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);
?????????score???????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)
??????);
???END?COMPONENT;
--隨機(jī)數(shù)產(chǎn)生模塊
COMPONENT?LFSR?IS
???PORT?(
??????clk?????????:?IN?STD_LOGIC;
??????reset_p?????:?IN?STD_LOGIC;
??????random_num??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)
???);
END?COMPONENT;???
--按鍵模塊
COMPONENT?keyboard?IS
???PORT?(
??????clk_div??:?IN?STD_LOGIC;--100KHZ?
??????reset???????:?IN?STD_LOGIC;--復(fù)位
??????L_row???????:?IN?STD_LOGIC_VECTOR(3?DOWNTO?0);--行?
??????H_col???????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--列?
??????key_number??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)--按鍵鍵值
???);
END?COMPONENT;
--顯示模塊
COMPONENT?display?IS
???PORT?(
??????clk????????????:?IN?STD_LOGIC;?
??????score??????????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);--分?jǐn)?shù)??????
??????bit_select?????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--數(shù)碼管位選
??????seg_select?????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--數(shù)碼管段選
???);
END?COMPONENT;
???SIGNAL?clk_div??????????:?STD_LOGIC;
???SIGNAL?random_num???????:?STD_LOGIC_VECTOR(3?DOWNTO?0);
???SIGNAL?key_num??????????:?STD_LOGIC_VECTOR(3?DOWNTO?0);
???SIGNAL?score????????????:?STD_LOGIC_VECTOR(7?DOWNTO?0);
BEGIN
--調(diào)用分頻模塊
???i_fengping?:?fengping
??????PORT?MAP?(
?????????clk_50m??=>?clk_50M,
?????????clk_div??=>?clk_div
??????);
???
???
???--調(diào)用隨機(jī)數(shù)模塊
???i_LFSR?:?LFSR
??????PORT?MAP?(
?????????clk?????????=>?clk_div,
?????????reset_p?????=>?reset,
?????????random_num??=>?random_num
??????);
???
???
???--調(diào)用控制模塊
???i_control?:?control
??????PORT?MAP?(
?????????clk_div?????=>?clk_div,
?????????start???????=>?start,
?????????LED?????????=>?LED,
?????????key_num?????=>?key_num,
?????????random_num??=>?random_num,
?????????score???????=>?score
??????);
???
???
???--調(diào)用按鍵模塊
???i_keyboard?:?keyboard
??????PORT?MAP?(
?????????clk_div?????=>?clk_div,
?????????reset???????=>?reset,
?????????l_row???????=>?L_row,
?????????h_col???????=>?H_col,
?????????key_number??=>?key_num
??????);
???
???
???--調(diào)用顯示模塊
???i_display?:?display
??????PORT?MAP?(
?????????clk?????????=>?clk_div,
?????????score???????=>?score,
?????????bit_select??=>?bit_select,
?????????seg_select??=>?seg_select
??????);
???
END?behave;

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

相關(guān)推薦