У меня есть модуль, который мне нужно сделать синхронным
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 из них.