VHDL を使用して、事前設定された時間枠内に来る可能性のある信号の一致チェックを FPGA に実装しようとしていますが、すでに何度も行われている非常に基本的なものを発明しようとしているのではないかと心配しています...
望ましいモジュール機能:
入力の 1 つに信号があったことを思い出し、事前設定された期間の後、これらの記憶された信号を同期として扱い、回路にさらに送信します。
例: 2 つの入力ポート (A、B) でリッスンし、少なくとも 1 つの 10 ns の長さの信号が入力で検出された場合、それを保存し、500 ns の期間で保存された信号をさらに送信してリセットします。
これまでのところ、私はこれを思いつきました:
入力の保存:
memory_A <= A when ( memory_A = '0' );
memory_B <= B when ( memory_B = '0' );
次に、それらをさらに送信してリセットする必要があります。500 ns 間隔で 10 ns の長いパルスを生成するモジュールがあるので、その出力を使用してプロセスをクロックします。
process(pulse)
begin
if(pulse'event and pulse='1') then
-- generate output signals
modified_output_A <= memory_A
modified_output_B <= memory_B
-- reset the storage
memory_A <= '0'
memory_B <= '0'
end if;
end process;
これをモジュールにラップします
入力: A、B およびパルス
出力: modified_A、modified_B。
今、私はロジックを適用できる同期A、B信号を取得しています(一致をチェックするなど)。
私の質問は次のとおりです。
これはうまくいきますか?
これは良い方法ですか?私が見ないかもしれない欠点やキャッチはありますか?
これが適切な方法ではない場合、どのように行うべきですか?
事前にすべてのフィードバック/ヘルプをお寄せいただきありがとうございます。