流水灯——FPGA

文章目录

  • 前言
  • 一、流水灯介绍
  • 二、系统设计
    • 1.模块框图
    • 2.RTL视图
  • 三、源码
  • 四、效果
  • 五、总结
  • 六、参考资料


前言

环境:
1、Quartus18.0
2、vscode
3、板子型号:EP4CE6F17C8
要求:
每隔0.2s循环亮起LED灯


一、流水灯介绍

流水灯——FPGA_第1张图片

从LED0开始亮起到LED3又回到LED0循环往复。

二、系统设计

1.模块框图

流水灯——FPGA_第2张图片

2.RTL视图

流水灯——FPGA_第3张图片

三、源码

module led #(
    parameter MAX_NUM = 26'd9_999_999
)(
    input clk,
    input rst_n,

    output reg [3:0] led
);//每间隔1s,实现led的亮灭

//parameter MAX_NUM = 26'd9_999_999;

reg [25:0] cnt;

always @(posedge clk or negedge rst_n) begin
    if(!rst_n)begin
        cnt <= 26'd0;
    end
    else if(cnt == MAX_NUM)begin
        cnt <= 26'd0;
    end
    else begin
        cnt <= cnt + 1'd1;      
    end
end

//LED控制
always @(posedge clk or negedge rst_n) begin
    if(!rst_n)begin    
        led <= 4'b0001;
    end
    else if(cnt == MAX_NUM)begin//cnt == 26'd09_999_999
        led <= {led[2:0],led[3]};
    end
    else begin
        led <= led;
    end
end
endmodule

四、效果

流水灯


五、总结

这里使用了拼接符对LED进行处理加上一个0.2s的计时器进行控制即可。

六、参考资料

led流水灯

你可能感兴趣的:(FPGA,fpga开发)