该程序实现的效果是,下载到FPGA开发板后,LED0到LED3以此点亮,KEY4作为复位按钮,若按下则复位(异步复位),四个LED灯先同时点亮,然后再从LED0开始逐次点亮。
本程序可分为两个部分,主程序和计数分频电路,两部分的代码分别如下:
1、通过计数产生clk信号:
module fd_LED(
input clock,
input resetn,
output reg clk);
reg [24:0] count;
always @(posedge clock) begin
if(count == 26'd24_999_999) begin
count <= 25'd0;
clk <= ~clk;
end
else
count <= count + 25'b1;
end
endmodule
2、流水灯控制程序:
module LED(
input clock,
input resetn,
output reg [3:0] led);
reg [1:0] con;
fd_LED clk_mod (.clock(clock), .resetn(resetn), .clk(clk));
always @(posedge clk or negedge resetn) begin
if(~resetn) begin
con <= 2'b00;
led <= 4'hf;
end
else begin
con <= con + 2'd1;
led <= 4'h0;
led[con] <= 1'b1;
end
end
e