流水灯设计文件
// --------------------------------------------------------------------
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// --------------------------------------------------------------------
// Module: Water_led
//
// Author: Step
//
// Description: Water_led
//
// Web: www.ecbcamp.com
//
// --------------------------------------------------------------------
// Code Revision History :
// --------------------------------------------------------------------
// Version: |Mod. Date: |Changes Made:
// V1.0 |2015/11/11 |Initial ver
// --------------------------------------------------------------------
module Water_led #
(
parameter CNT_NUM = 25000000
)
(
input clk_in,
input rst_n_in,
output reg [7:0] led_out
);
reg [24:0] cnt = 25'd0;
always@(posedge clk_in or negedge rst_n_in) begin
if(!rst_n_in) begin
cnt <= 25'd0;
end else if(cnt>=CNT_NUM-1) begin
cnt <= 25'd0;
end else begin
cnt <= cnt + 25'd1;
end
end
reg [3:0] led_cnt = 4'd0;
always@(posedge clk_in or negedge rst_n_in) begin
if(!rst_n_in) begin
led_cnt <= 4'd0;
end else if(cnt==CNT_NUM-1) begin
if(led_cnt==4'd7) led_cnt <= 4'd0;
else led_cnt <= led_cnt + 4'd1;
end
end
always@(led_cnt) begin
case(led_cnt)
4'd0: led_out = 8'b1111_1110;
4'd1: led_out = 8'b1111_1101;
4'd2: led_out = 8'b1111_1011;
4'd3: led_out = 8'b1111_0111;
4'd4: led_out = 8'b1110_1111;
4'd5: led_out = 8'b1101_1111;
4'd6: led_out = 8'b1011_1111;
4'd7: led_out = 8'b0111_1111;
default: led_out = 8'b1111_1111;
endcase
end
endmodule