名稱:8人搶答電路設(shè)計Verilog代碼Quartus仿真
軟件:Quartus
語言:Verilog
代碼功能:8人搶答電路設(shè)計
內(nèi)容及要求
完成8人搶答電路設(shè)計。
(1)按鍵用作搶答輸入,順序編號1~8;
(2)數(shù)碼管顯示搶答得勝的號碼;
(3)由控制信號決定新一輪搶答的開始;
FPGA代碼Verilog/VHDL代碼資源下載:www.hdlcode.com
演示視頻:
設(shè)計文檔:
1. 功能描述
8人搶答電路設(shè)計
內(nèi)容及要求
完成8人搶答電路設(shè)計。
(1)按鍵用作搶答輸入,順序編號1~8;
(2)數(shù)碼管顯示搶答得勝的號碼;
(3)由控制信號決定新一輪搶答的開始;
2. 工程文件
3. 程序文件
4. 程序編譯
5. RTL圖
6. 程序仿真
整體仿真圖
搶答控制模塊
顯示模塊
部分代碼展示:
//搶答器控制模塊 module?responder_ctrl ( input?clk,//100Hz時鐘 input?reset,//高電平有效 input?key_main_in,//主控,控制開始 input?key_1_pos,//搶答按鍵輸入1 input?key_2_pos,//搶答按鍵輸入2 input?key_3_pos,//搶答按鍵輸入3 input?key_4_pos,//搶答按鍵輸入4 input?key_5_pos,//搶答按鍵輸入5 input?key_6_pos,//搶答按鍵輸入6 input?key_7_pos,//搶答按鍵輸入7 input?key_8_pos,//搶答按鍵輸入8 output?reg?[3:0]?responder_num//搶答指示1~8 ); parameter?s_idle=3'd0;//空閑狀態(tài) parameter?s_start=3'd1;//開始 parameter?s_qiangda=3'd2;//搶答狀態(tài) parameter?s_end=3'd3;//搶答結(jié)束 reg?[2:0]?state=3'd0; //狀態(tài)機(jī)控制 always@(posedge?clk) if(reset) state<=s_idle;//空閑狀態(tài) else case(state) s_idle: if(key_main_in)//主控,按鍵輸入。控制開始 state<=s_start;//開始狀態(tài) else state<=s_idle;//空閑狀態(tài) s_start: state<=s_qiangda;//搶答狀態(tài) s_qiangda: if(key_1_pos?|?key_2_pos?|?key_3_pos?|?key_4_pos?|?key_5_pos?|?key_6_pos?|?key_7_pos?|?key_8_pos) state<=s_end;//結(jié)束 else state<=s_qiangda;//搶答狀態(tài) s_end: if(key_main_in)//主控,控制開始 state<=s_start;//開始狀態(tài) else state<=s_end;//結(jié)束 default:state<=s_idle;//空閑狀態(tài) endcase //輸出搶答者編號responder_num always@(posedge?clk) if(reset) responder_num<=4'd0; else if(state==s_qiangda) if(key_1_pos) responder_num<=4'd1;//1號搶答 else?if(key_2_pos) responder_num<=4'd2;//2號搶答 else?if(key_3_pos) responder_num<=4'd3;//3號搶答 else?if(key_4_pos)
閱讀全文