アービトレーションの使用を避けてFPGAを最適化する
- 更新日2025-03-06
- 3分で読める
LabVIEWは、共有リソースへのアクセスの管理にアービトレーションを使用します。FPGAの領域を節約して速度を向上させるには、アービトレーションオプションを選択する際、可能であればアービトレーションなしを選択します。
リソースインタフェースにアービトレーションなしオプションを選択すると、LabVIEWはアービトレーション要素を追加せず、FPGAの領域が大幅に節約されます。アービトレーションなしオプションは、領域を節約する他に、FPGA I/OおよびFIFO関数が単一クロックサイクル内に実行されることを可能にします。アービトレーションなしオプションを使用するには、以下のブロックダイアグラムに示すように、FPGA VIのデータフローにおけるリソースインタフェースへの順次アクセスを保証する必要があります。
上記のブロックダイアグラムでは、フラットシーケンスストラクチャにより2つのFIFOメソッドノードが同時に実行しないことが明らかなため、競合リソースが起こりません。このような場合、アービトレーションなしが適切なオプションです。ただし、アービトレーションなしオプションを選択した状態で、1リソースに対する同時要求を行うと、FPGA VIでデータが破損する可能性があります。
複数のアクセサを持つメモリ項目が入ったFPGAアプリケーションをシミュレーションしたときに、アービトレーションなしオプションを選択すると、不正な動作が引き起こされる場合があります。たとえば、アプリケーションに複数のライタが含まれている場合、シミュレーションの間、それぞれのライタで指定されたメモリアドレスの更新が行われる可能性があります。さらに、アプリケーションに複数のリーダが含まれている場合、シミュレーションの間、それぞれのリーダで指定されたメモリアドレスの評価が行われる可能性があります。