名稱:4人競賽數(shù)字搶答器vivado軟件verilog代碼ego1開發(fā)板(代碼在文末下載)
軟件:VIVADO
語言:Verilog
代碼功能:
數(shù)字搶答器的設(shè)計任務(wù)說明:
設(shè)計一個可供4人競賽的數(shù)字搶答器。
(1)具有定時搶答功能,且一次搶答的時間由主持人設(shè)定,本搶答器的時間 設(shè)定為60秒以內(nèi),當主持人啟動“開始”開關(guān)后,定時器開始計時。
(2)設(shè)定的搶答時間內(nèi),選手可以搶答,搶答成功定時器停止工作,顯示器上顯示選手的號碼和搶答時間。并保持到主持人按復(fù)位鍵
(3)搶答器開始時數(shù)碼管顯示序號0,選手搶答實行優(yōu)先鎖存,優(yōu)先搶答選手 的編號一直保持到主持人將系統(tǒng)清除為止。搶答后顯示優(yōu)先搶答者序號,并且不出現(xiàn)其他搶答者的序號。
(4)當設(shè)定的時間到,而無人搶答時,本次搶答無效,發(fā)出報警指示(可以 用LED燈亮表示),并禁止搶答,定時器上顯示00。主持人按動復(fù)位按 鈕后,搶答可以重新開始。
注:附加功能根據(jù)本人能力自行添加(如:自動積分、減分等等)
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
本代碼已在ego1開發(fā)板驗證,開發(fā)板如下,其他開發(fā)板可以修改管腳適配:
演示視頻:
設(shè)計文檔:
1. 工程文件
2. 程序文件
3. 程序編譯
4. RTL圖
5. 管腳分配
6. Testbench
7. 仿真圖
整體仿真圖
分頻模塊
搶答器控制模塊
數(shù)碼管顯示模塊
部分代碼展示:
//4人搶答器 module?responder_top ( input?clk,//100Mhz input?reset,//復(fù)位 input?key_main_in,//主持人主控S0 input?key_1_in,//搶答按鍵輸入1 input?key_2_in,//搶答按鍵輸入2 input?key_3_in,//搶答按鍵輸入3 input?key_4_in,//搶答按鍵輸入4 output?beep,//報警輸出(LED) output??[3:0]?weixuan,//位選 output??[7:0]?duanxian//段選 ); wire?[2:0]?cur_state;//當前狀態(tài) wire?[7:0]?time_down;//倒計時10_0 wire?[3:0]?responder_num;//搶答指示1~6 wire?clk_1Hz;//1Hz //搶答器控制模塊 responder_ctrl?i_responder_ctrl ( .?clk(clk),//50Mhz .?reset(reset),//高電平有效 .?clk_1Hz(clk_1Hz),//1Hz時鐘 .?key_main_in(key_main_in),//主持人主控 .?key_1_pos(key_1_in),//搶答按鍵輸入1 .?key_2_pos(key_2_in),//搶答按鍵輸入2 .?key_3_pos(key_3_in),//搶答按鍵輸入3 .?key_4_pos(key_4_in),//搶答按鍵輸入4 .?beep(beep),//蜂鳴器輸出 .?time_down(time_down),//倒計時 .?cur_state(cur_state), .?responder_num(responder_num)//搶答指示1~6 ); //分頻模塊 div_1Hz?i_div_1Hz ( .?clk(clk),//50M .?reset(key_main_in),//復(fù)位 .?clk_1Hz(clk_1Hz)//1Hz時鐘 ); //數(shù)碼管顯示模塊 display?i_display ( .?clk(clk), .?time_down(time_down),//倒計時10_0 .?responder_num(responder_num),//搶答指示1~6 .?weixuan(weixuan),//位選,高電平亮 .?duanxian(duanxian)//段選,高電平亮 ); endmodule
點擊鏈接獲取代碼文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=314