FPGA VIを作成する際にLabVIEWクラスを使用する
- 更新日2025-03-06
- 4分で読める
FPGA VIを作成する際は、LabVIEWのオブジェクト指向プログラミングのテクニックのある一面を使用できます。
サポートされるLabVIEWクラスの機能
- クラス定数、制御器、および表示器
- クラスメソッド
- FPGAでサポートされるデータタイプすべてのクラス内での使用
- 他のクラスのプライベートデータに含まれるクラス
メモ コンパイル時にLabVIEWがすべてのクラスを決定可能な必要があるため、トップレベルFPGA VIのフロントパネル上でLabVIEWクラスを使用できません。
クラスの継承およびコンパイル時分解能のガイドライン
LabVIEWオブジェクト指向プログラミングでは、実行時のオブジェクトタイプはワイヤのタイプと同じまたは派生になります。FPGA VIをビットファイルにコンパイルする場合、データ経路は固定され、コンパイラはコードの複数の実装を動的に呼び出すことができません。この制約により、コンパイラがどのタイプが実行時に実際にワイヤで使用されるかを静的に判断できることが必要となります。FPGA VIを作成する際は、タイプについて以下のガイドラインを使用してください。
- 子クラス端子を親クラス端子に配線できます。
- FPGA VIでのダイナミックディスパッチは、他のサブVI呼び出しと比較しても追加的なオーバーヘッドはありません。これは、コンパイルの時点で呼び出されるオーバーライドが決定されているためです。
- FPGA VIにLabVIEWクラス入力があり再入可能でない場合は、VI階層の複数の場所でそのVIを呼び出し、それをさまざまな場所に異なるワイヤタイプで配線することが可能です。ただし、コンパイラがVI階層を解析する際に、ワイヤタイプはすべての場所で同じクラスに決定する必要があります。これはスタティックディスパッチおよびダイナミックディスパッチVIの両方に適用されます。
- クラスタイプのローカル変数がある場合は、以下のリストで説明するように、すべての書き込みでクラスタイプが一致するようにしてください。
- LabVIEWクラス制御器および関連した書き込みローカルがある場合は、その書き込みローカルに接続されているすべてのワイヤが同じクラスタイプであることを確認してください。制御器がコネクタペーン上にある場合は、端子に接続されているワイヤ (制御器に対応) も同じクラスタイプであることを確認する必要があります。
- LabVIEWクラス表示器および関連した書き込みローカルがある場合は、その書き込みローカルおよび表示器に接続されているすべてのワイヤが同じクラスタイプであることを確認してください。
- クラスタイプのローカル変数があり、一部が読み取りである場合は、以下のリストで説明するように、すべての書き込みがデフォルトのクラスタイプに一致するようにしてください。
- 制御器に関連付けられた読み取りローカル、または配線済み制御器に関連したローカル変数がある場合は、書き込みローカルに接続されているワイヤがあればすべて、制御器がコネクタペーン上にあり、その制御器に対応した端子を配線した場合を除き、デフォルトタイプであることを確認してください。
- 表示器に関連した読み取りローカルがある場合は、表示器に接続されているすべてのワイヤ、および書き込みローカルがあればこれもすべて、デフォルトタイプであることを確認する必要があります。
- 配列のすべてのオブジェクトは同じクラスに決定する必要があります。
- ケースストラクチャのトンネルは、すべてのフレームで同じクラスに決定する必要があります。
- コンパイラは初期化端子でシフトレジスタ (またはフィードバックノード) のクラスを決定し、そのタイプを残りのループで使用します。シフトレジスタ (またはフィードバックノード) が初期化されていない場合、そのタイプはワイヤのクラスに決定されます。ループ内で子クラスを使用するとコンパイルが失敗します。以下の図で、FPGA VIは、サブVIであるDynDisp.viが入力時に表示される出力で常に同じタイプを返す場合にのみコンパイルします。