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頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

-.z.西南科技大學(xué)"FPGA技術(shù)"課程設(shè)計報告設(shè)計名稱:數(shù)字式競賽搶答器**:**:專業(yè)班級通信1301教師:徐鋒西南科技大學(xué)信息工程學(xué)院制設(shè)計任務(wù)書設(shè)計名稱:數(shù)字式競賽搶答器組長:組員〔其他5人〕:課題總設(shè)計要求:設(shè)計題目的要求:〔1〕設(shè)計一個可容納3組參賽的數(shù)字式搶答器,每組設(shè)一個按鈕,供搶答使用?!?〕搶答器具有第一信號鑒別和鎖存功能,使除第一搶答者外的按鈕不起作用。〔3〕設(shè)置一個主持人“復(fù)位〞按鈕?!?〕主持人復(fù)位后,開場搶答,第一信號鑒別鎖存電路得到信號后,有指示燈顯示搶答組別,揚聲器發(fā)出1~2秒的音響?!?〕設(shè)置一個計分電路,每組開場預(yù)置100分,由主持人記分,答對一次10分,答錯一次減10分。組員〔〕濤的設(shè)計要求〔由組長提供應(yīng)組員〕:主要任務(wù):設(shè)計搶答鑒別鎖存模塊輸入端口:group1,group2,group3,reset.輸出端口:group[2:0]功能描述:reset為主持人復(fù)位信號〔開場搶答信號〕,當(dāng)reset有一個低電平到來時〔下降沿〕,該模塊開場鎖存輸入端口的信號,當(dāng)其中有一個發(fā)生變化時,將輸入封鎖。然后將鎖存到的信號按以下真值表輸出:鎖存信號輸出信號group1group2group3group[1]group[2]011011001011011當(dāng)信號還沒有被鎖存時,group輸出為00。組員〔〕曾雪的設(shè)計要求:主要任務(wù):組別譯碼提醒模塊輸入信號:group[2:0],clk輸出信號:warn,light[2:0]功能描述:模塊用于控制蜂鳴器及三個LED燈,其中warn控制蜂鳴器,light控制組別信號燈。當(dāng)出現(xiàn)group信號從00變化到其它后,蜂鳴器發(fā)出1~2s聲響,頻率由表示已經(jīng)搶答到,對應(yīng)搶答到組別的LED燈亮。組員〔〕明亮的設(shè)計要求:主要任務(wù):計分模塊輸入端口:group[2:0],right,wrong輸出端口:score1[7:0],score2[7:0],score3[7:0]功能描述:該模塊用于對各個組進展計分,并將結(jié)果輸出。當(dāng)right每來一個下降沿觸發(fā)對應(yīng)組別加分功能,當(dāng)wrong每來一個下降沿觸發(fā)對應(yīng)組別扣分功能。其中加分功能和扣分功能有其他組員提供函數(shù)。score1,score2,score3分別對應(yīng)于組別1,組別2,組別3的計分結(jié)果。由于只需考慮十位和百位,所以只需要8位的二進制數(shù),其中score的高4位表示得分的百位,低四位表示得分的十位數(shù)字。組員〔〕王翔的設(shè)計要求:主要任務(wù):組別分數(shù)動態(tài)掃描顯示模塊輸入端口:score1[7:0],score2[7:0],score3[7:0],group[2:0]輸出端口:wei[7:0],duan[6:0]功能描述:該模塊主要實現(xiàn)對分數(shù),搶答到的組別的動態(tài)掃描,將它們動態(tài)顯示在數(shù)碼數(shù)碼管上。其中score1,score2,score3分別表示當(dāng)前得分,wei[7:0]和duan[6:0]分別表示位選和段選信號,clk為掃描時鐘。組員〔〕林靜的設(shè)計要求:主要任務(wù):編寫2個函數(shù),分別實現(xiàn)計數(shù)模塊加分功能,扣分功能。并在一個模塊進展仿真測試函數(shù)功能,直到正確。add:其參數(shù)為當(dāng)前分數(shù),實現(xiàn)對參數(shù)的加分功能,每次加分為10分,并以八位二進制儲存百位和十位,其中高四位表示得分百位上的數(shù)字,低四位表示十位上的數(shù)字。reduce:實現(xiàn)對參數(shù)的加分功能,每次扣分為10分,其他一樣。2015年4月20日設(shè)計步驟設(shè)計準(zhǔn)備:根據(jù)設(shè)計需求,分析整個系統(tǒng)功能及設(shè)計任務(wù),可知,系統(tǒng)需要四個模塊來實現(xiàn)其功能。分別為:設(shè)計搶答鑒別鎖存模塊、組別譯碼搶答模塊、計分模塊、組別分數(shù)動態(tài)掃描模塊。初步選定設(shè)計方案,然后根據(jù)功能分配任務(wù)。設(shè)計輸入:設(shè)計編寫搶答鎖存模塊代碼。設(shè)計編寫組別譯碼模塊。設(shè)計編寫計分模塊設(shè)計動態(tài)掃描模塊將以上四個模塊組合,設(shè)計出這四個模塊的頂層模塊。加上消抖模塊功能仿真:在每個模塊設(shè)計完成后,對該模塊設(shè)計仿真波形,進展仿真。引腳約束:根據(jù)功能設(shè)計及FPGA外圍電路設(shè)計,對引腳進展約束。二.設(shè)計整體流程圖加減分加減分搶答信號搶答按鈕主持人控制開關(guān)分組LED燈FPGA數(shù)碼顯示分數(shù)蜂鳴器響起復(fù)位三.設(shè)計方案〔可包含主控制電路狀態(tài)轉(zhuǎn)換圖〕1、FPGA的具體模塊電路連接組合如以下圖所示:Group[1:0]Group[1:0]Cllkwrongright搶答鎖存模塊組別譯碼提醒模塊計分模塊組別分數(shù)動態(tài)掃描顯示模塊Light[2:0]Score[7:0]【[[[[[[【&:0】2、各個模塊的功能及設(shè)計方案;(1)搶答鎖存鑒別模塊功能:reset為主持人復(fù)位信號〔開場搶答信號〕,當(dāng)reset有一個低電平到來時〔下降沿〕,該模塊開場鎖存輸入端口的信號,當(dāng)其中有一個發(fā)生變化時,將輸入封鎖。然后將鎖存到的信號按真值表輸出?!?〕組別譯碼提醒模塊功能:模塊用于控制蜂鳴器及三個LED燈,其中beep控制蜂鳴器,light控制組別信號燈。當(dāng)出現(xiàn)group信號從00變化到其它后,蜂鳴器發(fā)出1~2s聲響,表示已經(jīng)搶答到,對應(yīng)搶答到組別的LED燈亮。〔3〕計分模塊功能:該模塊用于對各個組進展計分,并將結(jié)果輸出。當(dāng)right每來一個下降沿觸發(fā)對應(yīng)組別加分功能,當(dāng)wrong每來一個下降沿觸發(fā)對應(yīng)組別扣分功能。。score1,score2,score3分別對應(yīng)于組別1,組別2,組別3的計分結(jié)果。由于只需考慮十位和百位,所以只需要8位的二進制數(shù),其中score的高4位表示得分的百位,低四位表示得分的十位數(shù)字。〔4〕計分模塊的加分,扣分函數(shù)設(shè)計:Add:其參數(shù)為當(dāng)前分數(shù),實現(xiàn)對參數(shù)的加分功能,每次加分為10分,并以八位二進制儲存百位和十位,其中高四位表示得分百位上的數(shù)字,低四位表示十位上的數(shù)字。reduce:實現(xiàn)對參數(shù)的加分功能,每次扣分為10分,其他一樣?!?〕動態(tài)掃描組別分數(shù)顯示模塊功能:該模塊主要實現(xiàn)對分數(shù),搶答到的組別的動態(tài)掃描,將它們動態(tài)顯示在數(shù)碼數(shù)碼管上。其中score1,score2,score3分別表示當(dāng)前得分,wei[7:0]和duan[6:0]分別表示位選和段選信號.〔6〕前4個模塊的組合設(shè)計思路:根據(jù)設(shè)計方案具體的模塊連接,如1中圖所示,設(shè)計頂層模塊。輸入:總共3個按鍵輸入信號,一個時鐘輸入信號輸出:一個控制組別燈的信號,一個數(shù)碼管斷選和一個位選信號。具體設(shè)計如下:四.頂層及各自模塊波形圖仿真分析1、鑒別鎖存模塊波形設(shè)計:分析:開場時,group輸出為00,當(dāng)reset復(fù)位后,key[2]出現(xiàn)一低電平〔第三組按下〕,group輸出11,當(dāng)接著key[1]按下,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表示分數(shù)百位和十位。開場時,初始分數(shù)為100分,當(dāng)group為10時,right來了一個低脈沖后,score2變?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)于該位所顯示的分數(shù)的數(shù)碼管控制數(shù)值。比方:第三位對應(yīng)于用于控制score2百位,被選中時,score3位8’h30,顯然對應(yīng)斷選輸出8’h06;其他位置可的同樣驗證。5、次頂層模塊分析:復(fù)位信號后,當(dāng)key[0]出現(xiàn)一個脈沖,light變?yōu)?’h1.Warn開場以時鐘頻率的一半變化。顯然實現(xiàn)了模塊1和模塊2的功能。每來一個時鐘信號,位選按次序變化一次,斷選信號變化一次,對應(yīng)于該位所顯示的分數(shù)的數(shù)碼管控制數(shù)值。開場時,由于每人開場都是100分,段選百位和十位應(yīng)顯示1和0,對應(yīng)斷選信號為7’h01,7’h4f;第八位用于顯示搶答到的組數(shù),當(dāng)?shù)诎宋晃贿x翻開時,對應(yīng)斷選輸出為7’h4f,恰好對應(yīng)于所選組數(shù)第一組。當(dāng)來了一個right低脈沖后,位選第一位,第二位翻開時〔控制score1百位和十位〕,斷選信號輸出7’h4f,7’h4f,對應(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)了很多以前沒有注意到的問題,比方,同一個變量不能在兩個always語句中進展賦值,盡管沒有語法錯誤,但是在綜合的時候會報錯。再比方,所有的輸入都應(yīng)該是wire型變量,所以在例化時,中間變量都要設(shè)置成線網(wǎng)型的。再比方,在調(diào)用函數(shù)時,不能把輸入直接作為參數(shù)傳遞。多少天的屏幕守候,多少個夜晚的挑燈夜戰(zhàn),當(dāng)時間的記憶寫滿辛酸的汗水,我想我收獲了艷陽下最豐碩的果實。六.程序源碼(1)搶答鎖存鑒別模塊modulesnatch(key,reset,group); input[2:0]key; inputreset; outputreg[1:0]group; regq; wireqiang,clk; assignqiang=(key[0]&key[1]&key[2]); assignclk=(qiang||q); always(negedgeclkornegedgereset) if(!reset) begin q<=0; end elseq<=!q; always(negedgeclk) begin case(key) 3'b110:group<=2'b01; 3'b101:group<=2'b10; 3'b011:group<=2'b11; default:group<=2'b00; endcase endendmodule〔2〕組別譯碼提醒模塊modulewarning(clk,group,light,warn); inputclk; input[1:0]group; outputreg[2:0]light; outputregwarn; regena; reg[5:0]t; initial begin warn<=1'b1; t<=6'b0; end always(posedgeclk) begin if(ena) begin t<=t+1'b1; if(t==6'b1111111) ena<=1'b0; end end always(group) begin case(group) 2'b00:light<=2'b000; 2'b01:light<=2'b001; 2'b10:light<=2'b010; 2'b11:light<=2'b100; endcase if(group!=00) begin ena<=1'b1; end end always(t) warn<=warn+1'b1;endmodule〔3〕計分模塊modulecont(group,score1,score2,score3,right,wrong); inputright,wrong; input[1:0]group; outputreg[7:0]score1,score2,score3; reg[7:0]s1,s2,s3; initial begin s1<=8'b00010000; s2<=8'b00010000; s3<=8'b00010000; score1<=8'b00010000; score2<=8'b00010000; score3<=8'b00010000; end function[7:0]add; input[7:0]score_start; reg[3:0]gao4,di4; begin gao4=score_start[7:4]; di4=score_start[3:0]+4'b1; if(di4==4'b1010) begin di4=4'b0000; gao4=gao4+4'b1; end add={gao4,di4}; end endfunction function[7:0]reduce; input[7:0]score_start; reg[3:0]gao4,di4; begin gao4=score_start[7:4]; di4=score_start[3:0]; if(di4==4'b0) begin gao4=gao4-4'b1; di4=4'b1001; end else di4=di4-4'b1; reduce={gao4,di4}; end endfunction always(negedgeright,negedgewrong) begin if(right==0) begin if(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 else begin if(group==2'b10)s1=reduce(s1); if(group==2'b10)s2=reduce(s2); if(group==2'b11)s3=reduce(s3); score1=s1; score2=s2; score3=s3; end endendmodule〔4〕動態(tài)掃描組別分數(shù)顯示模塊modulescan_led(group,score1,score2,score3,clk,wei,duan); input[7:0]score1,score2,score3; inputclk; input[1:0]group; outputreg[6:0]duan; outputreg[7:0]wei; reg[2:0]t_scan; reg[3:0]dataout; initial begin t_scan<=16'b0; end always(posedgeclk) t_scan<=t_scan+1'b1; always(t_scan) begin case(t_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=

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論