〒225-0011 神奈川県横浜市青葉区あざみ野2-9-22 あざみ野ゆうビル305
inquiry@nextream.bz

MachineWare

仮想プラットフォーム・キット:Virtual Platform Kits (VPK)

システム・ソフトウェア開発とアーキテクチャ探求のためのソリューションです。VPKは、シミュレーション・モデルと最先端のツールをシームレスに統合することで、導入したその日から利用可能な包括的ツールセットを提供します。

仮想プラットフォーム・キット (VPK)は、システム・ソフトウェア開発とアーキテクチャ探求のためのソリューションです。
VPKは、シミュレーション・モデルと最先端のツールをシームレスに統合することで、導入したその日から利用可能な包括的ツールセットを提供します。

すべてのVPKの中核には、SoCや実ボードなどシステム全体を模擬した高速シミュレーション・モデルである仮想プラットフォーム(VP)があり、VPを用いることによりターゲット・ソフトウェアをそのまま実行できます。

VPKは、IEEE標準のSystemC TLM-2.0インタフェースを使用して接続された、オープンソース・モデルと独自モデルから構成されているため、開発者はシミュレーション・モデルのカスタマイズや拡張を容易に行うことができます。

既存のモデルを拡張する場合でも、新しい解析機能を導入する場合でも、VPKでは、プロジェクト固有の要件に合わせて仮想環境を自由に変更可能です。

VPKではデバッグや制御からスクリプト作成、設定に至るまで、さまざまなインタフェースを備えているため、開発者はシステムを自由にシミュレーションできます。

さらに、バス・インタフェースを提供しているだけでなく、PCIe、USB、CAN、LIN、UARTなどを介した、テストや解析のためのスムーズなデータ交換を可能にします。これらのインタフェースは、分散型ソフトウェア・スタックで複数インタフェース化する場合など、「システム・オブ・システム」シミュレーションを実現するために複数のVPKを接続する際にも使用できます。

MachineWare独自のツールやシームレスに統合されたオープンソース・ソリューションに加え、物理的なハードウェア・プロトタイプを使用する場合と同様に、MachineWare VPKとシームレスに接続可能な数多くのサードパーティ・ツールを自由に活用できます。

VPKの特長

        高速な並列シミュレーション実行

        オープンソースとバイナリの混在モデルによる容易な変更

        標準的なSystemC TLM-2.0インタフェース

        豊富なツール(サードパーティ製および自社製)を統合可能

        LinuxおよびWindowsをサポート

        あらゆるソフトウェアのデバッグ、プロファイル、解析が可能Heading 3

MachineWareが提供しているベースVPK

MachineWareでは、カスタムのシミュレーション・モデルを構築するために、いわゆる「ベースVPK」を多数提供しています。これらのVPKには、デモ用に提供されたソフトウェアを実行するために必要な、コアおよびペリフェラル・ブロックが含まれています。

シミュレーション・モデル

MachineWare Virtual PlatformsVP)は、CPU、インターコネクト、ペリフェラルなどのハードウェア・コンポーネント等のさまざまなシミュレーション・モデルから構成されています。

これらのシミュレーション・モデルは、IEEE SystemC TLM-2.0標準を使用して接続されており、すべてのMachineWareシミュレーション・モデルは、Accellera SystemCシミュレーション・カーネルと互換性があります。

CPUサブシステム・モデル

– マルチコアのシミュレーションを実現可能な高速並列実行
– IEEE SystemC TLM-2.0標準互換
– GDB RSP向けデバッグ・インターフェース
– キャッシュのモデリングをサポート
– 命令トレースとプロファイリング
CPU サブシステム・モデルは、仮想プラットフォーム(VP)の重要なコンポーネントです。VP は、開発、テスト、アーキテクチャ探求のためにターゲット・ソフトウェアを修正せずに実行することを目的としているため、CPU サブシステム・モデルの性能は、多くの場合VP 全体の性能を決定します。MachineWareは独自のFTL命令セット・シミュレーション・エンジンをベースに、以下に記載されてるようにさまざまなアーキテクチャに対応した、高品質のCPUサブシステムのシミュレーション・モデルを多数提供しています。

*SIM-V: RISC-Vシミュレーション・モデル

– 
すべてのRISC-V拡張をサポート
–  カスタム命令、レジスタ、CSRなどの追加

SIM-V32ビットおよび64ビットのRISC-V命令セットと、全てのRISC-V ISA拡張をサポートしている、高速RISC-V CPUサブシステム・シミュレーション・モデルです。

SIM-VCPUコアだけでなく、CLINTACLINTCLICPLICAPLICアーキテクチャ向けMachineWare社のRISC-V割り込みコントローラ・モデルともシームレスに統合できます。

またSIM-Vは、プロセッのレジスタなどへのアクセスや、実行されるソフトウェアのデバッグおよび解析など、広範囲にわたるデバッグ機能およびイントロスペクション(オブジェクトの性質や型を調べるための)APIをサポートしています。

*SIM-V拡張SDK

SIM-V拡張SDKを利用することで、SIM-V CPUサブシステム・モデルに対してカスタム命令、レジスタ、CSRなどを容易に拡張できます。

この拡張性により、SIM-Vのベースモデルを修正することなく、シミュレーション環境を特定のニーズに合わせてカスタマイズできます。

開発者はC++でカスタム拡張機能をモデリングし、SDKを使用して共有ライブラリにコンパイルします。シミュレーションが開始されると、SIM-Vは自動的に拡張機能をロードします。

このアプローチにより、開発者は、Android、Linux、RTOSなどの標準ソフトウェアを実行可能なSIM-Vの既存の機能を活用して、高度な拡張機能の開発をすぐに始められます。

またVP-Profツールを活用することで、ソフトウェアのパフォーマンスを解析し、カスタマイズすべきかどうかを判断するためにパフォーマンスのボトルネックを見つけることも可能です。

*SIM-A: ARM Cortex-Aシミュレーション・モデル

– 高速ARM Cortex-Aのベースモデル
SIM-Aは、高速ARM Cortex-A CPUサブシステムのシミュレーション・モデルです。

MachineWareが提供しているGIC割り込みコントローラ・モデルとシームレスに統合されています。SIM-Aは、レジスタなどへのアクセスや、実行されるソフトウェアのデバッグおよび解析など、広範囲にわたるデバッグおよびイントロスペクション(オブジェクトの性質や型を調べるための)APIもサポートしています。

*uSIM-A: ARM Cortex-Mシミュレーション・モデル

– 高速ARM Cortex-Mのベースモデル
uSIM-Aは、高速ARM Cortex-M CPUサブシステムのシミュレーション・モデルです。

uSIM-Aは、MachineWareが提供しているNVIC割り込みコントローラ・モデルや、SysTickなどのCortex-Mペリフェラル・モデルとシームレスに統合されています。また、レジスタなどへのアクセスや、実行されるソフトウェアのデバッグおよび解析など、広範囲にわたるデバッグおよびイントロスペクション(オブジェクトの性質や型を調べるための)APIもサポートしています。

ARM-on-ARM: 仮想化ベースのARMモデル

– ARMシミュレーション・ホストを活用した超高速ARシミュレーション環境
– ISSベースのソリューションより10倍以上高速
MachineWareのARM-on-ARM(AOA)CPUサブシステム・モデルは、ARMシミュレーション・ホスト上の仮想化テクノロジ(Linux KVMまたはApple HVF)を活用して、同等のISSベースのソリューション(ARM FastModels、MachineWare SIM-A、QEMU)よりも10倍以上高速にARMターゲット・ソフトウェアを実行できます。

同時に、SystemC TLM-2.0標準との互換性が維持されているため、仮想ハードウェア・モデルとのシームレスな統合が可能です。

これにより、開発者が慣れ親しんだインタフェースと抽象化レベルを提供すると同時に、大幅な性能向上を実現しています。

AOA CPUサブシステム・モデルは、広範囲にわたるデバッグおよびイントロスペクション(オブジェクトの性質や型を調べるための)APIもサポートしています。例えば、レジスタなどにアクセスしたり、実行されたターゲット・ソフトウェアをデバッグおよび解析したりすることができます。

*QBox: SystemCボックス内のQEMU

SystemC TLM-2.0インタフェースを用いてQEMU環境と統合
– QEMUアーキテクチャがもつ制限の排除
– あらゆるQEMUモデルを柔軟に使用可能
QEMU は広く使用されているオープンソースのフルシステム・エミュレータであり、ARM、TriCore、PowerPC などさまざまなアーキテクチャをサポートしています。

QEMUは多くのモデルを提供していますが、一方でその画一的なアーキテクチャと標準インタフェースの欠如により多くの制限が存在しています。

QBoxは標準SystemC TLM-2.0インタフェースをQEMUに統合することで、これらの制限を排除します。

この機能強化により、MachineWareのVPKなどのSystemC TLM-2.0シミュレーション環境内で、任意のQEMUモデルを使用できます。QBoxは、QEMUのモデルとSystemC TLM-2.0の橋渡しをすることで、QEMUの利用範囲を拡大し、高度なシミュレーション・フレームワークとの互換性を高め、開発者や研究者の汎用性を向上させます。
– 汎用性
MachineWareのGeneric QBoxは、あらゆるQEMUモデルをMachineWare VPKに統合することを可能にします。
– ルネサスRH850
MachineWareのRH850 QBoxは、Renesas RH850 QEMUシミュレーション・モデルをMachineWare VPKに統合することで、その汎用性を拡張します。
– ペリフェラルとインターコネクト・モデル
– 完全なSystemC TLM-2.0標準互換
MachineWareは、Virtual Components Modeling Library(VCML)、MachineWareのオープンソースSystemC TLM-2.0モデリングおよびライブラリ(https://github.com/machineware-gmbh/vcml)を用いて、VP統合用のオープンソースおよび独自モデルを提供しています。

無償版のVCMLには、VPに接続するためのインタフェースだけでなく、多くのペリフェラル・モデルや相互接続モデルが含まれています。サポートされているインタフェースには、Cインタフェース(SocketCAN統合が可能)、UART、I2C、SPI、PCIe、USB、VIRTIOがあります。
利用可能なモデルのリストは、ご要望に応じて提供いたしますのでお問い合わせください。

仮想プラットフォーム・ツール

高性能な仮想プラットフォーム(VP)および仮想プラットフォーム・キット(VPK)だけでなく、MachineWareはVP/VPKユーザー向けにいくつかの便利なツールも提供しています。

*InSCight
– シミュレーションにおけるボトルネックを発見し、シミュレータを高速化
– あらゆるSystemCシミュレーション・モデルとの互換性
MachineWare InSCightは、シミュレーション性能のボトルネックを特定するためのVP性能解析ツールです。InSCightは、MachineWare SystemCプロファイリング・カーネルとInSCight GUIの2つから構成されています。

標準的なSystemCシミュレーションとMachineWareプロファイリング・カーネルをリンクすると、シミュレーション実行中にシミュレーション・プロファイリング・データを生成し、データベースに保存することができます。

InSCight GUIは、プロファイリング・データベースをロードし、取り込まれたデータを解析するために可視化します。これらの機能により、シミュレーション性能のボトルネックを正確かつ効率的に特定し対処することができます。さらに、InSCightはすべての標準的なSystemCシミュレーションおよび、MachineWareのVirtual Platform Kits(VPK)とシームレスに統合できます。

pyVP

–  Pythonを使用した複雑なVPテストケースのスクリプト

MachineWare pyVPは、Virtual Components Modeling LibraryVCML)セッションTCP/IPプロトコルを使用してMachineWare Virtual PlatformVP)と対話するためのオープンソースのPythonライブラリです。Pythonを通じてVPの設定、制御、チェックを行うことができます。

*VPCov

– VP から直接コードカバレッジ・レポートを生成
– 非侵入型のトレースファイル生成
MachineWare VPCov は、MachineWare Virtual Platform (VP) 上でのターゲット・ソフトウェアの実行から直接コードカバレッジ・レポートを生成できるコードカバレッジ解析ツールです。

ターゲット・ソフトウェアの実行中に、VPによってトレースファイルを非侵入的に生成できます。このトレースファイルはVPCovによって解析され、HTML、JSON、または直接コマンドラインでコードカバレッジ・レポートを作成します。

*VPProf

– ターゲット・ソフトウェアの性能ボトルネックの発見
– カスタム RISC-V プロセッサ・アーキテクチャの探求のためのプロファイリング・データの活用
MachineWare VPProfは、仮想プラットフォーム上でのターゲット・ソフトウェアの実行状態を分析し、ホットスポットやパフォーマンスのボトルネックを検出することを可能にするソフトウェアのプロファイリング・ツールです。

VPProfは、得られた情報をターゲット・ソフトウェアのソースコードに注釈をつけることで可視化します。結果は、SIM-V Extension SDKを使用して、カスタムRISC-Vプロセッサのアーキテクチャ探求に使用できます。

*ViPER

– 仮想プラットフォームのコックピット
MachineWare ViPERは、Virtual Platform(VP)の全体制御機能を提供します。

このオープンソースのグラフィカル・ユーザー・インターフェース(GUI)はコックピットとして機能し、シミュレーションの実行を制御すると同時に、VPの実行状態をリアルタイムに可視化します。

ViPERは、VPモデル階層のナビゲート、レジスタ内容のチェック、逆アセンブルの詳細など、さまざまな機能を提供します。



サードパーティツールとの統合

Ashling

MachineWare VPKは、物理的ハードウェア・プロトタイプのように、Ashlingの統合開発環境と相互運用可能です。Ashling IDEは、標準GDB RSPインタフェースを使用してVPKに接続し、ターゲット・ソフトウェアの開発、テストおよびデバッグを可能にします。

 

IAR Embedded Workbench

MachineWare VPKは、物理的ハードウェア・プロトタイプのように、IAREmbedded Workbenchと相互運用可能です。Embedded Workbenchは、標準のGDB RSPインタフェースを使用してVPKに接続され、ターゲット・ソフトウェアの開発、テスト、デバッグを可能にします。

 

Lauterbach Trace32

MachineWare VPKは、物理的ハードウェア・プロトタイプのように、ローターバッハのTrace32デバッグ・ソリューションと相互運用可能です。Trace32は、標準のMCD APIまたはGDB RSPインタフェースを使用してVPKに接続され、ターゲット・ソフトウェアの開発、テスト、およびデバッグを可能にします。OS Awarenessのような高度な機能も完全にサポートされています。

 

Rapita Systems RapiCover

MachineWare VPKは、Rapita Systems RapiCoverカバレッジ解析ソリューション用のトレースデータを生成することができ、VPKユーザーは物理的なプロトタイプが利用可能になる前にカバレッジ・データを収集できます。

 

SEGGER Embedded Studio

MachineWare VPKは、物理的ハードウェア・プロトタイプのようにSEGGER Embedded Studioと相互運用可能です。Embedded Studioは、標準のGDB RSPインタフェースを使用してVPKに接続され、ターゲット・ソフトウェアの開発、テスト、デバッグを可能にします。

 

TASKINGデバッガ

MachineWare VPKは、物理的なハードウェア・プロトタイプのようにTASKINGデバッガと相互運用可能です。TASKING Debuggerは、標準GDB RSPインタフェースを使用してVPKに接続され、ターゲット・ソフトウェアの開発、テスト、デバッグを可能にします。

 

Vector SIL Kit

MachineWare VPKVectorのオープンソースSIL Kitを簡単に統合できます。付属のインタフェースを介してデータ交換可能です。Heading 3



サービス

*アウトソーシング
MachineWare社は、一流のターンキー・ソリューション・プロバイダとして、さまざまな企業と密接に協力し、それぞれのニーズに合わせた仮想プラットフォーム(VP)を開発しています。MachineWareは、お客様のハードウェア・ボード向けに完璧なVPの開発を受託しています。各VPはお客様の仕様と要件を満たすように細心の注意を払って作成されます。作成されたVPは社内で開発目的に利用したり、お客様の顧客に再配布したりすることが可能です。


*SystemC TLMおよびQEMUモデリング
MachineWareは、カスタムプロセッサからペリフェラル・モデルまでを網羅するSystemC TLMおよびQEMUモデリングサービスを提供しています。


*SystemC TLMトレーニング
MachineWare社は、オープンソースのVCML SystemC TLM生産性ライブラリを使用したSystemC TLMモデリングのトレーニング・コースを提供しています。