Как я могу сделать зависимые счетчики синхронно (Verilog) - PullRequest
0 голосов
/ 14 марта 2019

У меня есть модуль, который мне нужно сделать синхронным

 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 из них.

...