名稱:乒乓球游戲控制器VHDL(代碼在文末付費(fèi)下載)
軟件:Quartus
語言:VHDL
要求:
綜合實(shí)驗(yàn)乒乓球游戲設(shè)計要求:
兩人的乒乓球游戲機(jī)是由8個 LED 表示球臺,8個 LED 燈的編號為1~8,兩名選手分別是 A 和 B ,當(dāng) A 選手準(zhǔn)備開球時,led1亮,當(dāng) A 選手按下?lián)羟蜴I, led 燈從1開始往8號以流水燈形式流動表示乒乓球的移動,當(dāng)燈超過5號燈(包含5號燈) B 選手可以擊球,當(dāng)燈在5號8號之間都表示 B 擊球有效,擊球后燈返回移動,超過4號燈之后, A 選手可以擊球,當(dāng)燈在4號~1號燈之間表示 A 擊球有效。周而復(fù)始。
本代碼已在實(shí)驗(yàn)箱驗(yàn)證:
演示視頻:
部分代碼展示
LIBRARY?ieee; ???USE?ieee.std_logic_1164.all; ???USE?ieee.std_logic_unsigned.all; --乒乓球游戲 ENTITY?pingpang_game?IS ???PORT?( ??????clk??????????:?IN?STD_LOGIC;--時鐘 ??????rst_n????????:?IN?STD_LOGIC;--復(fù)位 ??????play_A????????:?IN?STD_LOGIC;--A按鍵 ??????play_B????????:?IN?STD_LOGIC;--B按鍵 ??????led??????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--LED ???); END?pingpang_game; ARCHITECTURE?behave?OF?pingpang_game?IS --分頻模塊 component?div_clk?IS ???PORT?( ??????clk??????????:?IN?STD_LOGIC;--時鐘 ??rst_n????????:?IN?STD_LOGIC;--復(fù)位 ??????clk_1Hz??????????:?OUT?STD_LOGIC--1Hz ???); END?component; --乒乓球游戲 component?game?IS ???PORT?( ??????clk??????????:?IN?STD_LOGIC;--時鐘 ??????rst_n????????:?IN?STD_LOGIC;--復(fù)位 ??clk_1Hz??????:?IN?STD_LOGIC;--1Hz時鐘 ??????play_A????????:?IN?STD_LOGIC;--A按鍵 ??????play_B????????:?IN?STD_LOGIC;--B按鍵 ??????led??????????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0)--LED ???); END?component; ???SIGNAL?clk_1Hz???????:?STD_LOGIC; BEGIN --分頻模塊 U_div_clk:?div_clk ???PORT?MAP( ??????clk??????????=>clk,--時鐘 ??rst_n????????=>rst_n,--復(fù)位 ??????clk_1Hz??????=>clk_1Hz--1Hz ???); --乒乓球游戲 U_game:?game ???PORT?MAP( ??????clk??????????=>clk,--時鐘 ??????rst_n????????=>rst_n,--復(fù)位 ??clk_1Hz??????=>clk_1Hz,--1Hz時鐘 ??????play_A????????=>play_A,--A按鍵 ??????play_B????????=>play_B,--B按鍵 ??????led??????????=>led--LED ???); ??? END?behave;
設(shè)計文檔(文檔點(diǎn)擊可下載):
1. 工程文件
2. 程序文件
3. 程序編譯
4. 管腳分配
5. RTL圖
狀態(tài)圖
6. 仿真圖
整體仿真圖
分頻模塊仿真圖
控制模塊仿真圖
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=177