FPGAで並列処理を採用すると、通常は実行レートが増加し、プロセッサベースのターゲットと比較してジッタが減少します。各並列処理は、FPGAハードウェアの独立した部分で実行され、真の同時実行を実現します。その結果、シングルプロセッサで複数の処理を行った場合の合計時間は各処理の実行時間の合計であるのに対し、並列FPGA処理の合計実行時間は、最も低速な処理の実行時間に等しくなります。

並列処理を作成するには、1つのブロックダイアグラム内に複数のWhileループを独立して配置します。たとえば、以下の図に示すように、複数のデータ収集エンジンをそれぞれ個別のサンプリングレートで実行する場合があります。

個別のサンプリングレートを使用して、効率的に高周波数および低周波数の信号を含むシステムでデータを集録することができます。1つのデータ収集エンジンを高サンプリングレートで構成して、高周波数信号を測定します。もう一方のデータ収集エンジンを低サンプリングレートで構成して、低周波数信号を測定します。

並列処理で共有リソースを使用する場合、各処理は共有リソースが利用可能になるまで実行を待機するため、並列処理が無効になる恐れがあります。共有リソースとして考えられるものには、デジタルI/Oリソース、アナログI/Oリソース、メモリ項目、レジスタ項目、割り込みライン、ローカルおよびグローバル変数、そして非再入可能サブVIが含まれます。

ヒント 各並列処理は、FPGAで一定の領域を使用します。FPGAの領域が不足してきた場合に同じ並列操作を実行する場合は、処理用にサブVIを作成して、非再入可能にすることで、領域を節約することができます。ただし、非再入可能サブVIにすると並列実行ができなくなります。

ワイヤを使用してループ間でデータを転送すると、データフロー依存が発生するため、ループの並列実行ができなくなります。

  • メモリ項目
  • レジスタ項目
  • ローカルまたはグローバル変数
  • FIFO