FPGA實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)_第1頁
FPGA實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)_第2頁
FPGA實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)_第3頁
FPGA實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)_第4頁
FPGA實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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í): 通信1301 指導(dǎo)教師: 劉桂華 西南科技大學(xué)信息工程學(xué)院制基于HDL十進(jìn)制計(jì)數(shù)、顯示系統(tǒng)設(shè)計(jì)一、 實(shí)驗(yàn)?zāi)康?、 掌握基于語言的 ISE 設(shè)計(jì)全流程;2、 熟悉、應(yīng)用 VerilogHDL描述數(shù)字電路;3、 掌握基于 Verilog的組合和時(shí)序邏輯電路的設(shè)計(jì)方法;4、 掌握 chipscope 片內(nèi)邏輯分析儀的使用與調(diào)試方法。二、 實(shí)驗(yàn)原理1、 實(shí)驗(yàn)內(nèi)容:設(shè)計(jì)具有異步復(fù)位、同步使能的十進(jìn)制計(jì)數(shù)器,其計(jì)數(shù)結(jié)果可以通過七段數(shù) 碼管、發(fā)光二極管等進(jìn)行顯示。2、 模

2、塊端口信號(hào)說明 : 輸入信號(hào): Clk_50m -系統(tǒng)采樣時(shí)鐘 clk -待計(jì)數(shù)的時(shí)鐘 clr -異步清零信號(hào),當(dāng) clr=0,輸出復(fù)位為 0,當(dāng) clr=1,正常計(jì)數(shù) ena-使能控制信號(hào),當(dāng) ena=1,電路正常累加計(jì)數(shù),否則電路不工作 輸出信號(hào): q6:0-驅(qū)動(dòng)數(shù)碼管,顯示計(jì)數(shù)值的個(gè)位 cout -1bit 數(shù)據(jù),顯示計(jì)數(shù)值向十位的進(jìn)位 COM-共陽級(jí)數(shù)碼管,公共端(接地,參考開發(fā)板原理圖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,先通過消抖模塊消抖后,再輸出至后續(xù)使

3、用。 1) 十進(jìn)制計(jì)數(shù)器模塊設(shè)計(jì) 輸入: CLK -待計(jì)數(shù)的時(shí)鐘 CLR -異步清零信號(hào),當(dāng) CLR =0,輸出復(fù)位為0,當(dāng) CLR =1,正常計(jì)數(shù) 。EN-使能控制信號(hào),當(dāng) EN=1,電路正常累加計(jì)數(shù),否則電路不工作 輸出: SUM3:0- 計(jì)數(shù)值的個(gè)位。即,在 CLK 上升沿檢測(cè)到 SUM=9 時(shí),SUM 將被置 0,開始新一輪的計(jì)數(shù)。tc -計(jì)數(shù)值的十位進(jìn)位,即:只有在時(shí)鐘 CLK 上升沿檢測(cè)到 SUM=9 時(shí),TC將被置 1,其余情況下 TC=0; 在設(shè)計(jì)中可以使用always, if-else-if語句實(shí)現(xiàn),設(shè)計(jì)中注意不要在兩個(gè)以上的always 模塊中對(duì)同一個(gè)變量進(jìn)行賦值,否則會(huì)產(chǎn)

4、生多重賦值源(multi-source)的問題。2) 數(shù)碼管顯示驅(qū)動(dòng)模塊(led.v) 輸入:input43:0 -待顯示的數(shù)值 輸出:out76:0 -驅(qū)動(dòng)數(shù)碼管的七位數(shù)值(注意下表中 out 的對(duì)應(yīng)位) 數(shù)碼輸入sum輸出out對(duì)應(yīng)碼(h)3210Aout0Bout1Cout2Dout3Eout4Fout5Gout600000000000181100011001111CF2001000100109230011000011086 401001001100CC501010100100A4601100100000A07011100011118F81000000000080910010000100

5、84A1010000100088b10111100000E0C11000110001B1d11011000010C2E11100110000B0F11110111000B83)消抖模塊 (1)按鍵抖動(dòng)的產(chǎn)生原因: 通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性 作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開。因而在閉 合及斷開的瞬間均伴隨有一連串的抖動(dòng),為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖。(2)本次實(shí)驗(yàn)提供的消抖模塊簡介 電平檢查模塊:檢測(cè)輸入的按鍵是否被按下或者釋放,并分別將H2L_Sig,L2H_Sig拉高, 并隨后拉低,給出按鍵

6、的操作信息。 延時(shí)模塊:對(duì)輸入的信號(hào)變化時(shí)刻進(jìn)行計(jì)時(shí)并觀察信號(hào)的變換情況,對(duì)輸出端口進(jìn)行恰 當(dāng)?shù)刭x值 實(shí)驗(yàn)資料中將給出消抖模塊設(shè)計(jì)源代碼。對(duì)模塊的具體設(shè)計(jì)細(xì)節(jié)不需理解,消抖模 塊不要求仿真三、 實(shí)驗(yàn)步驟1、 創(chuàng)建工程。為工程,為工程命名、指定存儲(chǔ)路徑個(gè)文件夾。2、 計(jì)數(shù)器及數(shù)碼管驅(qū)動(dòng)模塊設(shè)計(jì)創(chuàng)建VHD模塊文件,對(duì)各個(gè)模塊進(jìn)行設(shè)計(jì)(1) 計(jì)數(shù)器模塊代碼編寫module cnt10(clk,clr,en,sum,tc );input clk,clr,en;output reg 3:0 sum;output tc;assign tc=(sum=4'b1111);always (posedge

7、 clk ,negedge clr)beginif(clr) sum<=4'b0000;else if(en) begin sum=sum+1'b1;if(sum=4b'1010) sum<=4b'0000; endelse sum<=sum;endendmodule(2) 數(shù)碼管驅(qū)動(dòng)模塊代碼編寫module led(input 3:0 input4,output reg 6:0 out7 );always (input4)begincase(input4) 4'd0:out7=7'h01; 4'd1:out7=7

8、9;h4f; 4'd2:out7=7'h12; 4'd3:out7=7'h06; 4'd4:out7=7'h46; 4'd5:out7=7'h24; 4'd6:out7=7'h20; 4'd7:out7=7'h0f; 4'd8:out7=7'h00; 4'd9:out7=7'h04;default out7=7'h0;endcaseendendmodule(3) cnt10與led模塊的組合module top_2(clk,clr,ena,tc,out7);i

9、nput clk,clr,ena;output tc;output 6:0 out7;wire 3:0 sum;cnt10 cnt(clk,clr,ena,sum,tc);led led1(sum,out7);endmodule(4) 綜合仿真首先對(duì)計(jì)數(shù)器和數(shù)碼管驅(qū)動(dòng)兩個(gè)模塊進(jìn)行綜合,無誤后編寫測(cè)試激勵(lì)文件,進(jìn)行仿真。激勵(lì)文件及仿真結(jié)果如下:得到正確的仿真圖形后進(jìn)行這兩個(gè)模塊組合的綜合,創(chuàng)建激勵(lì)文件, 進(jìn)行仿真。激勵(lì)文件與仿真結(jié)果如下:3、 拷貝消抖模塊代碼:debounce_module.v,delay_module.v,detect_module.v,組合完成消抖模塊。 4、 將消抖模塊,

10、十進(jìn)制計(jì)數(shù)器(cnt10.v),數(shù)碼管驅(qū)動(dòng)模塊(led.v)組合為一個(gè)系統(tǒng)。 編寫代碼如下:module seg_top(clk_50M,clk,clr,ena,out,cout,com);input clk_50M,clk,clr,ena;output com,cout;output 6:0 out;wire clk_out;assign com=0;debounce_module u3(clk_50M,clr,clk,clk_out);top_2 top2(clk_out, clr,ena,cout,out);endmodule然后進(jìn)行頂層綜合。5、 引腳鎖定根據(jù)引腳鎖定表,編寫約束文件,

11、如下:6、 綜合報(bào)告閱讀綜合結(jié)果報(bào)告,記錄其中關(guān)于時(shí)鐘頻率、資源消耗等關(guān)鍵數(shù)據(jù)如下:7、 頂層模塊完成后,雙擊 Implement Design,進(jìn)行布局布線,雙擊 Generate 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、 對(duì)計(jì)數(shù)器時(shí)序圖分析:當(dāng)clr為低電平時(shí)(復(fù)位信號(hào)采用低電平有效),計(jì)數(shù)器輸出0000,當(dāng)clk, en(高電平有

12、效)為高電平時(shí),計(jì)數(shù)器開始正常計(jì)數(shù),時(shí)鐘信號(hào)每來一個(gè)上升沿,sum輸出端口從0000增加到1001,進(jìn)位tc變?yōu)闉?,再來一個(gè)上升沿后,tc變?yōu)?,sum又從0000開始計(jì)時(shí)。顯然時(shí)序圖符合預(yù)期功能,故功能仿真正確。2、 對(duì)數(shù)碼管驅(qū)動(dòng)時(shí)序圖分析:當(dāng)輸入信號(hào)從0000變化到1001時(shí),輸出信號(hào)對(duì)應(yīng)于數(shù)碼管真值表中輸出的變化。顯然功能仿真正確。3、 對(duì)數(shù)碼管驅(qū)動(dòng)與計(jì)數(shù)器的組合模塊時(shí)序圖分析: 當(dāng)輸入復(fù)位信號(hào)en為高電平,clr 為高電平時(shí),每來一個(gè)時(shí)鐘信號(hào),輸出out7也變化一次,且變化與數(shù)碼管驅(qū)動(dòng)真值表中輸入從一到十變化時(shí)的輸出變化一致。功能仿真真確。五、 實(shí)驗(yàn)思考題解答(實(shí)驗(yàn)指導(dǎo)書要求的思考題

13、)1、 如何用兩個(gè)或一個(gè) always 實(shí)現(xiàn)十進(jìn)制計(jì)數(shù)模塊?寫出相應(yīng)代碼。 module cnt10(clk,clr,en,sum,tc );input clk,clr,en;output reg 3:0 sum;output tc;assign tc=(sum=4'b1111);always (posedge clk ,negedge clr)beginif(clr) sum<=4'b0000;else if(en) begin sum=sum+1'b1;if(sum=4b'1010) sum<=4b'0000;endelse sum<

14、;=sum; endendmodule2、 如何用always,或 assign實(shí)現(xiàn)數(shù)碼管的驅(qū)動(dòng)設(shè)計(jì)?寫出相應(yīng)代碼。 module led(input 3:0 input4,output reg 6:0 out7 );always (input4)begincase(input4) 4'd0:out7=7'h01; 4'd1:out7=7'h4f; 4'd2:out7=7'h12; 4'd3:out7=7'h06; 4'd4:out7=7'h46; 4'd5:out7=7'h24; 4'd6

15、:out7=7'h20; 4'd7:out7=7'h0f; 4'd8:out7=7'h00; 4'd9:out7=7'h04;default out7=7'h0;endcaseendendmodule3、 比較實(shí)驗(yàn)一與實(shí)驗(yàn)二的實(shí)驗(yàn)過程,說明原理圖輸入法與 HDL輸入法 的不同的應(yīng)用環(huán)境。實(shí)驗(yàn)一中應(yīng)用的是原理圖完成十進(jìn)制計(jì)數(shù)器的數(shù)顯,工作量相對(duì)較大,需要繪制8張?jiān)韴D,其中還不包擴(kuò)消抖模塊。所以原理圖設(shè)計(jì)適合相對(duì)簡單的 電路,門電路較少的電路。而實(shí)驗(yàn)二應(yīng)用HDL語言描述要完成的功能,對(duì)于較復(fù)雜的電路設(shè)計(jì)起來相對(duì)簡單,所以HDL語言設(shè)計(jì)比較復(fù)雜的電路。門電路很多的電路。4、 CHIPSCOPE 調(diào)試和仿真有何區(qū)別?modelsim是寫好代碼后,對(duì)設(shè)計(jì)的功能進(jìn)行全面的仿真,檢查設(shè)計(jì)中的問題,不涉及FPGA硬件chipscope是個(gè)調(diào)試階段的調(diào)試工具,只能檢查局部,部分"出問題“的地方的檢驗(yàn),必須涉及FPGA硬件六、 體會(huì)1、 實(shí)驗(yàn)過程中對(duì)verrilog語言有了進(jìn)一步的熟悉,對(duì)ISE設(shè)計(jì)流程有了更深入的理解與認(rèn)識(shí)。2、 Verilog 硬件描述語言和c語言或其他編程語言有著一些相似的地方,但是也存

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論