module breath_led(input clk,
input res,
output reg led,
output reg counter1,
output reg counter10);
reg flag=1'b0;
reg c2=5'd1;
always@(posedge clk)
begin
if(!res)
counter1<=0;
else
counter1<=counter1+1;
end
always@(posedge clk)
begin
if(!res)
counter10<=0;
else
counter10<=counter10+1;
end
always@(posedge clk)
begin
if(counter1==4'd9)
counter10<=0;
if(counter10==4'd9&&flag==1'b0)
begin
counter10<=0;
c2<=c2+1;
end
if(counter10==4'd9&&flag==1'b1)
begin
counter10<=0;
c2<=c2-1;
end
if(c2==5'd11||c2==1'd0)
flag<=~flag;
end
always@(posedge clk)
begin
if(counter1<c2)
led<=1'b1;
else
led<=1'b0;
end
endmodule
我想写一个呼吸灯,让灯在每个大周期(10个时钟内)亮起的时间递增,但是这个计数器实在搞不懂。