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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

8、ate Programming File生成下載文件,雙擊Configure Target Device,按照提示完成下載。8、下載后,改變撥動開關和按鍵,觀察結果。9、使用chipscope片內(nèi)邏輯分析儀對設計進行硬件調(diào)試,驗證設計是否正確。掌握該調(diào)試方法和調(diào)試步驟。三、實驗結果及分析 1、數(shù)碼管驅(qū)動模塊(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、十進制計數(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、消抖模塊、十進制計數(shù)器(cnt

13、10.v)、數(shù)碼管驅(qū)動(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、各個模塊的仿真結果及分析四、實驗思考題解答1、如何用兩個或一個always 實現(xiàn)十進制計數(shù)模塊?寫出相應代碼。答:一個always見源程序,兩個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實現(xiàn)數(shù)碼管的驅(qū)動設計?寫出相應代碼。答: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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論