FPGA VIでトップレベルフロントパネルオブジェクトの数を制限する
- 更新日2025-03-06
- 3分で読める
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コンパイラはクラスタの各要素に並列論理を作成します。配列とクラスタの関係は再帰的で、配列を中に含むクラスタを入力として配線すると各配列は並列処理され、配列要素は順次処理されます。
グローバル変数を使用する
ホストVIからフロントパネルの制御器および表示器にアクセスする必要がない場合、制御器や表示器の代わりににグローバル変数を使用してFPGA VI内でデータを渡すことを検討してください。データを渡す必要がない場合は、制御器を定数に置換して、FPGA VIが使用する領域を減らすことを検討してください。
フィードバックノードを使用する
リソースを減らすには、制御器の代わりにフィードバックノードを使用してサブVIにデータを格納します。
データタイプをビットパックする
以下の図に示すように、フロントパネルのオブジェクト数を減らすために、オブジェクトを組み合わせることができる場合があります。
上記の図では、トップレベルFPGA VIの各ブール制御器に、FPGAで領域を消費する追加論理が含まれています。ただし、単一の8ビット数値制御器を使用してデータを示すと、1つの制御器のみに追加論理が含まれます。数値制御器の各要素を取り出すには、「数値をブール配列に変換」関数および「指標配列」関数を使ってアクセスします。