FPGA VIのコンパイルは、数分で終了することもあれば数時間かかる場合もあります。ただし、コンパイルする前にシミュレーションI/Oを使用してシミュレーションモードでFPGA VIを実行することによって、FPGA VIの論理をテストできます。このテスト方法を使用する場合、LabVIEWは入力用に乱数データを生成するか、I/OとなるユーザのカスタムVIを実行します。FPGAデスクトップ実行ノードを使用することにより、選択したFPGAリソースを観察しながらFPGA設計をデバッグすることもできます。一部のFPGAターゲットでは、実際のI/Oを使用して、シミュレーションモードでFPGA VIを実行することもできます。

開発用コンピュータでシミュレーションでFPGA VIを実行する場合、プローブ、実行のハイライト、ブレークポイント、シングルステップなど、従来のすべてのLabVIEWデバッグ方法と共に、FPGAホストVIコンテキストに特有のデバッグ方法も使用できます。

ヒント NIは、不要なコンパイルを回避するために、コンパイルを実行する前にソフトウェアでFPGA設計をデバッグおよび検証することを推奨しています。

シミュレーションI/Oを使用したシミュレーションモードでFPGA設計をデバッグする方法は、以下のオプションから選択します。

  • サンプリングプローブ―このオプションを使用して、VIを実行中にワイヤ上の中間値と、信号データの変化を時間軸で確認します。
  • FPGAデスクトップ実行ノード―このオプションは、FPGA VIの各設計要素をテストする必要がある場合や、サポートされている機能に依存する設計のシステムレベルのテストを実行する場合に使用します。サポートされている機能には、フロントパネル制御器と表示器、I/Oリソース、およびシミュレーション時間を使用するリソースが含まれます。シミュレーション時間を使用する機能のリストは、「ホスト上のシミュレーション時間について」のセクションを参照してください。
  • カスタムVIテストベンチ―このオプションは、特定の入力からのデータを作成する必要がある場合、または出力を監視する必要がある場合に使用します。

サンプリングプローブ

ホストVIまたはFPGA VIでサンプリングプローブを使用して、VIを実行中にワイヤ上の中間値を確認したり、シングルサイクルタイミングループから信号をデバッグする必要がある場合などに、信号データの変化を時間軸で確認します。ホストVIでサンプリングプローブを使用する場合、最初にプローブのサンプリングソースを指定する必要があります。

サンプリングプローブ監視ウィンドウを使用してデータを変更することはできません。プローブはVIが実行する方法に影響を与えません。

FPGAデスクトップ実行ノード

テストベンチを使用してFPGA VIをデバッグする前に、シミュレーションI/Oを使用してシミュレーションモードでFPGA VIを実行することで、コンパイルせずにVIの論理をテストすることができます。このテスト方法を使用するとコンパイル時間が節約でき、テストの反復がしやすくなるほか、追加のデバッグのためにテストベンチを作成する変更回数を減らすことができます。

FPGAデスクトップ実行ノードは、シミュレーションI/Oを使用したシミュレーションモードでFPGA VIを指定クロックティック数だけ実行します。FPGAデスクトップ実行ノードを使用して、開発したIPを含む個々のループをテストするか、異なるクロックレートで並行に実行されている、複数のループを持つFPGAアプリケーション全体をテストします。このノードを使用して、選択したFPGAリソースの通信およびFPGA設計をデバッグします。

メモ 連続的にコードのシミュレーションを続ける場合は、LabVIEW FPGAコードをWhileループの内側に配置する必要があります。

カスタムVIテストベンチ

FPGA VIのテストベンチとして使用するカスタムVIを作成し、LabVIEWでI/Oのシミュレーションを行うことができます。カスタムVIをテストベンチとして使用して、特定の入力からのデータ作成や出力の監視が実行できます。FPGA VIがFPGA I/Oノードから入力の読み取りを行う呼び出しを実行するたびに、LabVIEWは指定したカスタムVIを使用してデータを提供します。カスタムI/O VIをFPGA I/Oで使用すると、テスト用の再現可能なシナリオが作成され、特定の入力のデータの変更が可能になります。また、FPGA I/Oの代わりにカスタムVIを使用して、FPGA I/Oノードからの出力を監視することもできます。

(ステートチャート) 開発用コンピュータのFPGAターゲットでステートチャートをデバッグすることもできます。

シミュレーション時間について

特定のFPGAリソースを使用して、シミュレーションI/Oを使用したシミュレーションモードでFPGA VIを実行する場合、リソースでは実時間の代わりにシミュレーション時間が使用されます。シミュレーション時間は、シミュレーション中に発生するイベント数により、実際よりも速くなる場合があります。たとえば、「シミュレーション時間の待機」VIをブロックダイアグラムに追加して遅延を1000 msに設定した場合、LabVIEWは実時間で1秒の遅延を実行しません。代わりに、LabVIEWはシミュレーションで次に予定されている動作を実行する前に必要なだけ遅延を実行します。

以下のリソースは、ホストでシミュレーション時間を使用します。

  • Whileループ
  • シングルサイクルタイミングループ
  • 「シミュレーション時間の待機」VI
  • 「ループタイマ」Express VI
  • 「ティックカウント」Express VI
  • FIFO (DMA FIFO以外)
  • 「オカーレンス待機 (タイムアウトをティックで指定)」関数
  • 「割り込み」VI (クリアされるまで待機がTRUEの場合)