FPGA 使用参数化设计让4个LED灯以不同频率闪烁
  1YQZUCUR1XeB 2023年11月02日 41 0

代码如下

module led_run8(
    Reset_n,//复位端口,加_n是使用低电平复位
    Clk,//时钟端口
    Led
);
    input Clk;
    input Reset_n;
    output reg Led;
    
    parameter MCNT = 24999999;
 
    reg [24:0]counter;
    
    always@(posedge Clk or negedge Reset_n) //posedge Clk 为时序描述的标准格式
        // <=是非阻塞赋值的意思
        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 <= 0;
    else if(counter == MCNT)
        Led <=!Led;
endmodule

模拟仿真,代码内容如下

`timescale 1ns/1ns
 
module led_run8_tb();
    reg Reset_n;
    reg Clk;
    wire [3:0]Led;
        
    led_run8 led_run8_test0(
        .Reset_n(Reset_n),//复位端口,加_n是使用低电平复位
        .Clk(Clk),//时钟端口
        .Led(Led[0])
    );
    defparam led_run8_test0.MCNT=24999;
    led_run8 led_run8_test1(
        .Reset_n(Reset_n),//复位端口,加_n是使用低电平复位
        .Clk(Clk),//时钟端口
        .Led(Led[1])
    );
    defparam led_run8_test1.MCNT=49999;
    led_run8 led_run8_test2(
        .Reset_n(Reset_n),//复位端口,加_n是使用低电平复位
        .Clk(Clk),//时钟端口
        .Led(Led[2])
    );
    defparam led_run8_test2.MCNT=74999;
    led_run8 led_run8_test3(
        .Reset_n(Reset_n),//复位端口,加_n是使用低电平复位
        .Clk(Clk),//时钟端口
        .Led(Led[3])
    );            
    defparam led_run8_test3.MCNT=99999;    
    initial Clk=1;
    always #10 Clk = !Clk;
    
    initial begin
        Reset_n=0;
        #201;
        Reset_n=1;
        #40000000;
        $stop;
    end
endmodule

FPGA 使用参数化设计让4个LED灯以不同频率闪烁_非阻塞

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  zLxnEsMLk4BL   2023年11月19日   32   0   0 赋值运算符字符串
  5SL1O36RFEWc   2023年11月12日   29   0   0 多路非阻塞数据
  zLxnEsMLk4BL   2023年11月19日   32   0   0 赋值字符串bc
  1YQZUCUR1XeB   2023年11月12日   30   0   0 串口通信Verilog
1YQZUCUR1XeB