Vista Virtual Prototyping

ハードウェアモデルを使ったソフトウェアの早期統合/最適化

SoCと最終製品の総開発費用に占めるソフトウェア開発費の割合が急増していることを受け、組込みソフトウェア設計プロセスにおいては、複雑なハードウェアアーキテクチャを意識しつつ、いかにソフトウェアの開発、統合、妥当性確認、最適化を進めるかが大きな課題となっています。こうした状況を踏まえ、ハードウェアをシミュレーションするための高速、高精度かつ低コストのモデルを、開発の早期段階から組込みソフトウェア設計チームに提供することが求められるようになりました。

メンター・グラフィックスのVista Virtual Prototypingを使用すると、実ハードウェアを入手する以前の早い段階で、ソフトウェアエンジニアが抽象度の高いハードウェア機能モデルを利用できるようになります。Vista Virtual Prototypingは組込みプロセッサモデルのソフトウェアを実ハードウェアと同等の速度で実行できるだけでなく、Sourcery CodeBench Virtual Editionとのシームレスな統合によって、ソフトウェアとハードウェアの複雑な相互作用の制御と可視化、性能目標と消費電力目標を達成するためのソフトウェアの最適化といった付加的な機能や利点を提供します。

課題

  • ソフトウェア統合テストのためのハードウェアモデルの早期入手
  • ソフトウェアとハードウェアの複雑な相互作用の視覚的なデバッグ
  • オペレーティングシステム(OS)とアプリケーションソフトウェアの妥当性確認に対応可能な高速シミュレーションモデル
  • ソフトウェア要求仕様とハードウェア設計の整合性確保
  • 組込みデバイスの性能と消費電力の目標の達成
  • ネイティブソフトウェア開発環境へのハードウェアビューの統合

特長と利点

  • 業界標準のSystemC/TLM(トランザクションレベルモデリング)によるVP(仮想プロトタイプ)実行可能プログラム
  • ハードウェアモデルを使った早期ソフトウェア妥当性確認
  • BSPや最終製品と同等速度のソフトウェア実行
  • ソフトウェアデバッグ時のキーとなるハードウェアのレジスタと属性の可視化
  • 非侵襲的なソフトウェアプロファイリングトレース手法
  • メンター・グラフィックスのSourcery Analyzerとの併用による組込みソフトウェアの高度解析機能
  • 業界標準の広範囲なTLMモデルとプラットフォームをサポート
  • 共通時間軸で製品性能と消費電力の解析結果を表示するハードウェア/ソフトウェア共通ビュー
  • 商用SoCプラットフォーム向けのカスタマイズ可能な仮想プロトタイピングキット(VPK)
  • Sourcery CodeBench Virtual Editionと統合された直観的なソフトウェアデバッグ環境

 

VP(仮想プロトタイプ)の作成

VistaのVPは、Vista内に構築したTLM(トランザクションレベルモデリング)プラットフォームで作成されるシミュレーション実行可能プログラムです。LinuxおよびWindowsのワークステーション上で実行可能なVPは自動的に作成されます。VistaのVPはスタンドアロンの実行可能プログラムであるため、コマンドラインから実行することも、メンター・グラフィックスのSourcery CodeBench Virtual EditionのIDE環境から起動することもできます。多くの組込みソフトウェアエンジニアに選ばれているSourcery CodeBenchは、接続するハードウェアモデルが異なっても一貫性のある統合開発環境(IDE)とユーザエクスペリエンスを提供します。ハードウェアモデルとしては、Vistaの純粋なVPモデルからVeloceでエミュレーション可能なRTLモデル、実機ボードモデル、またはその中間的なものまでさまざまな種類に対応しています。

バーチャルプロトタイピングにはまた、ハードウェア内部の視覚化、ハードウェアとソフトウェアが緊密に結合した状態での性能と消費電力の解析、ファイルシステムの連携制御が可能になるというメリットもあります。

VPには、2つのモードがあります。機能モードはソフトウェアの統合、妥当性確認、デバッグに対応しており、性能モードは性能向上と消費電力削減を目指してソフトウェアを解析および最適化するモードです。機能モードのシミュレーション実行速度は数百MIPSで、リアルタイムの速度と同等か近い値になっています。性能モードのシミュレーション速度は機能モードに比べて2桁ほど遅くなります。Vista VPは機能モードと性能モードをユーザが実行時に「切り替える」ことができます。

 

 

 

ソフトウェア開発

最終製品のボードやハードウェアプロトタイプと同等以上の機能を備えたVPを使用することにより、ハードウェアと一体化したソフトウェアの開発、統合、妥当性確認が可能です。Vista Virtual Prototypingは、いずれ最終製品上で実行される実ソフトウェアを一貫してデターミニスティックに実行できるだけでなく、ベアメタルモードやLinux、Android、NucleusなどのOS上で動作するUI、アプリケーションスタック、ミドルウェア、ファームウェア、ドライバをサポートしています。またSourcery CodeBenchと一体化したIDE環境のもとでメンター・グラフィックスの組込みランタイムプラットフォームと緊密に連携させることができます。連携可能なプラットフォームにはMentor Embedded Linux開発プラットフォームNucleus RTOS(リアルタイムオペレーティングシステム)があります。Linuxカーネルの構築や数秒以内のOSブートを可能にする機能とメソドロジが用意されています。

ホストワークステーションにつないだ端末やディスプレイなどの物理デバイスをVista Virtual Prototypingに接続することにより、ソフトウェアエンジニアがVPを制御できます。さらにホストワークステーションをUSBやイーサネットに接続すると、仮想モデルを現実に近い環境条件で実行することもできます。セミホスティングを使用すると、メッセージや現在のシミュレーション時間の画面印字、およびエラーメッセージのバーバシティの設定が可能です。また、プロトタイプの動作に影響を与えずにシミュレーション速度への影響も最小限に抑えてハードウェアの可視化やプロファイリングを行う機能も備わっています。

 

 

 

ハードウェア/ソフトウェア統合デバッグ

Vista Virtual Prototypingに統合されたSourcery CodeBenchは、ハードウェアオブジェクトを可視化し制御するソフトウェアIDEに緊密に組み込んだソフトウェアデバッグ環境であり、最も広く使用されています。ソフトウェアのデバッグとハードウェアのバグ特定に十分な可視性が確保されているので、ソフトウェアエンジニアがハードウェア指向のツールやテストベンチを使用する必要はありません。

Sourcery CodeBench Virtual Editionを使用するソフトウェアエンジニアは、TLMプラットフォーム作成時に宣言されたペリフェラルレジスタとローカル変数までを含むプラットフォームのハードウェアオブジェクトを直接的に視認し、制御できます。ブレークポイントの条件が成立したときにハードウェアのシミュレーションを中断するブレークポイントを設定し、その後ソフトウェアの命令を1ステップごとに実行することにより、ハードウェアとソフトウェアを緊密に連携させたデバッグが可能です。ソフトウェアの命令を1つ実行するたびに、ハードウェアオブジェクトのステートを確認することができます。

また、VP上で起動した組込みOSのプロンプトからファイル操作する機能も追加されています。これにより、ホスト上でソフトウェアパッケージを開発、構築、デバッグし、ターゲットOSのコンソールからそのパッケージにアクセスすることができるので、VP上でOSを再シミュレーションしたり、再起動したりする必要がありません。また、コアがスリープモードに入るときのような重要なイベントに対してコールバックを事前定義しておくことで、CPUコアの追跡方法をカスタマイズできます。

 

 

 

ハードウェア/ソフトウェア統合解析

Vista Virtual PrototypingとSourcery CodeBench Virtual Editionを統合したIDE環境には、独自の非侵襲的なトレース手法があります。これにより、ソフトウェアエンジニアがイメージを再コンパイルしたり、実行時の動作に影響を与えたりすることなく、ソフトウェア実行をさまざまな角度からデバッグ、プロファイリング、カバレッジ収集できます。VPの性能や消費電力に関するさまざまな指標を解析できるプロファイリングトレース機能もあります。これらの指標はプラットフォームのハードウェア属性とプラットフォームのコアおよびCPU上で動作する組込みソフトウェアの両方から影響を受けます。ソフトウェアの解析ビューには、ポート、バス、サブシステムの平均的なレイテンシ、スループット、使用率も表示されるため、ソフトウェアを最適化しデバイス性能を向上させることができます。プラットフォームの動的/静的消費電力を表示することで、消費電力の推定とアプリケーションソフトウェアとハードウェアを制御するソフトウェアの最適化が可能となり、消費電力と熱の発生を抑えてバッテリ寿命を延ばすことができます。

Sourcery CodeBench Virtual Editionに付属のMentor Embedded Sourcery Analyzer経由でハードウェアとソフトウェアの解析結果を同時に表示させると、ベアメタル、RTOS、Linuxのソフトウェア解析に役立ちます。Sourcery CodeBench Virtual EditionはVista VP上で稼働しているシングル/マルチコアCPUのデータをハードウェアのトレースデータと統合することも、解析エージェントを活用することも可能です。解析エージェントは、ソフトウェアエンジニアに最も必要とされる解析表示ニーズに応えた直観的で使用頻度の高いシステム解析/可視化ユーティリティです。例えばCPUステート、ファイルシステムアクティビティ、関数呼出しとプロセスやスレッドのステートなどの各種統計データを表示できます。これらの統計データとレジスタ値、ソケットレイテンシ、スループット、トランザクションの値、キャッシュのヒット率/ミス率や消費電力などのハードウェア属性データを参照して、ソフトウェアの動作が最終製品の機能、性能、消費電力に与える影響を解析できます。またSourcery Analyzerはソフトウェアの解析結果を独自のフォーマットで表示できるカスタムエージェントを記述して統合することも可能です。

 

 

 

VPK(仮想プロトタイピングキット)

メンター・グラフィックスの組込みVPKは産業向け商用SoCプラットフォームに対応したカスタマイズ可能な汎用VPです。VPはスタンドアロンのVP実行可能プログラムとしても、ベアメタルモードやLinuxのアプリケーションをデバッグ/解析するために、CodeBench Virtual Editionから選択的かつ自動的にインストールして、簡単に構成して使うこともできます。パラメータファイルでデフォルト値が設定されているVPの主要ハードウェア属性は構成自由度が非常に高く、デフォルト値をユーザが変更することができます。

  • アルテラのArria-V SoC
  • ARMのCortex-A7/Cortex-A9/Cortex-A15プロセッサ用のVersatile Express開発プラットフォーム
  • フリースケールのi.MX6 Dual/Quad用アプリケーションプロセッサ
  • フリースケールのQorIQ T4240用VP
  • ザイリンクスのZynq-7000 All Programmable SoC
製品情報リクエスト