サードパーティシミュレーションを使用する場合、シミュレーションエクスポートVHDLフレームワークを理解することがFPGA VIを問題なくデバッグすることに役立ちます。

以下の図で示すように、テストベンチフレームワークであるtb_NiFpgaSimulationModelには、シミュレーションに必要なモデルの階層が含まれます。

以下のリストには、シミュレーションテストベンチのコンポーネントの詳細が記載されています。

tb_NiFpgaSimulationModel―テストベンチフレームワーク全体のデフォルト名です。名前は常にtb_で開始され、シミュレーションエクスポートプロパティダイアログボックスの情報ページのトップレベルシミュレーションモデル名テキストボックスで指定する名前で終わります。

  • 主な刺激プロセス―FPGA VIに対する制御器の設定、表示器の読み取り、および他の刺激の実行のためにコードを追加します。NiFPGA_RunラインとNiFpga_Closeラインの間に必要なコードを入力します。
  • NiFpgaSimulationModel―シミュレーションモデルです。
    • NiFpgaSimInterface―バスインタフェース、またはターゲット固有のコードと通信するためにLabVIEWが提供するVHDLです。名前は必ずNiFpgaSimで始まり、interfaceを含みます。この名前の他の部分は、ターゲットにより異なります。
    • Toplevelフレームワーク―ターゲット固有のコードです。このモデルグループの正確な名前は、ターゲットにより異なります。
      • TheWindow―対話するコードです。TheWindowは、CLIPコードとFPGA VIコードをグループ化します。
        • Clip―LabVIEWプロジェクトで指定するCLIPインスタンスのCLIPシミュレーションコードです。コンポーネントレベルIPを構成ウィザードの名前とソースページで、CLIPのシミュレーション動作を指定します。このモデルグループの下のすべてのコードはユーザ定義となります。
        • TheVI―LabVIEWがFPGA VIに生成するコードです。LabVIEWは、シミュレーションエクスポートプロパティダイアログボックスのソースファイルページで指定するトップレベルVIの名前からTheVIの名前を取得します。
          • 制御器と表示器―FPGA VIの制御器と表示器用のコードです。モデルのこの部分には、FPGA VIをリセットするためのコードも含まれます。
          • VI論理―モデルのこの部分には、FPGA VIのブロックダイアグラムからVI論理を実行するためのコードが含まれます。モデルのこの部分のコード階層は、ブロックダイアグラムの階層を反映しています。たとえば、VHDLコードを含むシングルサイクルタイミングループ、フラットシーケンスストラクチャ、およびケースストラクチャなどのモデルの実体は、ブロックダイアグラムのこれらのストラクチャにあるノードを表します。
        • (オプション) I/O刺激/応答―モデルのこの部分には、FPGAターゲットI/Oをシミュレートするために追加されたコードが含まれています。

TheVIの下にあるVI論理の詳細

ケースストラクチャやフラットシーケンスストラクチャなどの複数のサブダイアグラムを持つストラクチャでは、各ケースまたはフレームに対して別々のVHDL実体があります。これらのVHDL実体の名前は、VHDL実体がサブダイアグラムを表すことを示すために、_diagで終わります。

再入可能サブVIは、ストラクチャの表示方法と同様に、VHDLコードで表示されます。再入可能サブVIには、VHDLコード階層に複数のインスタンスがあります。これらのインスタンスは、ブロックダイアグラムからのサブVIへの呼び出しに対応します。

非再入可能サブVIには、再入可能サブVIを行き来するデータフローの管理のために、特別なVHDL論理が含まれます。

VHDLコードには、LabVIEW VIや関数を表す実体も含まれます。これらの要素の大半が暗号化されますが、そのポートマップに受信および送信される値が表示されます。