組み込みソフトウェア開発における従来のツールや手法では、今日の複雑な組み込みシステム、特にマルチコアチップやSoC、そしてその厳しい開発スケジュールに対応するには不十分である。
仮想プロトタイプとは、ホストシステム上で動作する実行可能なソフトウェアモデルのことです。これは、CPU命令セット、メモリマップ、レジスタ、割り込みなど、ハードウェアを、ソフトウェア開発に合わせて調整可能な十分なレベルでエミュレートします。 ソフトウェアの観点からは、エミュレート対象のハードウェアとバイナリ互換性があり、ユーザーは、低レベルのデバイスやファームウェアからオペレーティングシステム、ミドルウェア、そして最終的に開発中のアプリケーションに至るまで、ソフトウェアスタック全体を構成するバイナリイメージを、修正することなく実行することができます。これは、ソフトウェア開発を行うためのターゲットシステムの完全な機能的表現です。
仮想プロトタイプは、ソフトウェア開発者にとって無関係なハードウェアの詳細を抽象化します。命令セットシミュレータを用いて、仮想プロトタイプは標準的なPC上で組み込みターゲットコードを実行します。システムの周辺機器は、変更を加えていないソフトウェアイメージを実行するのに必要な最小限の詳細度で、トランザクションレベルでモデル化されます。例えば、レジスタの挙動は正確に再現されますが、タイミングについては正確に再現されません。
シミュレーション速度は非常に高速であるため、AUTOSARやAndroid OS上で動作するアプリケーションなど、大規模なソフトウェアスタックをインタラクティブに実行することが可能です。仮想プロトタイプは、仮想および実世界のI/Oを利用して、USB、PCIe、イーサネット、シリアルデバイスなどの実世界のインターフェースに接続します。
早期の利用可能性、バイナリ互換性、そして高い性能により、仮想プロトタイプを活用することで、実際の物理ハードウェアが利用可能になるずっと前、多くの場合はチップの設計が完了する前であっても、システムソフトウェアの開発、デバッグ、統合、および検証を行うことが可能になります。
仮想プロトタイプは、開発サイクルの早い段階で導入するのが最適であり、具体的には次のような時期が挙げられます:
| 開発段階 | メリット仮想プロトタイピング |
| 初期のソフトウェア開発 | ハードウェアが利用可能になる前に、早期のコーディングやテストが可能になります |
| ハードウェア/ソフトウェアの統合 | FPGA の提供開始に先立ち、統合テストを円滑に進めることができます |
| デバッグとテスト | 高度なデバッグツールと可視性 |
| 回帰分析の設定 | 簡単に自動化でき、再現性の高いテスト環境 |
| ハードウェアのプロトタイピング | 反復プロセスを迅速化するための補足または代替手段 |
シノプシス 仮想プロトタイピング ソリューションの全ラインナップを提供しています。これには、初期段階のアーキテクチャ分析のための「Platform Architect™ 」、業界最大規模のトランザクションレベルモデル(TLM)ポートフォリオを備えたソフトウェア開発用仮想プロトタイプ作成ツール「Virtualizer™」、多数の自動車プラットフォームに対応したすぐに使える「Virtualizer Development Kits(VDK)」に加え、プロジェクトの成功を確実にするターンキーサービスや立ち上げ支援サービスが含まれます。