名稱:電子拔河游戲機(jī)VHDL代碼Quartus仿真
軟件:Quartus
語(yǔ)言:VHDL
代碼功能:
電子拔河游戲機(jī)
電子拔河游戲機(jī)是一種能容納甲乙雙方參賽游戲電路。由一排發(fā)光二極管表示拔河的“電子繩”。由甲乙雙方通過按紐開關(guān)使發(fā)光二極管向一方的終點(diǎn)延伸當(dāng)延伸到某方的最后一個(gè)發(fā)光二極管時(shí),則該方獲勝,連續(xù)比賽多局以定勝負(fù)。
基本要求
設(shè)計(jì)一個(gè)能進(jìn)行拔河游戲的電路。
2、電路使用9個(gè)發(fā)光二極管,開機(jī)后只有中間一個(gè)發(fā)亮,此即拔河的中心點(diǎn)。
3、游戲雙方各持一個(gè)按鈕,迅速地、不斷地按動(dòng),產(chǎn)生脈沖,誰(shuí)按得快,亮點(diǎn)就向誰(shuí)的方向移動(dòng),每按一次,亮點(diǎn)移動(dòng)一次。
4、亮點(diǎn)移到任一方終端二極管時(shí),這一方就獲勝,此時(shí)雙方按鈕均無(wú)作用,輸出保持,只有復(fù)位后才使亮點(diǎn)恢復(fù)到中心。
5、用數(shù)碼管顯示獲勝者的盤數(shù)。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設(shè)計(jì)文檔:
1. 工程文件
2. 程序文件
原理圖文件
代碼文件
3. 程序編譯
4. RTL圖
5. 仿真圖
整體仿真圖
拔河控制模塊仿真圖
顯示模塊仿真圖
部分代碼展示:
library?IEEE; use?IEEE.std_logic_1164.all; use?IEEE.std_logic_unsigned.all; --拔河游戲 entity?bahe?is port?( ????--?CLOCK ????CLK:?in?std_logic; ????--?SEG7 ????HEX0:?out?std_logic_vector(7?downto?0);--數(shù)碼管1 ????HEX1:?out?std_logic_vector(7?downto?0);--數(shù)碼管2 ????--?KEY?(debounced) ????Button1:?in?std_logic;--選手1 ?Button2:?in?std_logic;--選手2 ????reset_n????????:?IN?STD_LOGIC;--復(fù)位信號(hào),低有效? ????restart????????:?IN?STD_LOGIC;--裁判控制重新開始 ????--?LED ????LEDR:?out?std_logic_vector(8?downto?0) ?); end?bahe; architecture?behav?of?bahe?is ???? ?signal?score_1????????:?STD_LOGIC_VECTOR(3?DOWNTO?0);--選手1分?jǐn)?shù) ????signal?score_2????????:?STD_LOGIC_VECTOR(3?DOWNTO?0);--選手2分?jǐn)?shù) ? ????component?BIN2HEX ????port?( ????????bin:?in?std_logic_vector(3?downto?0); ????????hex:?out?std_logic_vector(7?downto?0));? ????end?component; ???? ????--?provide?the?component?of?your?design?here component?bahe_ctrl ???PORT?( ??????clk???????:?IN?STD_LOGIC;--標(biāo)準(zhǔn)時(shí)鐘 ??????reset_n????????:?IN?STD_LOGIC;--復(fù)位信號(hào),低有效? ??????restart????????:?IN?STD_LOGIC;--裁判控制重新開始 ??????Button1???????:?IN?STD_LOGIC;--選手1 ??????Button2???????:?IN?STD_LOGIC;--選手2 ??????led????????????:?OUT?STD_LOGIC_VECTOR(8?DOWNTO?0);--9個(gè)led ??????score_1????????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--選手1分?jǐn)?shù) ??????score_2????????:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)--選手2分?jǐn)?shù) ???); END?component; ???? begin ????--拔河控制模塊 U_bahe_ctrl:?bahe_ctrl ???port?map??( ??????clk=>CLK, ??????reset_n=>reset_n, ??????restart=>restart, ??????Button1=>Button1, ??????Button2=>Button2, ??????led=>LEDR, ??????score_1=>score_1, ??????score_2=>score_2 ???); ????--數(shù)碼管顯示模塊 ????U_HEX0:?BIN2HEX ?port?map?( ?bin=>score_1,? ?hex=>HEX0 ?); ?--數(shù)碼管顯示模塊 ????U_HEX1:?BIN2HEX? ?port?map?( ?bin=>score_2, ?hex=>HEX1 ?); end?behav;
點(diǎn)擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=494