FPGA VIでトップレベルフロントパネルオブジェクトの数を制限する (FPGAモジュール)

FPGA VIが使用する領域を減らすには、トップレベルFPGA VIでフロントパネルの制御器および制御器の数を減らします。トップレベルFPGA VIの各フロントパネルオブジェクトは、FPGAで大量な領域を使用します。これは、トップレベルFPGA VIおよびホストVI間の通信用の追加論理がLabVIEWに含まれているためです。フロントパネル制御器と表示器のデータを保存するレジスタは、内部レジスタよりも多数のフリップフロップを必要とします。

サブVIのフロントパネルのオブジェクトは、ホストVIと直接通信しないため、FPGAで追加の領域を消費しません。呼び出し間で状態情報を保持する必要のあるサブVIの制御器と表示器は、レジスタを使用してデータを格納します。サブVIの制御器および表示器は、FPGAリソースを消費しません。

配列を制限する

トップレベルフロントパネルオブジェクトとして表示される配列の各ビットはFPGAでフリップフロップを使用するため、配列はFPGAで領域を大幅に消費します。配列の代わりにFIFOまたはメモリ項目に置換して、データを転送することを検討してください。

配列を入力として関数に配列すると、FPGAコンパイラはForループと等価であるコードを使用して、配列の各要素を順次に処理します。クラスタを入力としてFPGA VIまたは関数に配線すると、FPGAコンパイラはクラスタの各要素に並列論理を作成します。配列とクラスタの関係は再帰的で、配列を中に含むクラスタを入力として配線すると各配列は並列処理され、配列要素は順次処理されます。

メモ  配列操作を実行すると、最大のトップレベルクロックまたは派生クロックのレートが制限されます。FPGAクロックレートを最大化するには、配列の代わりに単一データポイントを処理してください。

グローバル変数を使用する

ホストVIからフロントパネルの制御器および表示器にアクセスする必要がない場合は、制御器と表示器をグローバル変数に置換して、FPGA VI内でデータを渡すことを検討してください。データを渡す必要がない場合は、制御器を定数に置換して、FPGA VIが使用する領域を減らすことを検討してください。

フィードバックノードを使用する

リソースを減らすには、制御器の代わりにフィードバックノードを使用してサブVIにデータを格納します。

データタイプをビットパックする

以下の図に示すように、フロントパネルのオブジェクト数を減らすために、オブジェクトを組み合わせることができる場合があります。

上記の図では、トップレベルFPGA VIの各ブール制御器に、FPGAで領域を消費する追加論理が含まれています。ただし、単一の8ビット数値制御器を使用してデータを示すと、1つの制御器のみに追加論理が含まれます。「数値をブール配列に変換」および「指標配列」関数を使用して、数値制御器の要素にアクセスできます。



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

役に立たなかった