FPGA Verilog LED 流水燈

前言:

這個範例是控制 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值