久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

【FPGA系列】五分鐘教會你設(shè)計一個流水燈

 非線性co7vtwr8 2018-06-24


設(shè)計原理: 


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


今天的設(shè)計是流水燈,,在單片機(jī)中我們也了解到流水燈的點亮,不就是高電平或者低電平亮或者滅,,然后通過依次的點亮LED燈,,就形成了流水我們用的開發(fā)板的電路圖如下



在點圖中我們可以了解到我們的點亮電路,幾個燈都是公用的是高電平也就是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)圖:



設(shè)計代碼:


設(shè)計模塊

module led_run (clk, rst_n, led);

2  input clk, rst_n;

4  output reg [3:0] led;  

6  reg [25:0] count;

7  reg clk_1hz;

9  always @ (posedge clk)

10  if(!rst_n)

11   begin

12    clk_1hz <= 1;

13    count <= 0;

14   end

15  else if(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 @ (posedge clk_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)流水

30 endmodule

測試模塊

0 `timescale 1ns/1ps

module tb();

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

5  wire [3:0] led;  

7  initial begin

9   clk = 1;

10  rst_n = 0;

11

12  #200.1 rst_n = 1;

13

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

15

16 end

17

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

19

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

21  .clk(clk),

22  .rst_n(rst_n),

23  .led(led)

24 );

25

26 endmodule


仿真圖:


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

  


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


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多