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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15、;key1&key2);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) 組別譯碼提醒模塊

16、module warning(clk, group,light,warn );input clk;input 1:0 group;output reg2:0 light;output reg warn;reg ena;reg5:0 cnt;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(grou

17、p)2'b00: light <= 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)計(jì)分模塊module cont(group,score1,score2,score3,right,wrong );input right

18、,wrong;input1:0 group;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;beg

19、in gao4=score_start7: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;end

20、elsedi4=di4-4'b1;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

21、=reduce(s2);if(group=2'b11) s3=reduce(s3);score1=s1;score2=s2;score3=s3;endendendmodule(4)動(dòng)態(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:0 cnt_scan;reg3:0 dataout;initialbegincn

22、t_scan<=16'b0;endalways(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_0

溫馨提示

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

評論

0/150

提交評論