FPGA技術(shù)課程設(shè)計_數(shù)字式競賽搶答器終稿_第1頁
FPGA技術(shù)課程設(shè)計_數(shù)字式競賽搶答器終稿_第2頁
FPGA技術(shù)課程設(shè)計_數(shù)字式競賽搶答器終稿_第3頁
FPGA技術(shù)課程設(shè)計_數(shù)字式競賽搶答器終稿_第4頁
FPGA技術(shù)課程設(shè)計_數(shù)字式競賽搶答器終稿_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、西南科技大學(xué)FPGA技術(shù)課程設(shè)計報告設(shè)計名稱:數(shù)字式競賽搶答器 姓 名: 學(xué) 號: 專業(yè)班級 通信1301 教 師: 徐鋒 西南科技大學(xué)信息工程學(xué)院制設(shè) 計 任 務(wù) 書設(shè)計名稱: 數(shù)字式競賽搶答器 組長: 組員(其他5人): 課題總設(shè)計要求:設(shè)計題目的要求: (1)設(shè)計一個可容納 3 組參賽的數(shù)字式搶答器,每組設(shè)一個按鈕,供搶答使用。 (2)搶答器具有第一信號鑒別和鎖存功能,使除第一搶答者外的按鈕不起作用。 (3)設(shè)置一個主持人“復(fù)位”按鈕。 (4)主持人復(fù)位后,開始搶答,第一信號鑒別鎖存電路得到信號后,有指示燈顯示搶 答組別,揚(yáng)聲器發(fā)出 12 秒的音響。 (5)設(shè)置一個計分電路,每組開始預(yù)置

2、 100 分,由主持人記分,答對一次 1 0分,答錯 一次減 10 分。 組員() 濤 的設(shè)計要求(由組長提供給組員):主要任務(wù):設(shè)計搶答鑒別鎖存模塊輸入端口:group1,group2,group3,reset.輸出端口:group2:0功能描述:reset為主持人復(fù)位信號(開始搶答信號),當(dāng)reset有一個低電平到來時(下降沿),該模塊開始鎖存輸入端口的信號,當(dāng)其中有一個發(fā)生變化時,將輸入封鎖。然后將鎖存到的信號按下列真值表輸出:鎖存信號輸出信號group1group2group3group1group2011011001011011當(dāng)信號還沒有被鎖存時,group輸出為00。組員() 曾

3、雪 的設(shè)計要求:主要任務(wù):組別譯碼提醒模塊輸入信號:group2:0,clk輸出信號:warn,light2:0功能描述:模塊用于控制蜂鳴器及三個LED燈,其中warn控制蜂鳴器,light控制組別信號燈。當(dāng)出現(xiàn)group信號從00變化到其它后,蜂鳴器發(fā)出12s聲響,頻率由表示已經(jīng)搶答到,對應(yīng)搶答到組別的LED燈亮。組員() 明亮 的設(shè)計要求:主要任務(wù):計分模塊輸入端口:group2:0,right,wrong輸出端口:score17:0,score27:0,score37:0功能描述:該模塊用于對各個組進(jìn)行計分,并將結(jié)果輸出。當(dāng)right每來一個下降沿觸發(fā)對應(yīng)組別加分功能,當(dāng)wrong每來一

4、個下降沿觸發(fā)對應(yīng)組別扣分功能。其中加分功能和扣分功能有其他組員提供函數(shù)。score1,score2,score3分別對應(yīng)于組別1,組別2,組別3的計分結(jié)果。由于只需考慮十位和百位,所以只需要8位的二進(jìn)制數(shù),其中score的高4位表示得分的百位,低四位表示得分的十位數(shù)字。組員() 王翔 的設(shè)計要求:主要任務(wù):組別分?jǐn)?shù)動態(tài)掃描顯示模塊輸入端口:score17:0 ,score27:0,score37:0,group2:0輸出端口:wei7:0,duan6:0功能描述:該模塊主要實現(xiàn)對分?jǐn)?shù),搶答到的組別的動態(tài)掃描,將它們動態(tài)顯示在數(shù)碼數(shù)碼管上。其中score1,score2,score3分別表示當(dāng)前

5、得分,wei7:0和duan6:0分別表示位選和段選信號,clk為掃描時鐘。 組員() 林靜 的設(shè)計要求:主要任務(wù):編寫2個函數(shù),分別實現(xiàn)計數(shù)模塊加分功能,扣分功能。 并在一個模塊進(jìn)行仿真測試函數(shù)功能,直到正確。add:其參數(shù)為當(dāng)前分?jǐn)?shù),實現(xiàn)對參數(shù)的加分功能,每次加分為10分,并以八位二進(jìn)制儲存百位和十位,其中高四位表示得分百位上的數(shù)字,低四位表示十位上的數(shù)字。reduce: 實現(xiàn)對參數(shù)的加分功能,每次扣分為10分,其他相同。 2015 年 4 月 20 日一 設(shè)計步驟1、 設(shè)計準(zhǔn)備:根據(jù)設(shè)計需求,分析整個系統(tǒng)功能及設(shè)計任務(wù),可知,系統(tǒng)需要四個模塊來實現(xiàn)其功能。分別為:設(shè)計搶答鑒別鎖存模塊、組

6、別譯碼搶答模塊、計分模塊、組別分?jǐn)?shù)動態(tài)掃描模塊。初步選定設(shè)計方案,然后根據(jù)功能分配任務(wù)。2、 設(shè)計輸入:(1) 設(shè)計編寫搶答鎖存模塊代碼。(2) 設(shè)計編寫組別譯碼模塊。(3) 設(shè)計編寫計分模塊(4) 設(shè)計動態(tài)掃描模塊(5) 將以上四個模塊組合,設(shè)計出這四個模塊的頂層模塊。(6) 加上消抖模塊3、 功能仿真:在每個模塊設(shè)計完成后,對該模塊設(shè)計仿真波形,進(jìn)行仿真。4、 引腳約束:根據(jù)功能設(shè)計及FPGA外圍電路設(shè)計,對引腳進(jìn)行約束。二設(shè)計整體流程圖加減分搶答信號搶答按鈕主持人控制開關(guān)分組LED燈FPGA數(shù)碼顯示分?jǐn)?shù)蜂鳴器響起復(fù)位三設(shè)計方案(可包含主控制電路狀態(tài)轉(zhuǎn)換圖)1、 FPGA的具體模塊電路連接

7、組合如下圖所示:Group1:0Cllkwrongright搶答鎖存模塊組別譯碼提醒模塊計分模塊組別分?jǐn)?shù)動態(tài)掃描顯示模塊Light2:0Score7:0【&:0】2、 各個模塊的功能及設(shè)計方案;(1)搶答鎖存鑒別模塊功能:reset為主持人復(fù)位信號(開始搶答信號),當(dāng)reset有一個低電平到來時(下降沿),該模塊開始鎖存輸入端口的信號,當(dāng)其中有一個發(fā)生變化時,將輸入封鎖。然后將鎖存到的信號按真值表輸出。(2) 組別譯碼提醒模塊 功能:模塊用于控制蜂鳴器及三個LED燈,其中beep控制蜂鳴器,light控制組別信號燈。當(dāng)出現(xiàn)group信號從00變化到其它后,蜂鳴器發(fā)出12s聲響,表示已經(jīng)

8、搶答到,對應(yīng)搶答到組別的LED燈亮。(3)計分模塊功能:該模塊用于對各個組進(jìn)行計分,并將結(jié)果輸出。當(dāng)right每來一個下降沿觸發(fā)對應(yīng)組別加分功能,當(dāng)wrong每來一個下降沿觸發(fā)對應(yīng)組別扣分功能。score1,score2,score3分別對應(yīng)于組別1,組別2,組別3的計分結(jié)果。由于只需考慮十位和百位,所以只需要8位的二進(jìn)制數(shù),其中score的高4位表示得分的百位,低四位表示得分的十位數(shù)字。(4) 計分模塊的加分,扣分函數(shù)設(shè)計:Add:其參數(shù)為當(dāng)前分?jǐn)?shù),實現(xiàn)對參數(shù)的加分功能,每次加分為10分,并以八位二進(jìn)制儲存百位和十位,其中高四位表示得分百位上的數(shù)字,低四位表示十位上的數(shù)字。reduce: 實

9、現(xiàn)對參數(shù)的加分功能,每次扣分為10分,其他相同。(5)動態(tài)掃描組別分?jǐn)?shù)顯示模塊功能:該模塊主要實現(xiàn)對分?jǐn)?shù),搶答到的組別的動態(tài)掃描,將它們動態(tài)顯示在數(shù)碼數(shù)碼管上。其中score1,score2,score3分別表示當(dāng)前得分,wei7:0和duan6:0分別表示位選和段選信號.(6)前4個模塊的組合設(shè)計思路:根據(jù)設(shè)計方案具體的模塊連接,如1中圖所示,設(shè)計頂層模塊。輸入:總共3個按鍵輸入信號,一個時鐘輸入信號輸出:一個控制組別燈的信號,一個數(shù)碼管斷選和一個位選信號。具體設(shè)計如下:四. 頂層及各自模塊波形圖仿真分析1、 鑒別鎖存模塊波形設(shè)計:分析:開始時,group輸出為00,當(dāng)reset復(fù)位后,ke

10、y2出現(xiàn)一低電平(第三組按下),group輸出11,當(dāng)接著key1按下,group輸出不變,當(dāng)再來了一個reset信號后,key又有效了,后面的也是如此。顯然實現(xiàn)了搶答鑒別鎖存功能。2、 組別譯碼提醒模塊:分析:當(dāng)group由00變化到01,10,11,時顯然light對應(yīng)真值表變化。而Warn開始以時鐘周期一半的頻率變化,由于需要在50個時鐘周期才能停止變化,所以為了更完整的驗證light信號的變化,設(shè)計group的變化時沒有根據(jù)實際時間來變化。3、 計分模塊:(1)分析:score表示分?jǐn)?shù)百位和十位。開始時,初始分?jǐn)?shù)為100分,當(dāng)group為10時,right來了一個低脈沖后,score2

11、變?yōu)榱?h11;當(dāng)group為01時,right來了一個低脈沖后,score1變?yōu)榱?h11;當(dāng)group為11時,wrong來了一個低脈沖后,score3變?yōu)?h09;再對其他分析,顯然實現(xiàn)了功能。(2) 該模塊調(diào)用的加分,扣分函數(shù)的測試波形及分分析Add:Reduce:分析:這兩個函數(shù)都用時鐘信號(作為測試的輔助信號)對其測試,可以看到,add中實現(xiàn)了每次加1的功能,(由于百位和十位,相當(dāng)于加了10),reduce實現(xiàn)了減一的功能。4、 動態(tài)掃描模塊: 分析:每來一個時鐘信號,位選按次序變化一次,斷選信號變化一次,對應(yīng)于該位所顯示的分?jǐn)?shù)的數(shù)碼管控制數(shù)值。比如:第三位對應(yīng)于用于控制score

12、2百位,被選中時,score3位8h30,顯然對應(yīng)斷選輸出8h06;其他位置可的同樣驗證。5、次頂層模塊分析:復(fù)位信號后,當(dāng)key0出現(xiàn)一個脈沖,light變?yōu)?h1. Warn開始以時鐘頻率的一半變化。顯然實現(xiàn)了模塊1和模塊2的功能。 每來一個時鐘信號,位選按次序變化一次,斷選信號變化一次,對應(yīng)于該位所顯示的分?jǐn)?shù)的數(shù)碼管控制數(shù)值。開始時,由于每人開始都是100分,段選百位和十位應(yīng)顯示1和0,對應(yīng)斷選信號為7h01,7h4f;第八位用于顯示搶答到的組數(shù),當(dāng)?shù)诎宋晃贿x打開時,對應(yīng)斷選輸出為7h4f,恰好對應(yīng)于所選組數(shù)第一組。當(dāng)來了一個right低脈沖后,位選第一位,第二位打開時(控制score1

13、百位和十位),斷選信號輸出7h4f, 7h4f,對應(yīng)于110分,顯然實現(xiàn)了加分功能和動態(tài)掃描功能。同樣可以驗證減分功能的真確性。五體會本次課程設(shè)計是一次對前段時間學(xué)習(xí)的考驗與檢測,通過這次對一個比較完整數(shù)字系統(tǒng)的設(shè)計,從最初的完全迷茫,到后來的題目選定,在到任務(wù)分配,與同學(xué)一起討論,查閱資料,解決遇到的問題,我真真切切地感受到了設(shè)計中的快樂與辛酸。有時候遇到了一個很簡單的錯誤,卻要找很久才能解決。有時候甚至苦惱,發(fā)怒。但是最欣喜的時刻莫過于當(dāng)綠色的波形在眼前出現(xiàn)的那刻,那是一份努力的結(jié)果,每每都讓我感到了小小的興奮。設(shè)計過程,我發(fā)現(xiàn)了很多以前沒有注意到的問題,比如,同一個變量不能在兩個alwa

14、ys語句中進(jìn)行賦值,盡管沒有語法錯誤,但是在綜合的時候會報錯。再比如,所有的輸入都應(yīng)該是wire型變量,所以在例化時,中間變量都要設(shè)置成線網(wǎng)型的。再比如,在調(diào)用函數(shù)時,不能把輸入直接作為參數(shù)傳遞。多少天的屏幕守候,多少個夜晚的挑燈夜戰(zhàn),當(dāng)時間的記憶寫滿辛酸的汗水,我想我收獲了艷陽下最豐碩的果實。六程序源碼(1)搶答鎖存鑒別模塊module snatch(key,reset,group );input2:0 key;input reset;output reg1:0 group;reg q;wire qiang,clk;assign qiang=(key0&key1&key2);

15、assign clk=(qiang|q);always(negedge clk or negedge reset)if(!reset) begin q<=0;endelse q<=!q;always(negedge clk)begincase(key)3'b110:group<=2'b01;3'b101:group<=2'b10;3'b011:group<=2'b11;default:group<=2'b00;endcaseendendmodule(2) 組別譯碼提醒模塊module warning(c

16、lk, group,light,warn );input clk;input 1:0 group;output reg2:0 light;output reg warn;reg ena;reg5:0t;initialbeginwarn<=1'b1;cnt<=6'b0;endalways(posedge clk)beginif(ena)begincnt<=cnt+1'b1;if(cnt=6'b1111111)ena<=1'b0;endendalways(group) begincase(group)2'b00: light

17、<= 2'b000;2'b01: light <= 2'b001;2'b10: light <= 2'b010;2'b11: light <= 2'b100;endcaseif(group!=00)beginena<=1'b1;endendalways(cnt)warn<=warn+1'b1;endmodule(3)計分模塊module cont(group,score1,score2,score3,right,wrong );input right,wrong;input1:0 gro

18、up;output reg7:0 score1,score2,score3;reg7:0 s1,s2,s3;initialbegin s1<=8'b00010000; s2<=8'b00010000; s3<=8'b00010000; score1<=8'b00010000; score2<=8'b00010000; score3<=8'b00010000;endfunction7:0 add;input7:0 score_start;reg3:0 gao4,di4;begin gao4=score_start

19、7:4;di4=score_start3:0+4'b1;if(di4=4'b1010)begindi4=4'b0000;gao4=gao4+4'b1;endadd=gao4,di4;endendfunctionfunction7:0 reduce;input7:0 score_start;reg3:0 gao4,di4;begin gao4=score_start7:4;di4=score_start3:0;if(di4=4'b0)begingao4=gao4-4'b1;di4=4'b1001;endelsedi4=di4-4'b

20、1;reduce=gao4,di4;endendfunctionalways(negedge right,negedge wrong)beginif(right=0) beginif(group=2'b01) s1=add(s1);if(group=2'b10) s2=add(s2);if(group=2'b11) s3=add(s3);score1=s1;score2=s2;score3=s3;end elsebeginif(group=2'b10) s1=reduce(s1);if(group=2'b10) s2=reduce(s2);if(grou

21、p=2'b11) s3=reduce(s3);score1=s1;score2=s2;score3=s3;endendendmodule(4)動態(tài)掃描組別分?jǐn)?shù)顯示模塊module scan_led(group,score1,score2,score3,clk,wei,duan);input 7:0score1,score2,score3;input clk;input1:0 group;output reg6:0 duan;output reg7:0 wei;reg2:0t_scan;reg3:0 dataout;initialbegincnt_scan<=16'b0;e

22、ndalways(posedge clk)cnt_scan<=cnt_scan+1'b1;always(cnt_scan)begincase(cnt_scan)3'b000:wei=8'b0000_0001;3'b001:wei=8'b0000_0010;3'b010:wei=8'b0000_0100;3'b011:wei=8'b0000_1000;3'b100:wei=8'b0001_0000;3'b101:wei=8'b0010_0000;3'b110:wei=8'b0100_00

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論