九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
【FPGA系列】五分鐘教會(huì)你設(shè)計(jì)一個(gè)流水燈


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


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


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



在點(diǎn)圖中我們可以了解到我們的點(diǎn)亮電路,幾個(gè)燈都是公用的是高電平也就是3.3V,所以只要給一個(gè)低電平就可以點(diǎn)亮我們的流水燈我們的開(kāi)發(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)圖:



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


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

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)) //計(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 @ (posedge clk_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)流水

30 endmodule

測(cè)試模塊

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

15

16 end

17

18 always #10 clk = ~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

26 endmodule


仿真圖:


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

  


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


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
基于FPGA的數(shù)字電路實(shí)驗(yàn)7:流水燈的實(shí)現(xiàn)
【接口時(shí)序】2、Verilog實(shí)現(xiàn)流水燈及與C語(yǔ)言的對(duì)比
三段式狀態(tài)機(jī)的vhdl程序
基于CPLD/FPGA的呼吸燈效果實(shí)現(xiàn)_呼吸燈源碼_明德?lián)P資料
Verilog HDL按鍵消抖
Verilog 及Xilinx_FPGA入門(一)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服