基于FPGA的邏輯電路設(shè)計與實現(xiàn)_第1頁
基于FPGA的邏輯電路設(shè)計與實現(xiàn)_第2頁
基于FPGA的邏輯電路設(shè)計與實現(xiàn)_第3頁
基于FPGA的邏輯電路設(shè)計與實現(xiàn)_第4頁
基于FPGA的邏輯電路設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、長春理工大學(xué)國家級電工電子實驗教學(xué)示范中心學(xué)生實驗報告20152016學(xué)年 第二學(xué)期實驗課程 數(shù)字電路實驗(軟件部分) 實驗地點 電子技術(shù)EDA實驗室學(xué) 院 專 業(yè) 學(xué) 號 姓 名 實驗項目基于FPGA 的邏輯電路設(shè)計與實現(xiàn)實驗時間 月 日 星期 , 節(jié)實驗臺號預(yù)習(xí)成績報告成績一、實驗?zāi)康?. 通過實例了解可編程邏輯器件FPGA的EDA軟件開發(fā)平臺QuartusII的使用方法;2. 熟悉利用硬件描述語言Verilog編程來實現(xiàn)數(shù)字電路設(shè)計的方法,并掌握電路功能的時序仿真方法,目標(biāo)芯片的配置方法及程序下載方法;3. 通過硬件電路的功能驗證感受現(xiàn)代電路的自頂向下的設(shè)計思想。二、實驗儀器計算機三、實

2、驗原理采用可編程器件FPGA,通過硬件描述語言Verilog編程來實現(xiàn)硬件電路的設(shè)計四、預(yù)習(xí)內(nèi)容1. 預(yù)習(xí)用硬件描述語言Verilog編程的基本方法。2. 初步了解EDA軟件開發(fā)平臺QuartusII和Modelsim的作用及使用方法。五、 實驗內(nèi)容(一)基于Verilog的二輸入與非門的設(shè)計、仿真與硬件驗證1. 建立新工程并設(shè)計二輸入與非門的源文件,并完成編譯;2. 用Quartus II 引用Modelsim,對設(shè)計的電路進行時序仿真;3. 引腳分配并把程序下載到目標(biāo)器件中,通過硬件驗證電路功能。(二)基于Verilog的點亮4位數(shù)碼管循環(huán)顯示電路的設(shè)計、仿真與硬件驗證1. 建立新工程并設(shè)

3、計4位數(shù)碼管循環(huán)顯示的源文件,并完成編譯;2. 用Quartus II 引用Modelsim,對設(shè)計的電路進行時序仿真;3. 引腳分配并把程序下載到目標(biāo)器件中,通過硬件驗證電路功能。(三)基于Verilog的按鍵點亮LED燈的設(shè)計與實現(xiàn)(選作)六、實驗方法(一)基于Verilog的二輸入與非門的設(shè)計、仿真與硬件驗證(利用LED和按鍵驗證與非門)1建立工程;2建立新文件并編譯;Verilog HDL語言參考代碼如下:module my_nand(a,b,c); / 模塊名及端口參數(shù)input a,b; /輸入端口定義,輸入a由開關(guān)KEY1決定,0:按下,1:未按下 /輸入b由開關(guān)KEY2決定,0

4、:按下,1:未按下output c; /輸出端口定義,輸出c由LED1顯示, 0:點亮,1:熄滅assign c=(a&b); /assign c=(a|b); 或非門 /assign c=ab; /異或門 /assign c=ab; / 同或門Endmodule3用Quartus II 引用Modelsim進行仿真,通過時序波形觀察延時;測試文件如下:timescale 1 ns/ 1 psmodule my_nand_vlg_tst();reg a;reg b; wire c; my_nand i1 ( .a(a),.b(b),.c(c);修改部分initial begin a=0;for

5、ever#10 a=a; end always begin b=0;#400 b=1;#400;$stop; end endmodule4引腳分配助學(xué)板上有4個獨立LED燈,和4個獨立按鍵如下圖所示,可以按FPGA的相應(yīng)引腳號進行目標(biāo)器件的引腳分配后,再重新編譯。 5程序下載到目標(biāo)文件,進行硬件功能驗證。二、基于Verilog的點亮4位數(shù)碼管循環(huán)顯示電路的設(shè)計、仿真與硬件驗證(數(shù)碼管靜態(tài)控制)1建立工程;2建立新文件并編譯;Verilog HDL語言參考代碼如下:module sled(seg,dig,clock,rst_n,);input clock; / 輸入端口定義,50M 時鐘 inp

6、ut rst_n;output 7:0 seg; output 3:0 dig; reg 7:0 seg_reg; reg 3:0 dig_reg; reg 3:0 disp_dat; reg 36:0 count; always (posedge clock )begin if(!rst_n) count = 37b0; else count = count + 1b1; dig_reg= 4b0000;/endalways (count3)begindisp_dat = count7:4;endalways (disp_dat)begin case (disp_dat)4h0 : seg_

7、reg = 8hc0; 4h1 : seg_reg = 8hf9; 4h2 : seg_reg = 8ha4; 4h3 : seg_reg = 8hb0; 4h4 : seg_reg = 8h99; 4h5 : seg_reg = 8h92; 4h6 : seg_reg = 8h82; 4h7 : seg_reg = 8hf8; 4h8 : seg_reg = 8h80; 4h9 : seg_reg = 8h90; 4ha : seg_reg = 8h88; 4hb : seg_reg = 8h83; 4hc : seg_reg = 8hc6; 4hd : seg_reg = 8ha1; 4h

8、e : seg_reg = 8h86; 4hf : seg_reg = 8h8e; endcaseendassign seg=seg_reg;assign dig=dig_reg;endmodule3用Quartus II 引用Modelsim進行仿真;同樣按照與非門的步驟對其進行仿真,其測試文件內(nèi)容如下:timescale 1 ns/ 1 psmodule sled_vlg_tst();reg clock;reg rst_n;wire 3:0 dig;wire 7:0 seg; sled i1 ( .clock(clock),.rst_n(rst_n),.dig(dig),.seg(seg)

9、;修改部分initial begin clock=0;forever#10 clock=clock; end always begin rst_n=0;forever#20 rst_n=1; end endmodule4配置引腳助學(xué)板上有4個共陽極的數(shù)碼管,如下圖所示,可以按FPGA的相應(yīng)引腳號進行目標(biāo)器件的引腳分配后,再重新編譯。 5程序下載到目標(biāo)文件,進行硬件功能驗證。注意:下載的程序需要修改一些語句:(參考如下)module sled(seg,dig,clock,);input clock;output 7:0 seg; /數(shù)碼管段碼輸出output 3:0 dig; /數(shù)碼管位碼輸出r

10、eg 7:0 seg; /數(shù)碼管段碼輸出寄存器reg 3:0 dig; /數(shù)碼管位碼輸出寄存器reg 3:0 disp_dat; /顯示數(shù)據(jù)寄存器reg 36:0 count; /定義計數(shù)寄存器always (posedge clock )begin count = count + 1b1; dig= 8b00000000;/endalways (count24)begindisp_dat = count28:25;endalways (disp_dat)begin case (disp_dat)4h0 : seg = 8hc0; /顯示04h1 : seg = 8hf9; /顯示14h2 :

11、 seg = 8ha4; /顯示24h3 : seg = 8hb0; /顯示34h4 : seg = 8h99; /顯示44h5 : seg = 8h92; /顯示54h6 : seg = 8h82; /顯示64h7 : seg = 8hf8; /顯示74h8 : seg = 8h80; /顯示84h9 : seg = 8h90; /顯示94ha : seg = 8h88; /顯示a4hb : seg = 8h83; /顯示b4hc : seg = 8hc6; /顯示c4hd : seg = 8ha1; /顯示d4he : seg = 8h86; /顯示e4hf : seg = 8h8e; /

12、顯示fendcaseendendmodule (三)基于Verilog的按鍵點亮LED燈 1建立工程;2建立新文件并編譯;Verilog HDL語言參考代碼如下:module key_led(key,led);/input3:0key;/output3:0led;reg3:0led_r;reg3:0buffer;assign led=led_r;always(key)beginbuffer=key;case(buffer)8b1110:led_r=8b1110;/如果按下的是key1,那么點亮LED18b1101:led_r=8b1100;/如果按下的是key2,那么點亮LED1-LED28b

13、1011:led_r=8b1000;/key38b0111:led_r=8b0000;/key4 default:led_r=8b1111;endcaseendendmodule 3配置引腳4程序下載到目標(biāo)文件,進行硬件功能驗證。七、實驗數(shù)據(jù)圖表仿真波形1:仿真波形2:八、 思考題1. 分析各個語句的功能。(1)module my_nand(a,b,c); / 模塊名及端口參數(shù)input a,b; /輸入端口定義,輸入a由開關(guān)KEY1決定,0:按下,1:未按下 /輸入b由開關(guān)KEY2決定,0:按下,1:未按下output c; /輸出端口定義,輸出c由LED1顯示, 0:點亮,1:熄滅assi

14、gn c=(a&b); /assign c=(a|b); 或非門 /assign c=ab; /異或門 /assign c=ab; / 同或門Endmodule(2)module sled(seg,dig,clock,);input clock;output 7:0 seg; /數(shù)碼管段碼輸出output 3:0 dig; /數(shù)碼管位碼輸出reg 7:0 seg; /數(shù)碼管段碼輸出寄存器reg 3:0 dig; /數(shù)碼管位碼輸出寄存器reg 3:0 disp_dat; /顯示數(shù)據(jù)寄存器reg 36:0 count; /定義計數(shù)寄存器always (posedge clock )begin co

15、unt = count + 1b1; dig= 8b00000000;/endalways (count24)begindisp_dat = count28:25;endalways (disp_dat)begin case (disp_dat)4h0 : seg = 8hc0; /顯示04h1 : seg = 8hf9; /顯示14h2 : seg = 8ha4; /顯示24h3 : seg = 8hb0; /顯示34h4 : seg = 8h99; /顯示44h5 : seg = 8h92; /顯示54h6 : seg = 8h82; /顯示64h7 : seg = 8hf8; /顯示74h8 : seg = 8h80; /顯示84h9 : seg = 8h90; /顯示94ha : seg = 8h88; /顯示a4hb : seg = 8h83; /顯示b4hc : seg = 8hc6; /顯示c4hd : seg = 8ha1; /顯示d4he : seg = 8h86; /顯示e4hf : seg = 8h8e; /顯示fendcaseend

溫馨提示

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

最新文檔

評論

0/150

提交評論