私はオンラインでVerilogコードを読んでいて、多くのコード例でこれに気づきました。ボタンを押すなどのハードウェアソースからの入力が必要な場合は常に、入力がフリップフロップにコピーされ、入力の反転とAND演算されます。これが理にかなっているのかどうかはわかりませんが、ここのコードでは次のようになっています。
input btn;
reg dff1, dff2;
wire db_tick;
always @ (posedge clock) dff1 <= btn;
always @ (posedge clock) dff2 <= dff1;
assign db_tick = ~dff1 & dff2;
そしてdb_tick
、ボタンプレスとして使用されます。
場合によっては、これは立ち上がりエッジ検出器としても使用されますが、立ち上がりエッジ検出器を簡単に実装することはできません。always@(posedge signal)