版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、-作者xxxx-日期xxxxverilog HDL搶答器(兩個程序)【精品文檔】一、設計任務智力競賽搶答器Verilog HDL要求有6位參賽者進行搶答,有六個搶答信號進行搶答。當有搶答選手按下?lián)尨疰I后系統(tǒng)能夠快速準確的判斷是那一組選手按下了搶答信號,由于系統(tǒng)比較小,速度比較快一般不會有同時按下的可能,所以只有六種狀態(tài),然后系統(tǒng)能夠根據(jù)這六種狀態(tài)進行適時的顯示和提示。當有選手按下以后就對搶答信號進行鎖存,其他選手的輸入無效。然后就是對搶答進行時間限制了,根據(jù)設定的時間進行倒計時,當?shù)褂嫊r完成還沒有人搶答的時候系統(tǒng)發(fā)出警報聲音提示時間已經(jīng)到了。當有選手在主持人未按下?lián)尨疰I搶答時視為超前搶答,系統(tǒng)
2、顯示該選手號,同時蜂鳴器響,該搶答無效。還有清除復位鍵,搶答完成以后按復位鍵即可清除已有的狀態(tài)。通過Verilog HDL程序代碼實現(xiàn)系統(tǒng)的各個功能。二、設計目的與要求目的:理論聯(lián)系實際,鞏固和運用所學課程,提高分析、解決計算機技術實際問題的獨立工作能力,培養(yǎng)學生正確的設計思想,嚴肅認真、實事求是的科學態(tài)度和勇于探索的創(chuàng)新精神。通過對一個智力搶答器的設計,進一步加深對計算機原理以及數(shù)字電路應用技術方面的了解與認識,進一步熟悉數(shù)字電路系統(tǒng)設計、制作與調(diào)試的方法和步驟,通過Verilog 程序的編寫,進一步熟悉Verilog HDL 的語法知識;規(guī)范化訓練學生撰寫技術研究報告,提高書面表達能力。要
3、求: 掌握FPGA設計系統(tǒng)的一般方法。 熟練掌握使用modelsim軟件設計較復雜的數(shù)字邏輯電路。 培養(yǎng)學生獨立分析問題和解決實際問題的能力。三、 課程設計的內(nèi)容設計一搶答器,要求如下:(1)搶答臺數(shù)為6;(2)具有搶答開始后20s倒計時,20秒倒計時后6人搶答顯示超時,并報警;(3)能顯示超前搶答臺號并顯示犯規(guī)報警;(4)系統(tǒng)復位后進入搶答狀態(tài),當有一路搶答按鍵按下,該路搶答信號將其余各路搶答信號封鎖,同時鈴聲響起,直至該路按鍵松開,顯示牌顯示該路搶答臺號。四、系統(tǒng)設計方案根據(jù)系統(tǒng)設計要求可知,系統(tǒng)的輸入信號有:主持人按鈕inputEn,各選手的搶答按鈕分別是inputL1、inputL2、
4、inputL3、inputL4,inputL5,inputL6,主持人和選手搶答按鈕都是低電平有效,系統(tǒng)復位信號clr(高電平有效),系統(tǒng)時鐘信號clk,系統(tǒng)的輸出信號有:六個人搶答成功與否的指示燈控制信號輸出口Led2,犯規(guī)搶答時報警器Buzzer(低電平有效)。本系統(tǒng)應具有的功能有:能夠準確的判斷出是哪位搶答者,當主持人沒按搶答時,有人搶答了則蜂鳴器報警,并顯示該選手號,當主持人按了搶答鍵時有人搶答了,同時封鎖搶答信號,其他選手搶答無效,不顯示該選手號。五、仿真過程與仿真結果仿真過程:使用ModelSim進行功能測試,首先在里面進行相應的設置,在工程文件夾下面會新建一個modelsim的文
5、件夾,然后編寫實現(xiàn)功能的程序和測試文件,最后保存編譯執(zhí)行就可以進行功能仿真了。仿真結果 : 結果分析與討論:可以看到0時刻系統(tǒng)復位狀態(tài),2s時2號超前搶答(inputEn為高電平,inputL2為低電平),系統(tǒng)顯示2蜂鳴器并犯規(guī)報警(Buzzer為低電平),8s時系統(tǒng)復位狀態(tài),12s時4號選手先搶答成功(inputL4為低電平)顯示4,14s時3號選手后搶答,不顯示3,20s時系統(tǒng)復位。六、總結 通過本次合成設計,我又一遍熟悉了Verilog HDL語言進行建模,并且通過實際操作學會了怎么使用Modelsim這個軟件來完成一個完整的課程設計。以及對基于FPGA的系統(tǒng)開發(fā)流程有了一個整體認識,我
6、越來越認識到一點, 編程對項目實現(xiàn)有著至關重要的, 我們在硬件開發(fā)的過程中更應該重視編程, 將編程看作是完善開發(fā)的不可缺少的一部分。雖然題目簡單,但這也磨練了我的意志。第一次做的太復雜了,然后一次次修改,做成最簡單功能的。在一次次的反復設計、論證和測試中, 提高了邏輯分析能力、全面分析問題的能力以及發(fā)現(xiàn)問題、解決問題的能力。通過對各方面資料的收集, 我的知識面也進一步拓寬了。同時,我也發(fā)現(xiàn)了自己的不足, 像語言表達還比較差, 不能更清楚地表達自己的意思, 邏輯分析能力和編程能力有待提高,有些預先的想法都未能實現(xiàn)。在系統(tǒng)的結構設計上也還有很長的路需要走,這是需要時間去積累的。在今后的學習中我還得
7、加以改進。七、程序系統(tǒng)主要Verilog HDL源程序:module QiangDaQi(clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,Led2,Buzzer); /一開始聲明有哪些端口input clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6;output 0:7Led2;/Led2顯示選手號output Buzzer;/低電平時蜂鳴器發(fā)出聲音reg EnFlat=1b0;/EnFlat為高電平時開始搶答reg 0:2Led2=3d
8、0;reg Buzzer=1b1;always (posedge clk)/時鐘上升沿begin if(inputEn=1)/如果主持人沒按按鈕就有人搶答 begin if(inputL1=0) begin Led2=3d1;Buzzer=1b0;end if(inputL2=0) begin Led2=3d2;Buzzer=1b0;end if(inputL3=0) begin Led2=3d3;Buzzer=1b0;end if(inputL4=0) begin Led2=3d4;Buzzer=1b0;end if(inputL5=0) begin Led2=3d5;Buzzer=1b0;
9、end if(inputL6=0) begin Led2=3d6;Buzzer=1b0;end end if(inputEn=1b0)/為低電平時表示主持人按下?lián)尨鸢粹o開始搶答 begin EnFlat=1b1; if(EnFlat=1b1) begin if(inputL1=1b0)/一號選手搶答 begin Led2=3d1; EnFlat=1b0;/為低電平禁止其他選手搶答 Buzzer=1b1; end else/一開始沒加else發(fā)現(xiàn)仿真結果隨著輸入數(shù)據(jù)變化而變化 if(inputL2=1b0)/二號選手搶答 begin Led2=3d2; EnFlat=1b0; Buzzer=1b
10、0; end else if(inputL3=1b0)/三號選手搶答 begin Led2=3d3; EnFlat=1b0;/為低電平禁止其他選手搶答 Buzzer=1b1; endelse if(inputL4=1b0)/四號選手搶答 begin Led2=3d4; EnFlat=1b0;/為低電平禁止其他選手搶答 Buzzer=1b1; end else if(inputL5=1b0)/五號選手搶答 begin Led2=3d5; EnFlat=1b0;/為低電平禁止其他選手搶答 Buzzer=1b1; end else if(inputL6=1b0)/六號選手搶答 begin Led2=
11、3d6; EnFlat=1b0;/為低電平禁止其他選手搶答 Buzzer=1b1; end end end if(clr)/按下clr鍵以后各組參數(shù)重置,整個比賽重新開始 begin EnFlat=1b0; Led2=3d0;/為低電平時,選手前的燈點亮 Buzzer=1b1;/為高電平不響 endendendmodule測試程序timescale 1s/1smodule qiangdaqi_test(); reg clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6;/輸入口 wire 0:7Led2;/Led2顯示選
12、手號 wire Buzzer;/低電平時蜂鳴器發(fā)出聲音 QiangDaQi u1(clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,Led2,Buzzer); initial begin #0 clk=1;clr=0;inputEn=1;inputL1=1;inputL2=1;inputL3=1;inputL4=1;inputL5=1;inputL6=1; #2 inputL2=0;/二號選手超前搶答 #4 clr=1;inputL2=1;/復位 #2 clr=0; #4 inputEn=0;inputL4=0;/四
13、號選手先搶答顯示4 #2 inputL3=0;/三號選手后搶答不顯示3 #4 clr=1;inputEn=1;inputL3=1;inputL4=1; #2 clr=0; end always #1 clk=clk;endmodule程序二module QiangDaQi(clk,clr,add,stu,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,Led1,Led2,Led3,Buzzer); /一開始聲明有哪些端口input clk,clr,inputEn,inputL1,inputL2,inputL3,inputL4,in
14、putL5,inputL6,add,stu;/輸入口output 0:5Led1;/對應參賽選手前的燈output 0:7Led2,Led3;/Led2顯示選手號Led3顯示選手分數(shù)output Buzzer;/低電平時蜂鳴器發(fā)出聲音reg EnFlat=1b1;/EnFlat為高電平時開始搶答reg BuClk=1b0;/為高電平時進入蜂鳴器處理程序/reg add,stu;/add答題正確加一分stu答題錯誤減一分/reg clr=0;/重置鍵reg 0:5Led1=6b111111;reg 0:2 answer=3d0;reg0:3 score=4d0,score1=4d0,score2
15、=4d0;reg0:3 score3=4d0,score4=4d0,score5=4d0,score6=4d0;/各選手分數(shù)計算reg Buzzer=1;reg 0:4 daojishi=5d20;/用于產(chǎn)生20s倒計時reg 0:7Led2=8b11111111,Led3=8b11111111;always (posedge clk)/時鐘上升沿begin if(inputEn=1)/如果主持人沒按按鈕就有人搶答 begin if(inputL1=0) begin Led1=6b111110;answer=3d1;BuClk=1b1;end if(inputL2=0) begin Led2=
16、6b111101;answer=3d2;BuClk=1b1;end if(inputL3=0) begin Led2=6b111011;answer=3d3;BuClk=1b1;end if(inputL4=0) begin Led2=6b110111;answer=3d4;BuClk=1b1;end if(inputL5=0) begin Led2=6b101111;answer=3d5;BuClk=1b1;end if(inputL6=0) begin Led2=6b011111;answer=3d6;BuClk=1b1;end end if(inputEn=1b0)/為低電平時表示主持人
17、按下?lián)尨鸢粹o開始搶答beginLed1=6b111111;/為低電平時,選手前的燈點亮BuClk=1b0;Buzzer=1b1;/為高電平不響end if(EnFlat=1b1) begin begin if(inputL1=1b0)/一號選手搶答 begin EnFlat=1b0;/為低電平禁止其他選手搶答 answer=3d1;/為高電平時轉到對應選手加減分程序中去 BuClk=1b1;/轉到蜂鳴器程序 end if(inputL2=1b0)/二號選手搶答 beginEnFlat=1b0;answer=3d2;BuClk=1b1; end if(inputL3=1b0)/三號選手搶答 be
18、ginEnFlat=1b0;answer=3d3;BuClk=1b1; end if(inputL4=1b0)/四號選手搶答 beginEnFlat=1b0;answer=3d4;BuClk=1b1; end if(inputL5=1b0)/五號選手搶答 beginEnFlat=1b0;answer=3d5;BuClk=1b1; end if(inputL6=1b0)/六號選手搶答 beginEnFlat=1b0;answer=3d6;BuClk=1b1; end end begin if(daojishi!=5d0)/用于1Hz信號 daojishi=daojishi-1; else/倒計時
19、結束搶答器還沒按下則搶答停止且蜂鳴器響 begin daojishi=5d20; EnFlat=1b0; BuClk=1b1; end end begin if(BuClk=1b1)/當蜂鳴器標志為1時 Buzzer=1b0;/蜂鳴器發(fā)聲 end begin if(answer =3d1)/第一組加減分 begin Led1=6b111110;/點亮該選手前的LED燈 Led2=8hf9;/選手號數(shù)碼管顯示1 if(add) score1=score1+1;/當主持人判定選手的回答正確時,按下add鍵進行加分操作 else if(stu|inputEn)&(score1!=0) score1=
20、score1-1;/當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 else score1=0; score=score1;/把第一組的分數(shù)賦值給分數(shù)寄存器 end if(answer =3d2)/第二組加減分 begin Led1=6b111101;Led2=8ha4; if(add) score2=score2+1;/當主持人判定選手的回答正確時,按下add鍵進行加分操作 else if(stu|inputEn)&(score2!=0) score2=score2-1;/當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 else score2=0; score=score2;
21、/把第一組的分數(shù)賦值給分數(shù)寄存器 end if(answer =3d3)/第三組加減分 begin Led1=6b111011;Led2=8hb0; if(add) score3=score3+1;/當主持人判定選手的回答正確時,按下add鍵進行加分操作 else if(stu|inputEn)&(score3!=0) score3=score3-1;/當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 else score3=0; score=score3;/把第一組的分數(shù)賦值給分數(shù)寄存器 end if(answer =3d4)/第四組加減分 begin Led1=6b110111;Le
22、d2=8h99; if(add) score4=score4+1;/當主持人判定選手的回答正確時,按下add鍵進行加分操作 else if(stu|inputEn)&(score4!=0) score4=score4-1;/當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 else score4=0; score=score4;/把第一組的分數(shù)賦值給分數(shù)寄存器 end if(answer =3d5)/第五組加減分 begin Led1=6b101111;Led2=8h92; if(add) score5=score5+1;/當主持人判定選手的回答正確時,按下add鍵進行加分操作 else
23、 if(stu|inputEn)&(score5!=0) score5=score5-1;/當主持人判定選手的回答錯誤時,按下stu鍵進行加分操作 else score5=0; score=score5;/把第一組的分數(shù)賦值給分數(shù)寄存器 end if(answer =3d6)/第六組加減分 begin Led1=6b011111;Led2=8h82; if(add) score6=score6+1;/當主持人判定選手的回答正確時,按下add鍵進行加分操作 else if(stu|inputEn)&(score6!=0) score6=score6-1;/當主持人判定選手的回答錯誤時,按下stu
24、鍵進行加分操作 else score6=0; score=score6;/把第一組的分數(shù)賦值給分數(shù)寄存器 end begin case(score)/? 4d0:Led3=8hc0;4d1:Led3=8hf9;4d2:Led3=8ha4; 4d3:Led3=8hb0;4d4:Led3=8h99;4d5:Led3=8h92; 4d6:Led3=8h82;4d7:Led3=8hf8;4d8:Led3=8h80; 4d9:Led3=8h90;default:Led3=8hff; endcase end end end if(clr)/按下clr鍵以后各組參數(shù)重置,整個比賽重新開始 begin EnF
25、lat=1b1; daojishi=5d20; Led1=6b111111;/重置時六個Led全滅 Led2=8b11111111;/熄滅選手號靜態(tài)數(shù)碼管 Led3=8b11111111;/熄滅分數(shù)顯示數(shù)碼管 BuClk=1b0;/蜂鳴器標志位重置 Buzzer=1b1;/蜂鳴器控制管腳重置 score=0; /score1=4d0;score2=4d0;score3=4d0; /score4=4d0;score5=4d0;score6=4d0; answer=3d0; endendendmodule測試程序timescale 1s/1smodule qiangdaqi_test(); reg
26、 clk,clr,add,stu,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6; /reg clr;/重置鍵 /reg add,stu;/add答題正確加一分stu答題錯誤減一分 wire 0:5Led1;/對應參賽選手前的燈 wire 0:7Led2,Led3;/Led2顯示選手號Led3顯示選手分數(shù) wire Buzzer;/低電平時蜂鳴器發(fā)出聲音 QiangDaQi u1(clk,clr,add,stu,inputEn,inputL1,inputL2,inputL3,inputL4,inputL5,inputL6,Led1
27、,Led2,Led3,Buzzer); initial begin #0 clk=1;add=0;stu=0;clr=0;inputEn=1;inputL1=1;inputL2=1;inputL3=1;inputL4=1;inputL5=1;inputL6=1; #2 inputEn=0;inputL1=1;inputL2=0;inputL3=1;inputL4=1;inputL5=1;inputL6=1;add=1; #2 clr=1;add=0;stu=0;inputEn=1;inputL1=1;inputL2=1;inputL3=1;inputL4=1;inputL5=1;inputL6=1; #2 clr=0; #2 inputEn=0;inputL1=1;inputL2=0;inputL3=1;inputL4=1;inputL5=1;inputL6=1;add=1; #1 inputL3=0;add=1; #2 clr=1;add=0;s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 六盤水職業(yè)技術學院《典型零件的工藝設計》2023-2024學年第一學期期末試卷
- 金肯職業(yè)技術學院《微機原理含實驗》2023-2024學年第一學期期末試卷
- 新蘇教版一年級下冊數(shù)學第1單元第3課時《8、7加幾》作業(yè)
- 懷化學院《影視創(chuàng)作前沿技術》2023-2024學年第一學期期末試卷
- 湖北理工學院《人力資源管理咨詢與診斷》2023-2024學年第一學期期末試卷
- 資陽口腔職業(yè)學院《測試與傳感器技術》2023-2024學年第一學期期末試卷
- 小學黨員聯(lián)系群眾、服務群眾制度
- 長沙學院《材料加工過程多尺度模擬》2023-2024學年第一學期期末試卷
- 寒露節(jié)氣策劃講座模板
- 職業(yè)導論-房地產(chǎn)經(jīng)紀人《職業(yè)導論》名師預測卷3
- 12G614-1砌體填充墻結構構造
- 蘇教版五年級上冊數(shù)學計算題大全1000道帶答案
- JT-T-1078-2016道路運輸車輛衛(wèi)星定位系統(tǒng)視頻通信協(xié)議
- 兩家公司成立新公司合作協(xié)議書
- 小學四年級小數(shù)單位換算練習題100道
- 人教版七年級下冊數(shù)學-第五章-相交線與平行線-單元檢測題
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設計規(guī)范
- 項目質(zhì)量管理的溝通與協(xié)調(diào)機制
- 中醫(yī)常見的護理診斷及護理措施
- 設備技改方案范文
- 員工穩(wěn)定性保障措施及優(yōu)化方案
評論
0/150
提交評論