你这代码count2没错的话应该一直在281到330之间循环,进入死循环了,else if (count2 == 330)
count2 <= 281;这个条件一满足就跳回去了,不会执行到else if (clear == 1)
count2 <= 0;这一步的。可以把这条语句放到复位语句的后面,试试应该就可以了
if(!rst_n)
count2 <= 1'b0;
else if (clear == 1)
count2 <= 0;
else if(coun2>=0 && count2<281)
begin
SP <= 1'b0;
count2 <= count2 + 1'b1;
end
。。。
条件写的有问题,轮不到执行clear ==1. count2 加到330 变成281,符合else if(count2>=281 && count2<286 )这个条件就不会往后面执行了,所以你这是一个死循环。