1 `timescale 1ns / 1ps
2 //////////////////////////////////////////////////////////////////////////////////
3 // Company:
4 // Engineer: NingHeChuan
5 //
6 // Create Date: 2017/05/19 17:06:50
7 // Design Name:
8 // Module Name: led_water
9 // Project Name:
10 // Target Devices:
11 // Tool Versions:
12 // Description:
13 //
14 // Dependencies:
15 //
16 // Revision:
17 // Revision 0.01 - File Created
18 // Additional Comments:
19 //
20 //////////////////////////////////////////////////////////////////////////////////
21 module led_water(
22 input clk,
23 input rst_n,
24 output reg [7:0] led
25 );
26
27 reg[25:0] cnt;//设定一个26位的计数器
28 parameter TIME = 26'd50000000;
29 //parameter TIME = 26'd500;//just test
30
31 always@(posedge clk or negedge rst_n)
32 begin
33 if(!rst_n)
34 cnt <= 1'b0;
35 else if(cnt == TIME-1'b1)
36 cnt <= 1'b0;//当cnt计数达到50mhz时,计数器清零
37 else
38 cnt <= cnt + 1'b1;//否则计数器+1
39 end
40
41 always@(posedge clk or negedge rst_n)
42 begin
43 if(!rst_n)
44 led <= 8'b0000_1111;
45 else if(cnt == TIME - 1'b1)//当计数器达到1s时钟执行此条件
46 led <= {led[0], led[7:1]};
47 else
48 led <= led;
49 end
50
51 endmodule