Правильный способ обнаружения фронта сигнала в Verilog

Я хочу обнаружить нарастающий фронт сигнала от флип-флопа AA к BB

                    +----+
  A ----------------|    |----- OUT
        +----+      | BB |
  B ----|    |------|>   |
        | AA |      +----+
clk ----|>   |
        +----+

Код Verilog:

    module edge_detect (
        input A,
        input B,
        input clk,
        output OUT
    );

        reg AA;
        reg BB;

        always @(posedge clk) begin
            AA <= B;
        end

        always @(posedge AA)begin
            BB <= A;
        end

        assign OUT = BB;
    endmodule

Выход AA используется в качестве тактового сигнала для BB, говорящего, что AA выполнил свою работу и теперь BB может продолжать свою работу.

Я редко встречаю этот код. Является ли это хорошей практикой?

Если нет, есть ли другие правильные способы для обнаружения фронта сигнала?

6
задан e19293001 2 January 2016 в 14:32
поделиться