基於FPGA的LED閃爍燈設計


1. 項目介紹

  在FPGA上最簡單的應用就是點亮一盞閃爍的LED。學過軟件的朋友一般都寫過“Hello world”,因為這個是最簡單的程序。

2. 設計要求

  LED燈以2s的周期閃爍,LED燈亮、滅,每1s取反一次,如此循環,不斷取反。從而實現LED燈的不斷閃爍。

3. 設計分析

  從外部晶振(50M)時鍾輸入,利用計數器去計數1s,然后每隔1s改變一下LED輸出引腳的電平狀態。 因為開發板晶振為50M,所以一個時鍾周期為20ns(1/50MHz),因此計數器cnt通過對50MHz系統時鍾計數,計時到1s,需要累加1s/20ns=5000_0000次。

4.具體設計

4.1 硬件連接示意圖

4.2 架構設計

5. 設計實現

 1 module led_flash(
 2     input     wire                 clk,
 3     input     wire                 rst_n,
 4     
 5     output     reg      [3:0]    led    
 6 );
 7 
 8     parameter     T_1S     = 26'd50_000_000;
 9     
10     reg         [25:0]    cnt;
11     
12     always@(posedge clk or negedge rst_n)begin
13         if(rst_n == 1'b0)
14             cnt <= 26'd0;
15         else
16             if(cnt < T_1S - 1'b1)
17                 cnt <= cnt + 1'b1;
18             else
19                 cnt <= 26'd0;
20     end
21 
22     always@(posedge clk or negedge rst_n)begin
23         if(rst_n == 1'b0)
24             led <= 4'b0000;
25         else
26             if(cnt == T_1S - 1'b1)
27                 led <= ~led;
28             else
29                 led <= led;
30     end
31     
32 endmodule 

6. 仿真驗證

 1 `timescale 1ns/1ps
 2 
 3 module led_flash_tb();
 4 
 5     reg                     clk;
 6     reg                     rst_n;
 7     
 8     wire          [3:0]    led;    
 9     
10     defparam led_flash_inst.T_1S = 7'd100;
11 
12     led_flash led_flash_inst (
13         .clk                (clk),
14         .rst_n            (rst_n),
15 
16         .led                (led)    
17     );
18 
19     initial begin
20         while(2)begin
21             clk = 1'b0;     #10;
22             clk = 1'b1;        #10;        
23         end
24     end
25     
26     initial begin
27         rst_n = 1'b0;
28         #21;
29         rst_n = 1'b1;
30         #(2000*10);    //必須加括號,
31         $stop;
32     end
33     
34 endmodule 

7 參考資料

  (1)陪您一起學習FPGA-郝旭帥團隊_嗶哩嗶哩_bilibili


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM