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

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

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

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

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

設(shè)計(jì)原理:

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

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

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

image.png

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

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

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

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

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

image.png

設(shè)計(jì)代碼:

設(shè)計(jì)模塊

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))//計(jì)數(shù)

16 count <=count +1'd1;

17 else

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

19 count <=26'd0;

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

21 end

22

23 always@(posedgeclk_1hz)

24 if(!rst_n)

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

26 else

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

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

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

30endmodule

測(cè)試模塊

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后 停止計(jì)數(shù)

15

16 end

17

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

19

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

21 .clk(clk),

22 .rst_n(rst_n),

23 .led(led)

24 );

25

26endmodule

仿真:

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

image.png

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

大家可以下板測(cè)試

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

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

    關(guān)注

    21

    文章

    432

    瀏覽量

    59470
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

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

    流水燈1

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

    流水燈2

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

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

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

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

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

    使用FPGA實(shí)現(xiàn)流水燈的詳細(xì)資料說(shuō)明

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

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

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

    詳解基于FPGA的數(shù)字電路對(duì)流水燈的實(shí)驗(yàn)

    流水燈,有時(shí)候也叫跑馬燈,是一個(gè)簡(jiǎn)單、有趣又經(jīng)典的實(shí)驗(yàn),基本所有單片機(jī)的玩家們?cè)诔跗?b class='flag-5'>學(xué)習(xí)的階段都做過(guò)。本次我們也來(lái)介紹一下如何通過(guò)小腳丫FPGA實(shí)現(xiàn)一個(gè)流水燈。
    的頭像 發(fā)表于 03-19 16:36 ?4352次閱讀

    如何通過(guò)FPGA實(shí)現(xiàn)一個(gè)流水燈

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

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

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

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

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

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

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

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

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