流水呼吸灯v2#DE10-Lite

  1. 实验现象:4个led循环点亮呼吸;
  2. 算法:在控制使能模块添加一个计数器,每个led亮暗4s,添加一个16s的计数器,控制循环。
  3. 仿真结果:

 

image

 

module time_ctrl(
    input clk,
    input rst_n,
    output reg [3:0] ctrl_en
    );
    
    parameter T1 = 200_000_000;    //4s
    parameter T2 = 400_000_000;    //8s
    parameter T3 = 600_000_000;    //12s
    parameter T4 = 800_000_000;    //16s
    
    reg [29:0] cnt;
    
    
    //counter
    always @(posedge clk,negedge rst_n)
        begin
            if(!rst_n)
                cnt <= 0;
            else
                if(cnt < T4 - 1)
                    cnt <= cnt + 1;
                else
                    cnt <= 0;
        end
        
    
    //turn on led 1 by 1
    always @(posedge clk,negedge rst_n)
        begin
            if(!rst_n)
                ctrl_en <= 0;
            else
                if(cnt >= T3 - 1)
                    ctrl_en <= 4'b1000; //NO.4 led  on
                else
                    if(cnt >= T2 - 1)
                        ctrl_en <= 4'b0100; //NO.3 led  on
                    else
                        if(cnt >= T1 - 1)
                            ctrl_en <= 4'b0010; //NO.2 led  on
                        else
                            ctrl_en <= 4'b0001; //NO.1 led  on
        end
    
endmodule

 

posted on 2026-03-28 11:19  yf.x  阅读(1)  评论(0)    收藏  举报

导航