FPGA開發(fā)實(shí)用教程-基于Xilinx和Verilog HDL(微課版) 課件 【ch03】流水燈實(shí)驗(yàn)_第1頁
FPGA開發(fā)實(shí)用教程-基于Xilinx和Verilog HDL(微課版) 課件 【ch03】流水燈實(shí)驗(yàn)_第2頁
FPGA開發(fā)實(shí)用教程-基于Xilinx和Verilog HDL(微課版) 課件 【ch03】流水燈實(shí)驗(yàn)_第3頁
FPGA開發(fā)實(shí)用教程-基于Xilinx和Verilog HDL(微課版) 課件 【ch03】流水燈實(shí)驗(yàn)_第4頁
FPGA開發(fā)實(shí)用教程-基于Xilinx和Verilog HDL(微課版) 課件 【ch03】流水燈實(shí)驗(yàn)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

流水燈實(shí)驗(yàn)卓越工程師培養(yǎng)系列FPGA開發(fā)實(shí)用教程——基于Xilinx和VerilogHDL第三章01實(shí)驗(yàn)內(nèi)容學(xué)習(xí)模塊化設(shè)計(jì)思想及分頻器和計(jì)數(shù)器的工作原理,基于FPGA高級(jí)開發(fā)系統(tǒng)設(shè)計(jì)一個(gè)流水燈模塊,使編號(hào)為LED0?LED7的8個(gè)發(fā)光二極管(LED)依次點(diǎn)亮、熄滅,呈流水狀顯示。具體地講,先讓最右端的LED點(diǎn)亮,等待Is后熄滅;再讓第二個(gè)LED點(diǎn)亮,等待Is后熄滅;以此類推。當(dāng)最左端的LED熄滅后,再點(diǎn)亮最右端的LED,形成循環(huán)。實(shí)驗(yàn)內(nèi)容02實(shí)驗(yàn)原理流水燈實(shí)驗(yàn)涉及的硬件電路包括8個(gè)位于FPGA高級(jí)開發(fā)系統(tǒng)上的LED(編號(hào)為LED0?LED7),以及分別與這8個(gè)LED串聯(lián)的限流電阻R513?R520,這8個(gè)LED分別通過470。實(shí)驗(yàn)原理流水燈LED電路原理圖電阻連接XC6SLX16芯片的G14、F16、H15、G16、H14、H16、J13和J16引腳。另外,硬件電路還包括系統(tǒng)時(shí)鐘引腳和系統(tǒng)復(fù)位引腳,如圖3-1所示??梢酝ㄟ^FPGA控制這8個(gè)LED。當(dāng)FPGA輸出高電平時(shí),LED點(diǎn)亮;當(dāng)FPGA輸岀低電平時(shí),LED熄滅。以4位的流水燈為例,工作原理就是4個(gè)LED(LED0?LED3)依次點(diǎn)亮、熄滅,呈流水狀顯示。在幻時(shí)刻,先讓LED0點(diǎn)亮,等待一段時(shí)間;在T2時(shí)刻,LED0熄滅,LED1點(diǎn)亮,等待一段時(shí)間;在T3時(shí)刻,LED1熄滅,LED2點(diǎn)亮;以此類推。實(shí)驗(yàn)原理流水燈工作原理當(dāng)LED3熄滅后,再點(diǎn)亮LED0,形成循環(huán),如圖3-2所示。注意,通常流水燈兩個(gè)相鄰狀態(tài)之間的時(shí)間間隔是固定的,8位的流水燈工作原理與之類似。流水燈實(shí)驗(yàn)電路有10個(gè)引腳,引腳名稱、類型、約束及描述如表所示。實(shí)驗(yàn)原理引腳名稱引腳類型引腳約束引腳描述clk_iinV10時(shí)鐘輸入,50MHzrst_n_iinN7復(fù)位輸入,低電平復(fù)位led_o[7]outJ16通過電阻連接到LED7led_o[6]outJ13通過電阻連接到LED6led_o[5]outH16通過電阻連接到LED5led_o[4]outH14通過電阻連接到led4led_o[3]outG16通過電阻連接到led3led_o[2]outH15通過電阻連接到LED2led_o[l]outF16通過電阻連接到LED1led_o[0]outG14通過電阻連接到LED0流水燈模塊內(nèi)部電路圖流水燈模塊內(nèi)部電路如圖3-3所示。實(shí)驗(yàn)原理led_o[7:0]根據(jù)計(jì)數(shù)器s_cnt輸出流水燈的不同狀態(tài)值:當(dāng)s_cnt為000時(shí),led_o[7:0]取值為LEDO_ON;當(dāng)s_cnt為001時(shí),led_o[7:0]取值為LED1_ON;以此類推。實(shí)驗(yàn)原理其中,LEDO_ON?LED7_ON、LED_OFF均為常量,分別指示LED0?LED7點(diǎn)亮、所有LED熄滅。復(fù)位引腳rst_n_i用于對(duì)整個(gè)系統(tǒng)進(jìn)行異步復(fù)位,當(dāng)rst_n_i為0時(shí),計(jì)數(shù)器s_cnt被清零。1Hz分頻模塊clk_gen_lhz用于將50MHz的系統(tǒng)時(shí)鐘分頻為1Hz的內(nèi)部時(shí)鐘,作為計(jì)數(shù)器s_cnt的時(shí)鐘輸入,s_cnt初始值為000,在每個(gè)s_clk_lhz時(shí)鐘的上升沿執(zhí)行一次加1操作,s_cnt按照“000—001—010—011—100—101—110—111—000”的順序循環(huán)計(jì)數(shù)。03實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟步驟1:復(fù)制工程文件夾并添加Verilog文件將“D:\Spartan6FPGATest\MateriaT'目錄中的exp02_led文件夾復(fù)制到“D:\Spartan6FPGATest\Product”目錄中。然后,雙擊運(yùn)行“D:\Spartan6FPGATest\Product\exp02_led\project”目錄中的led.xise文件打開工程。工程打開后,右擊“xc6slxl6-2csg324”選項(xiàng),在彈出的快捷菜單中選擇“Add

Source”命令添加文件,如圖3-4所示。實(shí)驗(yàn)步驟如圖3-5所示,在彈出的對(duì)話框中,選擇“D:\Spartan6FPGATest\Product\exp02_led\code”目錄下的.v文件和.ucf文件,然后單擊“打開”按鈕。實(shí)驗(yàn)步驟如圖3-6所示,在彈出的對(duì)話框中,出現(xiàn)圖標(biāo)表示文件添加成功,這時(shí)單擊“OK”按鈕將這些文件添加到工程中。文件添加成功如圖3-7所示。步驟2:完善led.v文件雙擊“l(fā)ed.v”文件打開編輯界面,將程序清單3-1中的代碼輸入led.v文件,并參考2.3節(jié)步驟5檢查led.v文件的語法,下面對(duì)關(guān)鍵語句進(jìn)行解釋。實(shí)驗(yàn)步驟(1)第12至20行代碼:定義了9個(gè)參數(shù),用于表示流水燈的9種狀態(tài),如LEDO_ON表示LED0點(diǎn)亮,初值為8'bOOOOOOOl。(2)第29至34行代碼:由于流水燈實(shí)驗(yàn)會(huì)使用到分頻模塊clk_gen_lhz,因此還需要進(jìn)行分頻模塊的例化,其中clk_gen_lhz為模塊名,u_clk_gen_lhz為例化名。(3)第38至44行代碼:實(shí)現(xiàn)計(jì)數(shù)功能。(4)第46至59行代碼:通過case語句實(shí)現(xiàn)一個(gè)選擇器電路,led_o根據(jù)s_cnt輸岀流水燈的不同狀態(tài)值。實(shí)驗(yàn)步驟語法確認(rèn)無誤后,要將led.v設(shè)置為頂層文件。一般情況下,在對(duì)led.V文件進(jìn)行保存后,ISE軟件會(huì)自動(dòng)識(shí)別并將led.v文件設(shè)置為頂層文件。如圖3-8所示,帶有品圖標(biāo)的led模塊為頂層文件。除此之外,如果僅需要對(duì)工程中的某一個(gè)文件進(jìn)行Synplify綜合等操作,可以通過手動(dòng)設(shè)置將該文件設(shè)置為頂層文件。如圖3-9所示,右擊需要進(jìn)行設(shè)置的文件選項(xiàng),如u_clk_gen_lhz,在彈出的快捷菜單中選擇“SetasTopModule”命令。實(shí)驗(yàn)步驟步驟3:通過Synplify綜合工程參考2.3節(jié)步驟6,通過Synplify對(duì)工程進(jìn)行綜合,綜合生成電路圖后,結(jié)果如圖3-10所示,可以看到一個(gè)方塊,這就是頂層文件調(diào)用的clk_gen_lhz模塊,單擊工具欄的再按鈕,將光標(biāo)移動(dòng)到方塊內(nèi)部,待光標(biāo)變成向下的箭頭后單擊鼠標(biāo)左鍵,即可查看clk_gen_lhz模塊內(nèi)部綜合的電路圖。實(shí)驗(yàn)步驟步驟4:新建Verilog測試文件并進(jìn)行仿真新建名為led_tf.v的仿真文件,選擇仿真對(duì)象為led.VoISE軟件會(huì)自動(dòng)生成測試代碼,參考2.3節(jié)步驟7將自動(dòng)生成的代碼進(jìn)行修改,生成周期為20ns的時(shí)鐘信號(hào)并將rst_n_i值拉高。完成測試代碼的修改后,對(duì)流水燈模塊進(jìn)行仿真,從如圖3-11所示的仿真結(jié)果中可以看出,led_o[7:0]的值循環(huán)改變,每Is更改一次(按Shift鍵,單擊波形位置可以查看該位置與光標(biāo)間的時(shí)間間隔),說明仿真結(jié)果正確。實(shí)驗(yàn)步驟步驟5:完成引腳約束文件

打開led.ucf文件編輯界面,參考2.3節(jié)步驟8,將程序清單3-2中的代碼輸入

溫馨提示

  • 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)論