- 实验现象:4个led循环点亮呼吸;
- 算法:在控制使能模块添加一个计数器,每个led亮暗4s,添加一个16s的计数器,控制循环。
- 仿真结果:

module time_ctrl(
input clk,
input rst_n,
output reg [3:0] ctrl_en
);
parameter T1 = 200_000_000; //4s
parameter T2 = 400_000_000; //8s
parameter T3 = 600_000_000; //12s
parameter T4 = 800_000_000; //16s
reg [29:0] cnt;
//counter
always @(posedge clk,negedge rst_n)
begin
if(!rst_n)
cnt <= 0;
else
if(cnt < T4 - 1)
cnt <= cnt + 1;
else
cnt <= 0;
end
//turn on led 1 by 1
always @(posedge clk,negedge rst_n)
begin
if(!rst_n)
ctrl_en <= 0;
else
if(cnt >= T3 - 1)
ctrl_en <= 4'b1000; //NO.4 led on
else
if(cnt >= T2 - 1)
ctrl_en <= 4'b0100; //NO.3 led on
else
if(cnt >= T1 - 1)
ctrl_en <= 4'b0010; //NO.2 led on
else
ctrl_en <= 4'b0001; //NO.1 led on
end
endmodule