如何使从属计数器同步(verilog)

时间:2019-03-14 05:27:04

标签: verilog

我有一个需要同步的模块

 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个脉冲时,另一个计数器将指示故障。

0 个答案:

没有答案