




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
一、設計任務智力競賽搶答器VerilogHDL要求有6位參賽者進行搶答,有六個搶答信號進行搶答。當有搶答選手按下搶答鍵后系統能夠快速準確的判斷是那一組選手按下了搶答信號,由于系統比較小,速度比較快一般不會有同時按下的可能,所以只有六種狀態(tài),然后系統能夠根據這六種狀態(tài)進行適時的顯示和提示。當有選手按下以后就對搶答信號進行鎖存,其他選手的輸入無效。然后就是對搶答進行時間限制了,根據設定的時間進行倒計時,當倒計時完成還沒有人搶答的時候系統發(fā)出警報聲音提示時間已經到了。當有選手在主持人未按下搶答鍵搶答時視為超前搶答,系統顯示該選手號,同時蜂鳴器響,該搶答無效。還有清除復位鍵,搶答完成以后按復位鍵即可清除已有的狀態(tài)。通過VerilogHDL程序代碼實現系統的各個功能。二、設計目的與要求目的:理論聯系實際,鞏固和運用所學課程,提高分析、解決計算機技術實際問題的獨立工作能力,培養(yǎng)學生正確的設計思想,嚴肅認真、實事求是的科學態(tài)度和勇于探索的創(chuàng)新精神。通過對一個智力搶答器的設計,進一步加深對計算機原理以及數字電路應用技術方面的了解與認識,進一步熟悉數字電路系統設計、制作與調試的方法和步驟,通過Verilog程序的編寫,進一步熟悉VerilogHDL的語法知識;規(guī)范化訓練學生撰寫技術研究報告,提高書面表達能力。要求:掌握FPGA設計系統的一般方法。熟練掌握使用modelsim軟件設計較復雜的數字邏輯電路。培養(yǎng)學生獨立分析問題和解決實際問題的能力。課程設計的內容設計一搶答器,要求如下:(1)搶答臺數為6;(2)具有搶答開始后20s倒計時,20秒倒計時后6人搶答顯示超時,并報警;(3)能顯示超前搶答臺號并顯示犯規(guī)報警;(4)系統復位后進入搶答狀態(tài),當有一路搶答按鍵按下,該路搶答信號將其余各路搶答信號封鎖,同時鈴聲響起,直至該路按鍵松開,顯示牌顯示該路搶答臺號。四、系統設計方案根據系統設計要求可知,系統的輸入信號有:主持人按鈕inputEn,各選手的搶答按鈕分別是inputL1、inputL2、inputL3、inputL4,inputL5,inputL6,主持人和選手搶答按鈕都是低電平有效,系統復位信號clr(高電平有效),系統時鐘信號clk,系統的輸出信號有:六個人搶答成功與否的指示燈控制信號輸出口Led2,犯規(guī)搶答時報警器Buzzer(低電平有效)。本系統應具有的功能有:能夠準確的判斷出是哪位搶答者,當主持人沒按搶答時,有人搶答了則蜂鳴器報警,并顯示該選手號,當主持人按了搶答鍵時有人搶答了,同時封鎖搶答信號,其他選手搶答無效,不顯示該選手號。五、仿真過程與仿真結果仿真過程:使用ModelSim進行功能測試,首先在里面進行相應的設置,在工程文件夾下面會新建一個modelsim的文件夾,然后編寫實現功能的程序和測試文件,最后保存編譯執(zhí)行就可以進行功能仿真了。仿真結果:結果分析與討論:可以看到0時刻系統復位狀態(tài),2s時2號超前搶答(inputEn為高電平,inputL2為低電平),系統顯示2蜂鳴器并犯規(guī)報警(Buzzer為低電平),8s時系統復位狀態(tài),12s時4號選手先搶答成功(inputL4為低電平)顯示4,14s時3號選手后搶答,不顯示3,20s時系統復位。六、總結通過本次合成設計,我又一遍熟悉了VerilogHDL語言進行建模,并且通過實際操作學會了怎么使用Modelsim這個軟件來完成一個完整的課程設計。以及對基于FPGA的系統開發(fā)流程有了一個整體認識,我越來越認識到一點,編程對項目實現有著至關重要的,我們在硬件開發(fā)的過程中更應該重視編程,將編程看作是完善開發(fā)的不可缺少的一部分。雖然題目簡單,但這也磨練了我的意志。第一次做的太復雜了,然后一次次修改,做成最簡單功能的。在一次次的反復設計、論證和測試中,提高了邏輯分析能力、全面分析問題的能力以及發(fā)現問題、解決問題的能力。通過對各方面資料的收集,我的知識面也進一步拓寬了。同時,我也發(fā)現了自己的不足,像語言表達還比較差,不能更清楚地表達自己的意思,邏輯分析能力和編程能力有待提高,有些預先的想法都未能實現。在系統的結構設計上也還有很長的路需要走,這是需要時間去積累的。在今后的學習中我還得加以改進。七、程序系統主要VerilogHDL源程序:moduleQiangDaQi(clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,Led2,Buzzer);//一開始聲明有哪些端口inputclk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6;output[0:7]Led2;//Led2顯示選手號outputBuzzer;//低電平時蜂鳴器發(fā)出聲音regEnFlat=1'b0;//EnFlat為高電平時開始搶答reg[0:2]Led2=3'd0;regBuzzer=1'b1;always@(posedgeclk)//時鐘上升沿beginif(inputEn==1)//如果主持人沒按按鈕就有人搶答beginif(inputL1==0)beginLed2=3'd1;Buzzer=1'b0;endif(inputL2==0)beginLed2=3'd2;Buzzer=1'b0;endif(inputL3==0)beginLed2=3'd3;Buzzer=1'b0;endif(inputL4==0)beginLed2=3'd4;Buzzer=1'b0;endif(inputL5==0)beginLed2=3'd5;Buzzer=1'b0;endif(inputL6==0)beginLed2=3'd6;Buzzer=1'b0;endendif(inputEn==1'b0)//為低電平時表示主持人按下搶答按鈕開始搶答beginEnFlat=1'b1;if(EnFlat==1'b1)beginif(inputL1==1'b0)//一號選手搶答 begin Led2=3'd1; EnFlat=1'b0;//為低電平禁止其他選手搶答B(yǎng)uzzer=1'b1; endelse //一開始沒加else發(fā)現仿真結果隨著輸入數據變化而變化 if(inputL2==1'b0)//二號選手搶答 begin Led2=3'd2; EnFlat=1'b0; Buzzer=1'b0; endelseif(inputL3==1'b0)//三號選手搶答 begin Led2=3'd3; EnFlat=1'b0;//為低電平禁止其他選手搶答B(yǎng)uzzer=1'b1; endelseif(inputL4==1'b0)//四號選手搶答 begin Led2=3'd4; EnFlat=1'b0;//為低電平禁止其他選手搶答B(yǎng)uzzer=1'b1; endelse if(inputL5==1'b0)//五號選手搶答 begin Led2=3'd5; EnFlat=1'b0;//為低電平禁止其他選手搶答B(yǎng)uzzer=1'b1; endelse if(inputL6==1'b0)//六號選手搶答 begin Led2=3'd6; EnFlat=1'b0;//為低電平禁止其他選手搶答B(yǎng)uzzer=1'b1; endendendif(clr)//按下clr鍵以后各組參數重置,整個比賽重新開始begin EnFlat=1'b0; Led2=3'd0;//為低電平時,選手前的燈點亮 Buzzer=1'b1;//為高電平不響endendendmodule測試程序`timescale1s/1smoduleqiangdaqi_test();regclk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6;//輸入口wire[0:7]Led2;//Led2顯示選手號wireBuzzer;//低電平時蜂鳴器發(fā)出聲音QiangDaQiu1(clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,Led2,Buzzer);initialbegin#0clk=1;clr=0;inputEn=1;inputL1=1;inputL2=1;inputL3=1;inputL4=1;inputL5=1;inputL6=1;#2inputL2=0;//二號選手超前搶答#4clr=1;inputL2=1;//復位#2clr=0;#4inputEn=0;inputL4=0;//四號選手先搶答顯示4#2inputL3=0;//三號選手后搶答不顯示3#4clr=1;inputEn=1;inputL3=1;inputL4=1;#2clr=0;endalways#1clk=~clk;endmodule程序二moduleQiangDaQi(clk,clr,add,stu,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,Led1,Led2,Led3,Buzzer);//一開始聲明有哪些端口inputclk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,add,stu;//輸入口output[0:5]Led1;//對應參賽選手前的燈output[0:7]Led2,Led3;//Led2顯示選手號Led3顯示選手分數outputBuzzer;//低電平時蜂鳴器發(fā)出聲音regEnFlat=1'b1;//EnFlat為高電平時開始搶答regBuClk=1'b0;//為高電平時進入蜂鳴器處理程序//regadd,stu;//add答題正確加一分stu答題錯誤減一分//regclr=0;//重置鍵reg[0:5]Led1=6'b111111;reg[0:2]answer=3'd0;reg[0:3]score=4'd0,score1=4'd0,score2=4'd0;reg[0:3]score3=4'd0,score4=4'd0,score5=4'd0,score6=4'd0;//各選手分數計算regBuzzer=1;reg[0:4]daojishi=5'd20;//用于產生20s倒計時reg[0:7]Led2=8'b11111111,Led3=8'b11111111;always@(posedgeclk)//時鐘上升沿beginif(inputEn==1)//如果主持人沒按按鈕就有人搶答beginif(inputL1==0)beginLed1=6'b111110;answer=3'd1;BuClk=1'b1;endif(inputL2==0)beginLed2=6'b111101;answer=3'd2;BuClk=1'b1;endif(inputL3==0)beginLed2=6'b111011;answer=3'd3;BuClk=1'b1;endif(inputL4==0)beginLed2=6'b110111;answer=3'd4;BuClk=1'b1;endif(inputL5==0)beginLed2=6'b101111;answer=3'd5;BuClk=1'b1;endif(inputL6==0)beginLed2=6'b011111;answer=3'd6;BuClk=1'b1;endendif(inputEn==1'b0)//為低電平時表示主持人按下搶答按鈕開始搶答 begin Led1=6'b111111;//為低電平時,選手前的燈點亮 BuClk=1'b0; Buzzer=1'b1;//為高電平不響 endif(EnFlat==1'b1)beginbeginif(inputL1==1'b0)//一號選手搶答 begin EnFlat=1'b0;//為低電平禁止其他選手搶答answer=3'd1;//為高電平時轉到對應選手加減分程序中去 BuClk=1'b1;//轉到蜂鳴器程序 end if(inputL2==1'b0)//二號選手搶答 begin EnFlat=1'b0; answer=3'd2; BuClk=1'b1; endif(inputL3==1'b0)//三號選手搶答 begin EnFlat=1'b0; answer=3'd3; BuClk=1'b1; endif(inputL4==1'b0)//四號選手搶答 begin EnFlat=1'b0; answer=3'd4; BuClk=1'b1; end if(inputL5==1'b0)//五號選手搶答 begin EnFlat=1'b0; answer=3'd5; BuClk=1'b1; end if(inputL6==1'b0)//六號選手搶答 begin EnFlat=1'b0; answer=3'd6; BuClk=1'b1; endendbeginif(daojishi!=5'd0)//用于1Hz信號daojishi=daojishi-1;else//倒計時結束搶答器還沒按下則搶答停止且蜂鳴器響begindaojishi=5'd20;EnFlat=1'b0;BuClk=1'b1;endendbeginif(BuClk==1'b1)//當蜂鳴器標志為1時 Buzzer=1'b0;//蜂鳴器發(fā)聲endbeginif(answer==3'd1)//第一組加減分beginLed1=6'b111110;//點亮該選手前的LED燈Led2=8'hf9;//選手號數碼管顯示1if(add)score1=score1+1;//當主持人判定選手的回答正確時,按下add鍵進行加分操作elseif((stu||inputEn)&&(score1!=0)) score1=score1-1;//當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 elsescore1=0; score=score1;//把第一組的分數賦值給分數寄存器 end if(answer==3'd2)//第二組加減分beginLed1=6'b111101;Led2=8'ha4;if(add)score2=score2+1;//當主持人判定選手的回答正確時,按下add鍵進行加分操作elseif((stu||inputEn)&&(score2!=0)) score2=score2-1;//當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 elsescore2=0;score=score2;//把第一組的分數賦值給分數寄存器 end if(answer==3'd3)//第三組加減分beginLed1=6'b111011;Led2=8'hb0;if(add)score3=score3+1;//當主持人判定選手的回答正確時,按下add鍵進行加分操作elseif((stu||inputEn)&&(score3!=0)) score3=score3-1;//當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 elsescore3=0;score=score3;//把第一組的分數賦值給分數寄存器 end if(answer==3'd4)//第四組加減分beginLed1=6'b110111;Led2=8'h99;if(add)score4=score4+1;//當主持人判定選手的回答正確時,按下add鍵進行加分操作elseif((stu||inputEn)&&(score4!=0)) score4=score4-1;//當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 elsescore4=0;score=score4;//把第一組的分數賦值給分數寄存器 end if(answer==3'd5)//第五組加減分beginLed1=6'b101111;Led2=8'h92;if(add)score5=score5+1;//當主持人判定選手的回答正確時,按下add鍵進行加分操作elseif((stu||inputEn)&&(score5!=0)) score5=score5-1;//當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 elsescore5=0;score=score5;//把第一組的分數賦值給分數寄存器 end if(answer==3'd6)//第六組加減分beginLed1=6'b011111;Led2=8'h82;if(add)score6=score6+1;//當主持人判定選手的回答正確時,按下add鍵進行加分操作elseif((stu||inputEn)&&(score6!=0)) score6=score6-1;//當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 elsescore6=0;score=score6;//把第一組的分數賦值給分數寄存器 end begin case(score)//??????? 4'd0:Led3=8'hc0;4'd1:Led3=8'hf9;4'd2:Led3=8'ha4; 4'd3:Led3=8'hb0;4'd4:Led3=8'h99;4'd5:Led3=8'h92; 4'd6:Led3=8'h82;4'd7:Led3=8'hf8;4'd8:Led3=8'h80; 4'd9:Led3=8'h90;default:Led3=8'hff; endcase endendendif(clr)//按下clr鍵以后各組參數重置,整個比賽重新開始beginEnFlat=1'b1;daojishi=5'd20;Led1=6'b111111;//重置時六個Led全滅Led2=8'b11111111;//熄滅選手號靜態(tài)數碼管Led3=8'b11111111;//熄滅分數顯示數碼管BuClk=1'b0;//蜂鳴器標志位重置Buzzer=1'b1;//蜂鳴器控制管腳重置score=0;//score1=4'd0;score2=4'd0;score3=4'd0;//score4=4'd0;score5=4'd0;score6=4'd0;answer=3'd0;endendendmodule測試程序`timescale1s/1smoduleqiangdaqi_test();regclk,clr,add,stu,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6;//regclr;//重置鍵//regadd,stu;//add答題正確加一分stu答題錯誤減一分wire[0:5]Led1;//對應參賽選手前的燈wire[0:7]Led2,Led3;//Led2顯示選手號Led3顯示選手分數wireBuzzer;//低電平時蜂鳴器發(fā)出聲音QiangDaQiu1(clk,clr,add,stu,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,Led1,Led2,Led3,Buzzer);initialbegin#0clk=1;add=0;stu=0;clr=0;inputEn=1;inputL1=1;inputL2=1;inputL3=1;inputL4=1;inputL5=1;inputL6=1;#2inputEn=0;inputL1=1;inputL2=0;inputL3=1;inputL4=1;inputL5=1;inputL6=1;add=1;#2clr=1;add=0;stu=0;inputEn=1;inputL1=1;inputL2=1;inputL3=1;inputL4=1;inputL5=1;inputL6=1;#2clr=0;#2inputEn=0;inputL1=1;inputL2=0;inpu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江工業(yè)大學《藥用植物栽培學》2023-2024學年第二學期期末試卷
- 全國泰山版初中信息技術七年級上冊第一章第一節(jié)《用戶界面》教學設計
- 圖木舒克職業(yè)技術學院《文學基礎寫作》2023-2024學年第二學期期末試卷
- 新疆科技學院《民族植物學》2023-2024學年第二學期期末試卷
- 《保護家鄉(xiāng)的環(huán)境:3 我是環(huán)保特使》教學設計-2023-2024學年五年級下冊綜合實踐活動滬科黔科版
- 云南體育運動職業(yè)技術學院《智能檢測綜合項目設計》2023-2024學年第二學期期末試卷
- 新疆機電職業(yè)技術學院《新媒體動畫》2023-2024學年第二學期期末試卷
- Unit 3 Food Lesson 2(教學設計)-2024-2025學年人教新起點版英語三年級上冊
- 桂林生命與健康職業(yè)技術學院《古代文論》2023-2024學年第二學期期末試卷
- 福建林業(yè)職業(yè)技術學院《化工制圖》2023-2024學年第二學期期末試卷
- 2024年云南省公務員錄用考試《行測》試題及答案解析
- 2024年度-工程造價培訓課件全新
- 高中學校工會工作制度
- 人教版(2019) 必修第二冊 Unit 1 Cultural Heritage Discovering Useful Structures(教案)
- 電氣控制與PLC課程說課王金莉-長春光華學院電氣信息學院
- 《積極心理學(第3版)》 課件 第10章 感恩
- 2024年人教版初三數學(下冊)模擬試卷及答案(各版本)
- 2024年工業(yè)廢水處理工(技師)技能鑒定理論考試題庫-上(單選題)
- 醫(yī)院CT機房裝飾改造工程施工組織設計
- 基坑監(jiān)測總結報告
- 2024年華師大版九年級數學下冊全冊教案
評論
0/150
提交評論