FPGA基于HDL的十進(jìn)制計(jì)數(shù)器、顯示系統(tǒng)設(shè)計(jì)_第1頁(yè)
FPGA基于HDL的十進(jìn)制計(jì)數(shù)器、顯示系統(tǒng)設(shè)計(jì)_第2頁(yè)
FPGA基于HDL的十進(jìn)制計(jì)數(shù)器、顯示系統(tǒng)設(shè)計(jì)_第3頁(yè)
FPGA基于HDL的十進(jìn)制計(jì)數(shù)器、顯示系統(tǒng)設(shè)計(jì)_第4頁(yè)
FPGA基于HDL的十進(jìn)制計(jì)數(shù)器、顯示系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、*大學(xué)實(shí)驗(yàn)報(bào)告課程名稱: 基于FPGA的現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì) 實(shí)驗(yàn)名稱: 基于HDL的十進(jìn)制計(jì)數(shù)器、顯示系統(tǒng)設(shè)計(jì) 姓 名: * 學(xué) 號(hào): 班 級(jí): 電子* 指導(dǎo)教師: *信息工程學(xué)院2一、實(shí)驗(yàn)原理1、實(shí)驗(yàn)內(nèi)容:設(shè)計(jì)具有異步復(fù)位、同步使能的十進(jìn)制計(jì)數(shù)器,其計(jì)數(shù)結(jié)果可以通過(guò)七段數(shù)碼管、發(fā)光二極管等進(jìn)行顯示。使能控制端異步清零端十進(jìn)制計(jì)數(shù)器七段數(shù)碼管顯示譯碼器時(shí)鐘端FPGA進(jìn)位圖2-1 系統(tǒng)原理圖2、模塊端口信號(hào)說(shuō)明 輸入信號(hào): Clk_50M -系統(tǒng)采樣時(shí)鐘clk -待計(jì)數(shù)的時(shí)鐘clr -異步清零信號(hào),當(dāng)clr=1,輸出復(fù)位為0,當(dāng)clr=0,正常計(jì)數(shù)ena-使能控制信號(hào),當(dāng)ena=1,電路正常累加計(jì)

2、數(shù),否則電路不工作輸出信號(hào):q6:0-驅(qū)動(dòng)數(shù)碼管,顯示計(jì)數(shù)值的個(gè)位dp -1bit數(shù)據(jù),顯示計(jì)數(shù)值向十位的進(jìn)位COM-共陽(yáng)級(jí)數(shù)碼管公共端(接VCC)3、以自頂向下的設(shè)計(jì)思路進(jìn)行模塊劃分: 整個(gè)系統(tǒng)主要設(shè)計(jì)的模塊是:十進(jìn)制計(jì)數(shù)模塊和數(shù)碼管驅(qū)動(dòng)模塊,由于實(shí)驗(yàn)板的按鍵為實(shí)現(xiàn)硬件防抖,則需要將按鍵輸入的時(shí)鐘clk,先通過(guò)消抖模塊消抖后,再輸出至后續(xù)使用。圖2-2 系統(tǒng)模塊劃分和引腳連線圖1)十進(jìn)制計(jì)數(shù)器模塊設(shè)計(jì)輸入:CLK -待計(jì)數(shù)的時(shí)鐘CLR -異步清零信號(hào),當(dāng)CLR =1,輸出復(fù)位為0,當(dāng)CLR =0,正常計(jì)數(shù)ENA-使能控制信號(hào),當(dāng)ENA=1,電路正常累加計(jì)數(shù),否則電路不工作輸出:SUM3:0-

3、 計(jì)數(shù)值的個(gè)位。即,在CLK上升沿檢測(cè)到SUM=9時(shí),SUM將被置0,開始新一輪的計(jì)數(shù)。COUT -計(jì)數(shù)值的十位進(jìn)位,即:只有在時(shí)鐘CLK上升沿檢測(cè)到SUM=9時(shí),COUT將被置1,其余情況下COUT=0。2)數(shù)碼管顯示驅(qū)動(dòng)模塊(led.v)輸入:sum3:0 -待顯示的數(shù)值輸出:q6:0 -驅(qū)動(dòng)數(shù)碼管的七位數(shù)值(注意下表中out的對(duì)應(yīng)位)表2-1 共陽(yáng)極數(shù)碼管驅(qū)動(dòng)模塊輸入與輸出關(guān)系表 數(shù)碼輸入sum輸出out對(duì)應(yīng)碼(h)3210A out6 B out5 C out4 D out3 E out2 F out1 G out0 00000000000181100011001111CF200100

4、0100109230011000011086 401001001100CC501010100100A4601100100000A07011100011118F8100000000008091001000010084A1010000100088b10111100000E0C11000110001B1d11011000010C2E11100110000B0F11110111000B8這是一個(gè)組合邏輯電路,可以考慮用always,或者assign 語(yǔ)句設(shè)計(jì)。3)消抖模塊 (1)按鍵抖動(dòng)的產(chǎn)生原因:通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不

5、會(huì)馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng),為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖。圖2-3 按鍵抖動(dòng)波形圖(2)本次實(shí)驗(yàn)提供的消抖模塊簡(jiǎn)介圖2-4 消抖模塊框圖電平檢查模塊:檢測(cè)輸入的按鍵是否被按下或者釋放,并分別將H2L_Sig,L2H_Sig拉高,并隨后拉低,給出按鍵的操作信息。延時(shí)模塊:對(duì)輸入的信號(hào)變化時(shí)刻進(jìn)行計(jì)時(shí)并觀察信號(hào)的變換情況,對(duì)輸出端口進(jìn)行恰當(dāng)?shù)刭x值。二、實(shí)驗(yàn)步驟1、建立工程:file->New Project。 2、建立新Verilog HDL模塊編輯窗口,分別按照十進(jìn)制計(jì)數(shù)器(cnt10.v),數(shù)碼管驅(qū)動(dòng)模塊(led.v

6、)的目標(biāo)要求進(jìn)行設(shè)計(jì),各模塊在綜合后,采用畫波形的方式編輯測(cè)試激勵(lì)波形,對(duì)相關(guān)模塊進(jìn)行功能仿真,實(shí)現(xiàn)模塊的驗(yàn)證、修正。 3、用Verilog HDL將cnt10.v和led.v組合為一個(gè)模塊,完成綜合、功能仿真,分析波形,修正設(shè)計(jì)。 4、拷貝消抖模塊代碼:debounce_module.v,delay_module.v,detect_module.v,組合完成消抖模塊。5、將消抖模塊,十進(jìn)制計(jì)數(shù)器(cnt10.v),數(shù)碼管驅(qū)動(dòng)模塊(led.v)組合為一個(gè)系統(tǒng)綜合,不仿真。6、硬件測(cè)試平臺(tái)設(shè)計(jì):系統(tǒng)輸入: 十進(jìn)制計(jì)數(shù)器cnt10模塊中的復(fù)位信號(hào)(clr)通過(guò)撥動(dòng)開關(guān)SW3輸入,使能信號(hào)(ena)

7、通過(guò)撥動(dòng)開關(guān)SW2輸入,待計(jì)數(shù)時(shí)鐘clk通過(guò)按鍵V16輸入,為保證設(shè)計(jì)效果,將clk通過(guò)消抖模塊處理后,生成的clk_out送到后續(xù)模塊。 系統(tǒng)輸出: 向十位的進(jìn)位可以鎖于發(fā)光二極管(比如:LD4) 數(shù)碼管驅(qū)動(dòng)的七位信號(hào)可輸出到D5,B6,E7,F(xiàn)7,B4,A4,C5等引腳。為簡(jiǎn)化設(shè)計(jì),消抖模塊的復(fù)位信號(hào)、使能信號(hào)與cnt10模塊共用由此引腳鎖定按下表完成:引腳鎖定表信號(hào)名引腳號(hào)信號(hào)名引腳號(hào)信號(hào)名引腳號(hào)clrN17AC5EB6enaH18BB4FE7clkV16CA4GA6clk_50mC9DF7COMD5 7、頂層模塊完成后,雙擊Implement Design,進(jìn)行布局布線,雙擊Gener

8、ate Programming File生成下載文件,雙擊Configure Target Device,按照提示完成下載。8、下載后,改變撥動(dòng)開關(guān)和按鍵,觀察結(jié)果。9、使用chipscope片內(nèi)邏輯分析儀對(duì)設(shè)計(jì)進(jìn)行硬件調(diào)試,驗(yàn)證設(shè)計(jì)是否正確。掌握該調(diào)試方法和調(diào)試步驟。三、實(shí)驗(yàn)結(jié)果及分析 1、數(shù)碼管驅(qū)動(dòng)模塊(led.v)module led(sum,q);input 3:0 sum;output 6:0 q;reg 6:0 q;always (sum) begin case (sum) 4'b0000: q<=7'b0000001; 4'b0001: q<=

9、7'b1001111; 4'b0010: q<=7'b0010010;4'b0011: q<=7'b0000110;4'b0100: q<=7'b1001100;4'b0101: q<=7'b0100100;4'b0110: q<=7'b0100000; 4'b0111: q<=7'b0001111; 4'b1000: q<=7'b0000000;4'b1001: q<=7'b0000100; 4'b10

10、10: q<=7'b0001000;4'b1011: q<=7'b1100000;4'b1100: q<=7'b0110001;4'b1101: q<=7'b1000010;4'b1110: q<=7'b0110000; 4'b1111: q<=7'b0111000; endcase end endmodule 2、十進(jìn)制計(jì)數(shù)器(cnt10.v)module cnt10(CLK,CLR,ENA,SUM,COUT); input CLK; input CLR; input

11、ENA; output 3:0 SUM; output COUT; reg 3:0 SUM=4'b0000; reg COUT=0; always (posedge CLR or posedge CLK ) begin if( CLR ) begin SUM<=4'b0000; COUT<=0; end else if (ENA) begin if (SUM=4'b1001) begin SUM<=4'b0000; COUT<=1; end else begin SUM<=SUM+1; COUT<=0; end endelse

12、 begin SUM<=SUM; COUT<=COUT; endendendmodule3、cnt10.v和led.v組合模塊(zonghe1)module zonghe1(clk,clr,ena,out,dp);input clk;input clr;input ena;output 6:0 out;output dp; wire 3:0 sum1;led u1(.sum(sum1), .q(out);cnt10 u2(.SUM(sum1), .COUT(dp), .CLK(clk), .ENA(ena), .CLR(clr);endmodule4、消抖模塊、十進(jìn)制計(jì)數(shù)器(cnt

13、10.v)、數(shù)碼管驅(qū)動(dòng)(led.v)組合模塊module zonghe2(clk,clr,ena,out,dp,clk_50M);input clk;input clr;input ena;input clk_50M;output 6:0 out;output dp; wire clk_out;zonghe1 u3(.ena(ena), .out(out), .clr(clr), .clk(clk_out), .dp(dp);debounce_module u4(.CLK(clk_50M), .RSTn(clr), .Pin_In(clk), .Pin_Out(clk_out);endmodu

14、le5、資源消耗6、各個(gè)模塊的仿真結(jié)果及分析四、實(shí)驗(yàn)思考題解答1、如何用兩個(gè)或一個(gè)always 實(shí)現(xiàn)十進(jìn)制計(jì)數(shù)模塊?寫出相應(yīng)代碼。答:一個(gè)always見源程序,兩個(gè)always程序如下:module cnt10(CLK,CLR,ENA,SUM,COUT); input CLK,CLR,ENA; output 3:0 SUM; output COUT; reg 3:0 SUM=4'b0000; reg COUT=0; reg reset;always ( CLR ) begin if (CLR) reset<=1; else reset<=0; endalways (pose

15、dge CLK or posedge reset ) begin if(reset)begin SUM<=4'b0000;COUT<=0;end else if (ENA)begin if (SUM=4'b1001) beginSUM<=4'b0000;COUT<=1;end else beginSUM<=SUM+1;COUT<=0;endendelse begin SUM<=SUM; COUT<=COUT; endendendmodule2、如何用always,或assign實(shí)現(xiàn)數(shù)碼管的驅(qū)動(dòng)設(shè)計(jì)?寫出相應(yīng)代碼。答:alw

16、ays程序見源程序,assign如下module led(sum,q);input 3:0 sum;output 6:0 q;reg 6:0 q;wire 6:0 t0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15;assign t0=7'b0000001; assign t1=7'b1001111;assign t2=7'b0010010; assign t3=7'b0000110;assign t4=7'b1001100;assign t5=7'b0100100;assign t6=7&

17、#39;b0100000;assign t7=7'b0001111;assign t8=7'b0000000;assign t9=7'b0000100;assign t10=7'b0001000;assign t11=7'b1100000;assign t12=7'b0110001;assign t13=7'b1000010;assign t14=7'b0110000;assign t15=7'b0111000;always (sum) begin case (sum) 4'b0000: q<=t0; 4'b0001: q<=t1; 4'b0010: q<=t2; 4'b0011: q<=t3;4'b0100: q<=t4; 4'b0101: q<=t5;4'b0110: q<=t6; 4'b0111: q<=t7; 4'b1000: q<=t8; 4'b1001: q<=t9; 4'b1010: q<=t10;4'b1011: q<=t11;4'b1100: q&

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論