module led(clk,led); input clk;//时钟50M output[7:0] led; reg[7:0] led; reg[3:0] num; reg[24:0] counter; reg[7:0] temp [7:0]; initial begin led<=8'b1111_1111;//上电瞬间8个LED全部熄灭 temp[0]<=8'b1111_1110;//点亮第1个LED的编码 temp[1]<=8'b1111_1101;//点亮第1个LED的编码 temp[2]<=8'b1111_1011;//点亮第2个LED的编码 temp[3]<=8'b1111_0111;//点亮第3个LED的编码 temp[4]<=8'b1110_1111;//点亮第4个LED的编码 temp[5]<=8'b1101_1111;//点亮第5个LED的编码 temp[6]<=8'b1011_1111;//点亮第6个LED的编码 temp[7]<=8'b0111_1111;//点亮第7个LED的编码 end always@(posedge clk) begin counter<=counter+1'b1; if(counter==25'd25_000_000)//判断是否到0.5s begin if((num>=0)&&(num<=7))//依次点亮第0到第7个LED begin counter<=25'd0; num<=num+1'b1; led<=temp[num]; end else if((num>=8)&&(num<=14))//依次点亮第6到第0个LED begin counter<=25'd0; num<=num+1'b1; led<=temp[14-num]; end else begin num<=4'd2; led<=temp[1];//第一个LED的发光时间明显变长,明显大于0.5s end end end endmodule
为什么第一个LED的发光时间明显变长,明显大于0.5s?
|