アーカイブ済み: LabVIEW FPGAサイクルアキレートシミュレーション

NI does not actively maintain this document.

This content provides support for older products and technology, so you may notice outdated links or obsolete information about operating systems or other relevant products.

概要

FPGA (field-programmable gate array) アプリケーションがより大規模化、複雑化するにつれ、時間のかかるコンパイルプロセスを実行して確実なテスト対象範囲で設計をデバッグする前に、IPを検証するためのシミュレーションの重要度は高まってきます。NI LabVIEWソフトウェアでは、機能とタイミングの両方でアプリケーションのロジックをシミュレーションすることができます。サイクルアキュレートシミュレータは、アプリケーションのロジックの信号伝搬を検証する方法によって、アプリケーションのタイミング上の制約をテストします。また、LabVIEW FPGAとコンポーネントレベルIP (CLIP) またはIP統合ノードロジックを両方組み込むことができるため、FPGAアプリケーション全体のテストも可能です。この技術資料では、LabVIEW FPGAとサードパーティのサイクルアキュレートシミュレータの統合について解説します。LabVIEW FPGAの機能シミュレーションについては、LabVIEW FPGAオンラインヘルプを参照してください。

 

メモ: LabVIEW 2018 FPGAモジュールのリリース以降、Mentor Graphics Questa Advanced SimulatorはLabVIEW FPGAのシミュレーションツールとしてサポートされていません。

 

メモ: LabVIEW 2014以降、Mentor Graphics ModelSimはLabVIEW FPGAのシミュレーションツールとしてサポートされていません。

内容

LabVIEWサードパーティシミュレータ使用したシミュレーション

FPGAアプリケーションのコシミュレーションにより、LabVIEWから直接シミュレーションを作成し実行しつつ、バックグラウンドで高度なサードパーティサイクルアキュレートシミュレータを活用することが可能となります。

コシミュレーションの際、LabVIEWはテスト対象IPに刺激信号を送り、シミュレータの実行を制御して、応答をキャプチャします。通常のFPGAホストインタフェース関数によって入力と実行を駆動するホストVIは、従来型のVHDLベースのテストベンチに代わるものです。使い慣れたLabVIEWでテストベンチを抽象化できるようになったことで、生産性を向上できるだけでなく、VHDLの専門知識がなくても、LabVIEW FPGA VIでサイクルアキュレートシミュレーションを開発し実行することが可能となります。

図1.LabVIEW FPGAでサイクルアキュレートコシミュレーションを行うと、LabVIEWで作成したテストベンチがサポートされるためVHDLの専門知識が不要となります。

各FPGAホスト関数の実行により、サードパーティシミュレータが次のシミュレーションコンポーネントをいつ実行するかが決まります。たとえば、書き込みプロパティノードがLabVIEWホストVIで実行された時、適切な刺激信号をシミュレータに送信してシミュレーション時間を進めます。シミュレータで結果の計算が終わると、実行を停止しLabVIEWからの次の制御コマンドを待ちます。

シミュレータの実行における制御性と柔軟性をさらに高める方法として、現在のシミュレーション時間を取得したり、シミュレーションが指定した時間待機するよう強制したり、シミュレータの実行を停止したりするシミュレーションFPGAホストインタフェースパレットがあります。

図2.シミュレーションFPGAホストインタフェースパレットには、サードパーティシミュレータの実行時間に対しより細かい制御を行うための関数が表示されます。

LabVIEWテストベンチによるコシミュレーションは、Mentor Graphics ModelSimとMentor Graphics Questa Advanced Simulatorでサポートされています。 

サードパーティシミュレータ使用するためシミュレーションエクスポート生成

もう1つの下位方式のサイクルアキュレートシミュレーションは、LabVIEW FPGAシミュレーションを生成しエクスポートして、直接サードパーティシミュレータで使用するものです。コシミュレーションと異なり、この方式では刺激信号の供給、テスト実行の制御、出力のキャプチャ/確認にHDLベースのテストベンチが必要です。そのため、LabVIEW FPGAでこの方式を使用する場合は、HDLシミュレータとVHDLに習熟している必要があります。この方式のメリットは、Mentor Graphics ModelSimおよびQuestaに加えて、LabVIEW FPGAに付属するXilinx ISimまたはVivado Simulatorサイクルアキュレートシミュレータにこれらのシミュレーションファイルをインポートすることが可能な点です。

図3. LabVIEWで生成したテストベンチを変更したら、サイクルアキュレートシミュレーションをModelSim、Questa、Vivado Simulator、またはISimで実行できます。

シミュレーションエクスポートの一環として、LabVIEWはユーザのFPGAアプリケーション用にカスタマイズしたテストベンチのテンプレートファイルを生成します。それにより、設計したIPを適切に動作させるため、既存のVHDLを追加することができます。

図4.LabVIEWはシミュレーションエクスポートファイルの一環としてテンプレートのVHDLテストベンチを生成し、その結果テストベンチの開発が迅速化します。

シミュレーションファイルの生成、テストベンチの編集、Xilinx ISimまたはVivado Simulatorでのシミュレーションの実行の方法については、Cycle-Accurate Simulation With Xilinx ISimでステップごとに説明しています。

まとめ

コンパイルと実装の前にFPGAアプリケーションのシミュレーションを効率よく行うため、LabVIEW FPGAには、機能シミュレーションとサイクルアキュレートタイミングシミュレーションの両方を実施できるツールが搭載されています。サイクルアキュレートシミュレータを使用すると、信号伝搬の重大な競合や並列コード間の不要な通信を検出することができます。従来の方式では、元のIPの開発以上の特別な専門知識と時間の投資が必要なこともあります。

LabVIEW FPGAでMentor Graphics ModelSimまたはMentor Graphics Questaを使用してサイクルアキュレートコシミュレーションを行うと、VHDLの専門知識が不要となるほか、LabVIEWのスキルを利用してテストベンチの開発にかかる時間を大幅に短縮することができます。

LabVIEW FPGAには、無料のサイクルアキュレートシミュレータも付属しています。FPGAデバイスに応じて、このシミュレータはXilinx ISimまたはVivado Simulatorになります。ただし、この場合設計を正しく使用するために、LabVIEWはユーザが変更可能なVHDLテンプレートのテストベンチを生成します。

 

Was this information helpful?

Yes

No