0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA學(xué)習(xí)系列:8. 流水燈的設(shè)計

FPGA學(xué)習(xí)交流 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-05-31 11:40 ? 次閱讀

設(shè)計原理:

在以后的設(shè)計中,用的開發(fā)板都將是我們至芯科技自主設(shè)計的開發(fā)板,我們的芯片用的是Cyclone4系列的EP4CE10F17C8,在以后的設(shè)計中我們將不再討論我們的開發(fā)板

今天的設(shè)計是流水燈,在單片機中我們也了解到流水燈的點亮,不就是高電平或者低電平亮或者滅,然后通過依次的點亮LED燈,就形成了流水

我們用的開發(fā)板的電路圖如下

image.png

在點圖中我們可以了解到我們的點亮電路,幾個燈都是公用的是高電平也就是3.3V,所以只要給一個低電平就可以點亮我們的流水燈

我們的開發(fā)板提供的晶振是50M的,50M一個周期是20ns,我們?nèi)搜勰軌蚍直娴牡乃俣仁?5ms左右,也就是物體如果45ms移動一次我們看清它是停一下走一下的,如果快于這個時間的話,那么我們看到的物體的移動就是連貫的。我們要設(shè)計出人眼可以分辨的流水就需要我們設(shè)計出大于這個時間燈亮滅,然后形成人眼可以分辨的流水。

本次我們的設(shè)計流水燈的流水時間是1s,那么我們就需要一個時間寄存器,當(dāng)計數(shù)到1s的時候我們點亮一個燈,等下一個1s來的時候,我們點亮下一個等,然后形成流水,50M是20ns,1s是1hz,那么我們需要計數(shù)50 000 000

值得提的是我們算計數(shù)的時間是一面的等式 :計數(shù) = 晶振 / 需要的頻率 ,計數(shù)的時間就是我們1hz的周期,那么計數(shù)到一半的時候就是半個周期,我們可以在計數(shù)一半的時候clk 翻轉(zhuǎn),那么當(dāng)技計數(shù)到的時候就是占空比50%的1hz的周期

設(shè)計架構(gòu)圖:

image.png

設(shè)計代碼:

設(shè)計模塊

0moduleled_run (clk,rst_n,led);

1

2 inputclk,rst_n;

3

4 outputreg[3:0]led;

5

6 reg[25:0]count;

7 regclk_1hz;

8

9 always@(posedgeclk)

10 if(!rst_n)

11 begin

12 clk_1hz <=1;

13 count <=0;

14 end

15 elseif(count <(50_000_000/1/2-1))//計數(shù)

16 count <=count +1'd1;

17 else

18 begin //當(dāng)計數(shù)到的時候,得到1hz時鐘

19 count <=26'd0;

20 clk_1hz <=~clk_1hz;//~時鐘翻轉(zhuǎn)

21 end

22

23 always@(posedgeclk_1hz)

24 if(!rst_n)

25 led <=4'b0111; //復(fù)位點亮第四個燈,熄滅1 2 3

26 else

27 led <={led[0],led[3:1]};//當(dāng)時鐘上升沿來的時候把led的第一位 放在

28 //第四位,2 -- 4位放在 3 -- 1位,依次的移位,也就是把復(fù)位中的低電平 不停的

29 //移動在4 --1 位之中的某一位,從而實現(xiàn)流水

30endmodule

測試模塊

0`timescale1ns/1ps

1

2moduletb();

3

4 regclk,rst_n;//定義模塊的端口

5 wire[3:0]led;

6

7 initialbegin

8

9 clk =1;

10 rst_n =0;

11

12 #200.1rst_n =1;

13

14 #20000$stop;//延遲20000 Ns后 停止計數(shù)

15

16 end

17

18 always#10clk =~clk;//產(chǎn)生一個50M的時鐘

19

20 led_run dut( //例化設(shè)計模塊

21 .clk(clk),

22 .rst_n(rst_n),

23 .led(led)

24 );

25

26endmodule

仿真:

在仿真中我們可以調(diào)下我們設(shè)計模塊的中的計數(shù)值,這樣在仿真中我們可以我們可以快速的等到仿真結(jié)果,要不然你仿真幾個小時可能才會出結(jié)果

image.png

在仿真中我們可以可以看到在我們的1hz時鐘的上升沿,我們led的4位中的一位將有一位變化為0,從而實現(xiàn)流水

大家可以下板測試

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21768

    瀏覽量

    604623
  • 流水燈
    +關(guān)注

    關(guān)注

    21

    文章

    433

    瀏覽量

    59764
收藏 人收藏

    評論

    相關(guān)推薦

    基于FPGA的音樂流水燈控制系統(tǒng)設(shè)計

    介紹一種基于 FPGA的音樂流水燈控制器, 采用硬件描述語言對其進行描述, 分別實現(xiàn)樂曲的播放和同步流水燈的閃爍。并構(gòu)建一個 SOPC系統(tǒng), 集成 LCD模塊來顯示實時音樂的音階值和頻率強度
    發(fā)表于 10-20 17:21 ?4541次閱讀

    基于Verilog FPGA 流水燈設(shè)計_流水燈源碼_明德?lián)P資料

    LED流水廣告燈工程說明在本案例中,使用常用的verilog語言完成該程序,設(shè)計并控制8個燈的花式或循環(huán)點亮;即上電后,實現(xiàn)左移和右移交替的流水燈。案例補充說明在FPGA電路設(shè)計中,盡
    發(fā)表于 08-02 17:56

    FPGA零基礎(chǔ)學(xué)習(xí):LED流水燈設(shè)計

    系列將帶來FPGA的系統(tǒng)性學(xué)習(xí),從最基本的數(shù)字電路基礎(chǔ)開始,最詳細操作步驟,最直白的言語描述,手把手的“傻瓜式”講解,讓電子、信息、通信類專業(yè)學(xué)生、初入職場小白及打算進階提升的職業(yè)開發(fā)者都可以有
    發(fā)表于 03-07 16:39

    流水燈1

    慧凈HL-1 配套C實驗例程100例【實驗8流水燈1),很好的C51學(xué)習(xí)資料程序。
    發(fā)表于 03-21 17:02 ?11次下載

    流水燈2

    慧凈HL-1 配套C實驗例程100例【實驗8流水燈2),很好的C51學(xué)習(xí)資料程序。
    發(fā)表于 03-21 17:02 ?5次下載

    采用FPGA DIY 開發(fā)板實現(xiàn)8流水燈向左移功能

    FPGA diy作業(yè)實現(xiàn)8位LED輸出向左的流水燈。
    的頭像 發(fā)表于 06-20 08:26 ?5512次閱讀
    采用<b class='flag-5'>FPGA</b> DIY 開發(fā)板實現(xiàn)<b class='flag-5'>8</b>個<b class='flag-5'>流水燈</b>向左移功能

    數(shù)字設(shè)計FPGA應(yīng)用:流水燈的設(shè)計

    LED流水燈這篇采用最簡單的就是點亮一個燈延時一定時間,然后關(guān)閉,接下去點亮下一個燈,依次類推形成流水燈的效果
    的頭像 發(fā)表于 12-04 07:09 ?3652次閱讀
    數(shù)字設(shè)計<b class='flag-5'>FPGA</b>應(yīng)用:<b class='flag-5'>流水燈</b>的設(shè)計

    使用FPGA實現(xiàn)流水燈的詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是使用FPGA實現(xiàn)流水燈的詳細資料說明。流水燈模塊對于發(fā)展商而言,動土儀式無疑是最重要的任務(wù)。為此,流水燈實驗作為低級建模II的動土儀式再適合不過了。廢話少說
    發(fā)表于 07-11 16:45 ?27次下載
    使用<b class='flag-5'>FPGA</b>實現(xiàn)<b class='flag-5'>流水燈</b>的詳細資料說明

    使用FPGA實現(xiàn)流水燈設(shè)計的資料合集

    本文檔的主要內(nèi)容詳細介紹的是使用FPGA實現(xiàn)流水燈設(shè)計的資料合集免費下載。
    發(fā)表于 01-18 08:00 ?30次下載

    詳解基于FPGA的數(shù)字電路對流水燈的實驗

    流水燈,有時候也叫跑馬燈,是一個簡單、有趣又經(jīng)典的實驗,基本所有單片機的玩家們在初期學(xué)習(xí)的階段都做過。本次我們也來介紹一下如何通過小腳丫FPGA實現(xiàn)一個流水燈。
    的頭像 發(fā)表于 03-19 16:36 ?4518次閱讀

    如何通過FPGA實現(xiàn)一個流水燈?

    流水燈,有時候也叫跑馬燈,是一個簡單、有趣又經(jīng)典的實驗,基本所有單片機的玩家們在初期學(xué)習(xí)的階段都做過。本次我們也來介紹一下如何通過小腳丫FPGA實現(xiàn)一個流水燈。
    的頭像 發(fā)表于 06-06 10:42 ?8206次閱讀
    如何通過<b class='flag-5'>FPGA</b>實現(xiàn)一個<b class='flag-5'>流水燈</b>?

    51單片機學(xué)習(xí)筆記———8.點亮流水燈的一種奇葩算法

    51單片機學(xué)習(xí)筆記———8.點亮流水燈的一種奇葩算法最近學(xué)習(xí)51單片機的過程發(fā)現(xiàn)了一種腦洞大開點亮流水燈的方法,于此分享一下源碼:#incl
    發(fā)表于 11-14 15:21 ?10次下載
    51單片機<b class='flag-5'>學(xué)習(xí)</b>筆記———<b class='flag-5'>8.</b>點亮<b class='flag-5'>流水燈</b>的一種奇葩算法

    【STM32學(xué)習(xí)】(3)流水燈的實現(xiàn)

    學(xué)習(xí)單片機都要學(xué)習(xí)流水燈,因為流水燈比較簡單,易于實現(xiàn),效果也比較好呈現(xiàn)。這里我用的單片機型號為STM32F103VET8個LED燈接在了P
    發(fā)表于 12-24 19:39 ?11次下載
    【STM32<b class='flag-5'>學(xué)習(xí)</b>】(3)<b class='flag-5'>流水燈</b>的實現(xiàn)

    FPGA零基礎(chǔ)學(xué)習(xí)之Vivado-LED流水燈實驗

    流水燈是大多數(shù)學(xué)習(xí)者接觸到的第一個實驗,也是非常經(jīng)典的一個實驗,在此,我們一起學(xué)習(xí)一下流水燈。
    的頭像 發(fā)表于 03-26 09:43 ?2397次閱讀

    基于FPGA開發(fā)板流水燈的設(shè)計實現(xiàn)

    流水燈,有時候也叫跑馬燈,是一個簡單、有趣又經(jīng)典的實驗,基本所有單片機的玩家們在初期學(xué)習(xí)的階段都做過。本次我們也來介紹一下如何通過小腳丫FPGA實現(xiàn)一個流水燈
    發(fā)表于 06-20 17:10 ?1402次閱讀
    基于<b class='flag-5'>FPGA</b>開發(fā)板<b class='flag-5'>流水燈</b>的設(shè)計實現(xiàn)