0
点赞
收藏
分享

微信扫一扫

FPGA 设计跑马灯(8个LED灯每个以0.5s的速率闪烁)

修炼之士 2023-09-14 阅读 43

跑马灯的逻辑代码

module led_run(
    Clk,
    Reset_n,
    Led
);
    input Clk;
    input Reset_n;
    output reg [7:0]Led;
    
    reg [24:0]counter;
    
    parameter MCNT =25'd24999999;
    
    always@(posedge Clk or negedge Reset_n)
    if(!Reset_n)
        counter <=0;
    else if(counter == MCNT)
        counter <=0;
    else 
        counter <= counter +1'd1;    
    always@(posedge Clk or negedge Reset_n)
    if(!Reset_n)   
        Led <=8'b0000_0001;
    else if(counter == MCNT)begin
        if (Led == 8'b1000_0000)
            Led <=8'b0000_0001;
        else
            Led <=Led <<1;
            
        //Led <= {Led[6:0],Led[7]};
    end
    else
        Led <= Led;
    
endmodule

仿真代码

`timescale 1ns/1ns
 
module led_run_tb;
    reg Clk;
    reg Reset_n;
    wire [7:0]Led;
 
    led_run
    led_run_ints0(
        .Clk(Clk),
        .Reset_n(Reset_n),
        .Led(Led)
    );
    defparam led_run_ints0.MCNT=24999;
    
    initial Clk =1;
    always #10 Clk =!Clk;
    
    initial begin
        Reset_n = 0;
        #201;
        Reset_n=1;
        #40000000;
        $stop;
    end
endmodule

FPGA 设计跑马灯(8个LED灯每个以0.5s的速率闪烁)_流水灯

举报

相关推荐

0 条评论