名稱:Quartus乒乓球游戲電路verilog代碼DE2-115開發(fā)板
軟件:Quartus
語言:Verilog
代碼功能:
乒乓球游戲電路
設計任務:
設計一個數(shù)字系統(tǒng),模擬選手 A(左方)和選手 B(右方)的乒乓球比賽游戲,要求具有如下功能:
1、裁判按開始鍵后開始比賽,首先左方 A 發(fā)球,每方發(fā)5個球后自動換發(fā)球;
2、能模擬乒乓球臺上球的運動軌跡和擊球過程;
3、能自動判球,統(tǒng)計顯示雙方得分情況,先獲得 15 分者獲勝;
4、判球標準為 : 球到達一方的球拍位置時,若該選手未按擊球鍵則對方得分;若球未到達擊球位置,選手提前擊球則擊球無效,但不失分。
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在DE2-115開發(fā)板驗證,DE2-115開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. 管腳分配
5. RTL圖
狀態(tài)圖
6. 仿真圖
按鍵下降沿檢測模塊
游戲控制模塊
數(shù)碼管顯示模塊
部分代碼展示:
`timescale?1ns?/?1ps module?pingpang_game( ????input?clk_in,//50MHz ?input?reset_n,//復位 ????input?start,//開始 ????input?button_1,//選手1? ????input?button_2,//選手2? ?output?win_led,//獲勝提示 ????output?[5:0]?led,//led,高電平亮?high?light ????output?[7:0]?HEX0,//數(shù)碼管0 ????output?[7:0]?HEX1,//數(shù)碼管1 ????output?[7:0]?HEX2,//數(shù)碼管2 ????output?[7:0]?HEX3//數(shù)碼管3? ????); wire?button_posedge_1; wire?button_posedge_2; wire?[7:0]?score_1; wire?[7:0]?score_2; //按鍵下降沿模塊 key_debounce?i1_key_debounce( ?????.?clk(clk_in), ?????.?button_in(button_1),//輸入 ??.?button_pos(button_posedge_1)//消抖后按鍵上升沿 ); //按鍵下降沿模塊 key_debounce?i2_key_debounce( ?????.?clk(clk_in), ?????.?button_in(button_2),//輸入 ??.?button_pos(button_posedge_2)//消抖后按鍵上升沿 ); ? //游戲控制模塊 game_ctrl?i_game_ctrl( ????.?clk_in(clk_in), ?.?reset_n(reset_n), ????.?start(start),//復位 ????.?led(led),//led,高電平亮?high?light ?.?win_led(win_led), ????.?button_posedge_1(button_posedge_1),//消抖后按鍵上升沿 ????.?button_posedge_2(button_posedge_2),//消抖后按鍵上升沿 ????.?score_1(score_1),//分數(shù)1 ????.?score_2(score_2)//分數(shù)2 ????); //數(shù)碼管顯示模塊 display_num?i_display_num( .?clk(clk_in), .?score_1(score_1),//分數(shù)1 .?score_2(score_2),//分數(shù)2 .?HEX0(HEX0),//數(shù)碼管0 .?HEX1(HEX1),//數(shù)碼管1 .?HEX2(HEX2),//數(shù)碼管2 .?HEX3(HEX3)?//數(shù)碼管3 ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=390