vhdl でデュアル ポート メモリ共有 dpram コントロールとやり取りする必要がある fpga と dsp のインタープットを作成しています。一方の SPI バスから fpag に接続されて dsp と通信する外部 IO があり、もう一方にはカメラが dsp に接続されています。したがって、私の割り込みは、FSM が dsp で割り込みを読み書きするたびに FIFO がリセットされるようなものです。
今私の問題は
- 一度にいくつかの特定の割り込みを有効にし、他の割り込みを無効にしたいと考えています。
- 論理 XOR 関数でマスキングを行うと、UART からの他の割り込みがタイムアウトになります。
- これが完了すると、カメラは信号を取得しますが、制御できません。
次のアルゴリズムを使用して、すべての非同期入力を処理します。
- event2reg_array_proc: すべての入力を並列バッファー "fifo_data_input_array" に保存します。各入力 (フラグ) は個別のバッファーに配置する必要があります。
- reg_array2fifo_proc2: 各バッファをシリアルに読み取り、FIFO「fifo320x32」に保存します。
- メイン FSM では、fifo からの出力を読み取り、適切な処理を行います。各サイクルは 1 つの値のみを読み取ります。これは 1 つのフラグである必要があります。
処理後もレジスタに残っているフラグを取得した場合、次の理由が考えられます。
- event2reg_array_proc: および reg_array2fifo_proc2: では、1 つのフラグ (バッファー内) が fifo に書き込まれている場合、バッファーからクリアする必要があります。これを制御するために「fifo_cnt」を使用します。シミュレーションで確認できます。
- Line Camera は FRAME_VALID 信号を LINE_VALID 信号と同じように送信するため、Line Camera で多くの CAM2DSP_FRAME_SYNC_FLAG を取得できます。
そのため、カメラがまだ DSP と通信している間に特定の割り込みを有効にするアルゴリズムを提案できます。