我有一个需要同步的模块
module faults ( input cn, chan,
output reg fault
);
reg reset_pulse;
integer i,k = 0;
always @(negedge cn or posedge chan)
begin
if (cn == 0) i = 0;
else if (cn == 1) begin
if (chan == 1) begin
i = i + 1;
reset_pulse = 1;
if (i == 24) begin
i = 0;
reset_pulse = 0;
end
end
end
end
always @(negedge cn or negedge reset_pulse)
begin
fault = 1;
if (reset_pulse == 0) k = 0;
if (cn == 0) begin
k = k + 1;
if (k == 8) begin
k = 0;
fault = 0;
end
end
end
endmodule
我该怎么做?这是状态机的必要情况吗? 我需要在一个输入上最多计数24个脉冲,如果在另一个输入为低电平时计数少于24个,则当我获得7个脉冲时,另一个计数器将指示故障。