FPGA Verilog LED 流水燈

版权声明:本文为博主 ( 黃彥霖 ) 原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38884324/article/details/81159700

前言:

這個範例是控制 4 顆 LED 輸出流水燈,每 50000000 Clock (也就是一秒,因為板子上使用 50M 震盪器) 自動換下一顆亮。

程式碼:

module led_test
(
    input           clk,           // 系統 50 Mhz 時鐘
    output reg[3:0] led            // 板子上有 4 顆 LED,宣告為輸出
);

    reg [31:0]      timer; // 宣告 32 bit 的整數變數

    // 每個 Clock 都會觸發
    always@(posedge clk)
    begin
         //---------------------------------------
         // 計數器

         // 每個 Clock 將 timer 自動加一
         timer <= timer + 32'd1; 

         // timer 達到 199999999 ( 4秒 ) 時,將 timer 清零
         if(timer == 32'd199_999_999)
              timer <= 32'd0;

         //---------------------------------------
         // LED 控制
         if(timer == 32'd0)
              led <= 4'b0001; // LED 1 亮
         else if(timer == 32'd49_999_999)
              led <= 4'b0010;  // LED 2 亮
         else if(timer == 32'd99_999_999)
              led <= 4'b0100;  // LED 3 亮
         else if(timer == 32'd149_999_999)
              led <= 4'b1000;  // LED 4 亮

    end

endmodule

猜你喜欢

转载自blog.csdn.net/weixin_38884324/article/details/81159700
今日推荐