FPGA VIでのデータフローおよび有効チェーン
- 更新日2025-03-06
- 5分で読める
有効チェーンは、FPGAでデータフローを強制するためにLabVIEWがFPGAコードに追加する追加の論理です。有効チェーンは2つの部分から構成されています。
- ブロックダイアグラムの実際のデータフローと並行して実行する一連のレジスタ。有効チェーンのこの部分は、シングルサイクルタイミングループ外のみに存在します。
- シングルサイクルタイミングループ内でデータフローを強制する間接的な有効信号。この信号は、状態を保持する要素を含むループ内のすべてのノードにファンアウトします。
シングルサイクルタイミングループの外側のデータフロー
LabVIEWはデータフロー方式でコードを実行します。ノードが実行するために必要なすべての入力にデータが存在する場合にノードが実行されます。ノードの実行が完了すると、ノードの出力が次のノードにデータを渡します。以下の図は、シングルサイクルタイミングループの外でブール関数を実装するために必要なFPGAハードウェアの例を示します。
有効チェーンは、LabVIEWのブロックダイアグラムで実行される順序と同じ順序でFPGA論理が実行されることを保証します。図は、関数がシングルサイクルタイミングループの外側にある時にブール関数がFPGA論理にどのように変換されるかを示します。図の関数の部分は、ブロックダイアグラム上の「反転」関数に相当するブール論理を示します。有効チェーンの部分には、クロックの立ち上がりエッジのみで出力を行う追加の同期レジスタが含まれます。
以下の図は、演算操作を行うFPGAハードウェアの例を示します。
有効チェーンのオーバーヘッドにより、各関数またはVIで最低1クロックサイクルが必要です。アナログ入力操作などのいくつかの関数では、操作の複雑さとハードウェアの制限により、何百回ものクロックサイクルが必要な場合があります。
シングルサイクルタイミングループの内側のデータフロー
シングルサイクルタイミングループ内に配置するノードには、有効チェーンのレジスタ部分が含まれません。レジスタオーバーヘッドを除去すると、有効チェーン用に使用されるフリップフロップが不要になるため、FPGAの総使用領域が減ります。また、有効チェーンレジスタが存在しないため、シングルサイクルタイミングループ内のすべての操作を1クロックサイクルで完了することができます。ただし、メモリメソッドノードまたは「FFT」Express VIなどのいくつかのノードは実行に1クロックサイクルを必要とするため、シングルサイクルタイミングループの次の反復までノードの出力は有効になりません。有効なデータの取得までにかかる必要なクロックサイクル数を、ノードのレイテンシと呼びます。
間接的な有効信号によるタイミングパフォーマンスへの影響について
シングルサイクルタイミングループからの間接的な有効信号は、ダイアグラム内のすべてのフロップにファンアウトします。LabVIEWは間接的な有効信号が削除されるまでシングルサイクルタイミングループと関連するクロックをゲートします。このファンアウトの追加経路オーバーヘッドは、規模の大きい設計でタイミングパフォーマンスを制限する可能性があります。設計にブロックダイアグラム上の他のノードとは独立して実行するシングルサイクルタイミングループが含まれる場合は、これらのループから間接的な有効信号を削除してタイミングパフォーマンスを向上することを検討してください。
以下は、シングルサイクルタイミングループ内でコードを持つブロックダイアグラムを示しています。
以下の図は、上のブロックダイアグラムコードのVHDL表記を示しています。
デフォルトで、間接的な有効信号がフリップフロップまたはブロックメモリなどの状態を保持する要素が含まれるシングルサイクルタイミングループの各ノードにファンアウトすることに注目します。この経路オーバーヘッドは、一部のアプリケーションでタイミングパフォーマンスを制限します。
以下の図は、同じVHDL表記で間接的な有効信号が削除された状態を示しています。