アービトレーションの使用を避けてFPGAを最適化する (FPGAモジュール)

LabVIEWは、共有リソースへのアクセスの管理にアービトレーションを使用します。FPGAの領域を節約して速度を向上させるには、アービトレーションオプションを選択する際、可能であればアービトレーションなしを選択します。

リソースインタフェースアービトレーションなしオプションを選択すると、LabVIEWはアービトレーション要素を追加せず、FPGAの領域が大幅に節約されます。アービトレーションなしオプションは、領域を節約する他に、FPGA I/OおよびFIFO関数が単一クロックサイクル内に実行されることを可能にします。アービトレーションなしオプションを使用するには、以下のブロックダイアグラムに示すように、FPGA VIのデータフローにおけるリソースインタフェースへの順次アクセスを保証する必要があります。

上記のブロックダイアグラムでは、フラットシーケンスストラクチャにより2つのFIFOメソッドノードが同時に実行しないことが明らかなため、競合リソースが起こりません。このような場合、アービトレーションなしが適切なオプションです。ただし、アービトレーションなしオプションを選択した状態で、1リソースに対する同時要求を行うと、FPGA VIでデータが破損する可能性があります。

メモ  データの整合性を保つため、アクセス要求が同時に発生しない場合でも、FIFOに対する読み取り (または書き込み) を複数のオブジェクトから行うことは避けてください。

複数のアクセサを持つメモリ項目が入ったFPGAアプリケーションをシミュレーションしたときに、アービトレーションなしオプションを選択すると、不正な動作が引き起こされる場合があります。たとえば、アプリケーションに複数のライタが含まれている場合、シミュレーションの間、それぞれのライタで指定されたメモリアドレスの更新が行われる可能性があります。さらに、アプリケーションに複数のリーダが含まれている場合、シミュレーションの間、それぞれのリーダで指定されたメモリアドレスの評価が行われる可能性があります。



この記事は役に立ちましたか。

役に立たなかった