Правильный способ определения края сигнала в 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
Теперь можно продолжить свою работу.
Я редко вижу этот код. Это хорошая практика?
Если нет, есть ли другиенадлежащим образом обнаружить границу сигнала?