50hz方波,10ms高电平,10ms低电平;晶振20M;
我设想的是高低电平计数在9.5-10.5ms内都算对。
我写了一个,帮忙看看那里有问题。
always @(posedge cpld_clk ) //触发条件
begin
if(SYN_IN[0] == 1'b1)
begin
Syn0InHighCount <= Syn0InHighCount + 1'b1; //高电平计数
Syn0InReg <= Syn0InLowCount;
Syn0InLowCount <= 20'd0;
end
else begin
Syn0InLowCount <= Syn0InLowCount + 1'b1; //低电平计数
Syn0InReg <= Syn0InHighCount;
Syn0InHighCount <= 20'd0;
end
if((Syn0InHighCount > SynInError)||(Syn0InLowCount > SynInError)) //判断
begin
syn0flag <= 1'b1; //错误,并清零
Syn0InHighCount <= 20'd0;
Syn0InLowCount <= 20'd0;
Syn0InReg <= 20'd0;
end
else
if((Syn0InReg < HighMax)&&(Syn0InReg > LowMin))
syn0flag <= 1'b0; //正确
end
2# 李冬发
|