日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

【小月电子】ALTERA FPGA开发板系统学习教程-LESSON2 LED灯闪烁

發(fā)布時(shí)間:2023/12/16 windows 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON2 LED灯闪烁 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

LED燈閃爍例程講解

若要觀看該博客配套的視頻教程,可點(diǎn)擊此鏈接

開發(fā)板實(shí)物圖

圖1.FPGA設(shè)計(jì)流程 根據(jù)多年工作經(jīng)驗(yàn),總結(jié)出的FPGA的設(shè)計(jì)流程,概括起來總共有以上12步,其中根據(jù)項(xiàng)目難易度可省去其中一些步驟。比如非常簡(jiǎn)單的項(xiàng)目,我們可以省去虛線框里面的步驟,但是我們的入門級(jí)課程,即使再簡(jiǎn)單,也按照這12個(gè)步驟來進(jìn)行講解。

1.需求解讀

1.1 需求

實(shí)現(xiàn)LED燈(D8)間隔1秒閃爍1次

1.2 知識(shí)背景

LED燈簡(jiǎn)介
LED,又名發(fā)光二極管。 LED燈工作電流很小(有的僅零點(diǎn)幾毫安即可發(fā)光) , 抗 沖擊和抗震性能好,可靠性高,壽命長(zhǎng)。由于這些優(yōu)點(diǎn), LED燈被廣泛用在儀器儀表 中作指示燈、 液晶屏背光源等諸多領(lǐng)域。不同材料的發(fā)光二極管可以發(fā)出紅、 橙、 黃、 綠、 青、藍(lán)、 紫、白這八種顏色的光。 如下圖所示:

圖2.插件LED燈 這種二極管長(zhǎng)的一端是陽極,短的那端是陰極。 開發(fā)板上板載的是貼片LED燈,實(shí)物 如下圖所示:

圖3.貼片LED燈 貼片發(fā)光二極管的正面一般都有顏色標(biāo)記,有標(biāo)記的那端就是陰極。發(fā)光二極管與普通二極管一樣具有單向?qū)щ娦浴?給它加上陽極正向電壓后,通過 5mA左右的電流就可以使二極管發(fā)光。 通過二極管的電流越大, 發(fā)出的光亮度越強(qiáng)。 不過我們一般將電流限定在3~20mA之間,否則電流過大就會(huì)燒壞二極管。

1.3 硬件設(shè)計(jì)

有源晶振,與E1管腳相連

獨(dú)立按鍵,與M1管腳相連


LED燈原理圖及PCB 發(fā)光二極管的原理圖如上圖所示, LED0到LED7這8個(gè)發(fā)光二極管的陽 極都連到3.3V上, 陰極分別與FPGA相應(yīng)的管腳相連。原理圖中LED與地 之間的電阻起到限流作用。通過原理圖我們可以看出,LED0與FPGA的管腳 G16相連。在PCB圖或?qū)嵨锷衔覀兌紭?biāo)注出了管腳號(hào),所以在綁管腳的時(shí)候 可以不用看原理圖,直接看板上的絲印就可以,如上圖PCB圖所示。我們只 點(diǎn)亮一個(gè)LED燈(LED0),那我們只用關(guān)心LED0的管腳號(hào)(G16)。當(dāng)管腳G16 輸出低電平時(shí),LED燈便有電流流過,驅(qū)動(dòng)LED燈發(fā)光,如果G16輸出高電 平,LED燈沒有電流流過,LED不發(fā)光。

1.4 接口說明

信號(hào)名方向FPGA管腳號(hào)說明
CLK_50M輸入E1系統(tǒng)時(shí)鐘,50Mhz
KEY1輸入M1獨(dú)立按鍵,按下低電平,當(dāng)作復(fù)位使用
LED0輸出G16與LED燈相連,低電平LED燈亮

????總結(jié):通過上述說明,可以將需求解讀成,只要將FPGA的G16管腳置為低 電平(500ms),即可以點(diǎn)亮D8這個(gè)LED燈500ms,然后再將G16管腳置為 高電平(500ms),即可以讓D8這個(gè)LED燈熄滅500ms,如此循環(huán),便實(shí)現(xiàn) 了1秒閃爍1次的效果。

2. 繪制理論波形圖

邏輯框圖

clk是50Mhz時(shí)鐘,一個(gè)周期就是20ns,1秒=1000000000ns,1秒是50000000個(gè)時(shí)鐘周期,500ms=25000000個(gè)時(shí)鐘周期。

理論波形圖

3.新建QuartusII 工程

為了讓工程看起來整潔,同時(shí)方便工程移植。我們新建4個(gè)文件夾,分別是Project,Source,Sim,Doc。
Project — 工程文件夾,里面放的QuartusII工程
Source — 源代碼文件夾,里面放的工程源碼(.v文件或.vhd文件)
Sim — 仿真文件夾,里面放的仿真相關(guān)的文件
Doc — 存放相關(guān)資料,比如數(shù)據(jù)手冊(cè),需求文檔等

4.編寫代碼

/// //QQ:3181961725 //TEL/WX:13540738439 //工程師:Mr Wang //模塊介紹:實(shí)現(xiàn)LED燈(D8)間隔1秒閃爍1次 /// module led_ctrl(input clk ,//時(shí)鐘,50MHZinput rst_n ,//復(fù)位,低電平有效nnoutput reg led //LED燈控制信號(hào));parameter time_500m=25000000;//500ms//為了縮短仿真時(shí)間,減小了參數(shù)值,僅僅用于仿真//parameter time_500m=2500;//500msreg [24:0] cnt;always@(posedge clk or negedge rst_n)beginif(!rst_n)cnt<=0;else if(cnt==time_500m-1)cnt<=0;elsecnt<=cnt+1;endalways@(posedge clk or negedge rst_n)beginif(!rst_n)led<=1;else if(cnt==time_500m-1)led<=~led;else;end endmodule

5.編寫仿真測(cè)試激勵(lì)文件

仿真邏輯框圖 仿真時(shí),我們主要關(guān)心的是輸入端口,在led_ctrl這個(gè)模塊中,有兩個(gè)輸入端口, rst_n,clk,所以,我們?cè)诜抡鏈y(cè)試文件編寫時(shí),就是給這兩個(gè)端口灌入激勵(lì)信號(hào)。 `timescale 1ns/1ns module led_ctrl_tb;reg clk;reg rst_n;initialbeginclk=0;rst_n=0;//生成復(fù)位激勵(lì)信號(hào)#1000rst_n=1;//生成復(fù)位激勵(lì)信號(hào)end//生成時(shí)鐘激勵(lì)信號(hào)always #10 clk<=~clk;//例化被仿真模塊led_ctrl Uled_ctrl(.clk (clk ),.rst_n (rst_n ),.led ( )); endmodule

6.Modelsim仿真

這個(gè)例程非常簡(jiǎn)單,只用了一條語句,所以不需要仿真驗(yàn)證。但是為了給大家演示一個(gè)完整的開發(fā)流程,這個(gè)實(shí)驗(yàn)我們也新建一個(gè)仿真工程,從最簡(jiǎn)單的一個(gè)代碼開始教大家如何編寫仿真激勵(lì)文件以及如何使用Modelsim軟件進(jìn)行仿真。將第三步編寫的源碼和第四步編寫的仿真測(cè)試激勵(lì)文件一起加入到Modelsim仿真工程中,即可進(jìn)行仿真觀察波形。
Modelsim仿真一般有兩種方法:

  • 圖形化界面仿真,即所有的操作都是在Modelsim軟件界面上來完成,該方式的優(yōu)點(diǎn)是,簡(jiǎn)單易學(xué),適用于簡(jiǎn)單的項(xiàng)目,缺點(diǎn)是操作步驟繁瑣。

  • 批處理仿真,這種方式在仿真前需要編寫相應(yīng)的腳本文件,該方式的優(yōu)點(diǎn)是,一鍵即可完成仿真,省時(shí)省力,缺點(diǎn)是前期需要編寫腳本文件。為了讓大家所學(xué)的能夠很快的應(yīng)用到工程實(shí)踐,僅僅第一個(gè)實(shí)驗(yàn)和第二個(gè)實(shí)驗(yàn),采用圖形化界面仿真,后面的實(shí)驗(yàn)均采用批處理方式仿真。

    圖形化界面仿真步驟:
    1.新建工程,file–>new–>Project

    2.填寫工程名以及指定仿真工程存放路徑

  • 3.添加文件,源文件和仿真激勵(lì)文件
    4.編譯
    5.開始仿真

    6.添加觀測(cè)信號(hào)

    7.中斷仿真

    8.輸入運(yùn)行命令,run+仿真時(shí)間

    到此,我們就可以在波形窗口觀察到仿真信號(hào)的電平狀態(tài)。
    當(dāng)我們改變了源碼,又需要從第4步開始操作一次。
    仿真出的波形如下圖所示:

    7.對(duì)比波形圖

    將第二步繪制的理論波形圖與第六步Modelsim仿真出來的波形圖進(jìn)行對(duì)比,結(jié)果一致,說明我們的邏輯設(shè)計(jì)是正確的。如果發(fā)現(xiàn)比對(duì)結(jié)果不一致,就需要找到不一致的原因,最終要保證對(duì)比結(jié)果一致。
    通過對(duì)比,理論波形與仿真波形一致,說明功能符合設(shè)計(jì)要求。

    8.編譯綜合

    9.綁定管腳

    當(dāng)工程編譯成功后,即可進(jìn)行管腳分配(需要參考開發(fā)板的原理圖)。我們店鋪的開發(fā)板和模塊在PCB板上均標(biāo)注了信號(hào)名,在綁定管腳時(shí)也可以直接參照實(shí)物的連接關(guān)系。

    管腳映射關(guān)系如下所示:

    10.再次編譯綜合

    11 下載SOF文件

    再次編譯綜合成功后便可以將生成的SOF文件下載到開發(fā)板


    下載成功后,便可以觀察到開發(fā)板上的實(shí)驗(yàn)現(xiàn)象,如果實(shí)驗(yàn)現(xiàn)象與設(shè)計(jì)需求相符,那說明我們的設(shè)計(jì)是沒有問題的,即可進(jìn)行下一步固化JIC文件操作

    12 生成并固化JIC文件

    FPGA有一個(gè)特性,就是掉電后配置信息會(huì)丟失,所以我們需要將配置信息存儲(chǔ)在配置芯片(FLASH)中,待開發(fā)板上電后,FPGA便會(huì)讀取配置芯片中的配置信息,這樣開發(fā)板掉電再上電后同樣可正常工作。要將程序固化到配置芯片,需要先生成JIC文件。SOF文件轉(zhuǎn)換成JIC文件步驟如下:

    12.1 file–>Convert Programming File…

    12.2 選擇JIC文件以及配置芯片的型號(hào),FPGA的型號(hào)

    標(biāo)號(hào)1:選擇生成文件的格式,我們選擇JIC文件
    標(biāo)號(hào)2:選擇配置芯片的型號(hào),我們選擇EPCS16
    標(biāo)號(hào)3:修改生成JIC文件的名字以及存放路徑
    標(biāo)號(hào)4:鼠標(biāo)左鍵點(diǎn)擊Flash Loader
    標(biāo)號(hào)5:選擇FPGA的型號(hào),我們開發(fā)板用的是EP4CE6F17C8這款FPGA,所以我們也應(yīng)該選這個(gè)型號(hào),如下圖所示:

    12.3 選擇SOF文件


    標(biāo)號(hào)1:鼠標(biāo)左鍵點(diǎn)擊SOF Data
    標(biāo)號(hào)2:添加SOF文件,選中我們工程生成的SOF文件,如下圖:

    12.3 生成JIC文件


    到此,JIC文件生成好,可以進(jìn)行固化操作了。

    12.4 固化JIC文件


    固化好以后,掉電程序也不會(huì)丟失了!

    實(shí)驗(yàn)現(xiàn)象

    與FPGA管腳G16相連的LED燈被點(diǎn)亮,符合設(shè)計(jì)要求,設(shè)計(jì)完成!

    總結(jié)

    以上是生活随笔為你收集整理的【小月电子】ALTERA FPGA开发板系统学习教程-LESSON2 LED灯闪烁的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。