組み込み型システム設計、HW/SW 同時設計、高位合成
SpaceStudio はhw/swの同時設計と高位合成(HLS)を通じて、組み込みシステムの設計の高速化を実現しています。SpaceStudio はElectronic system level(ESL) と呼ばれる高いレベルで動作します。SpaceStudioの技術により、設計アーキテクチャの最適化に対し、より精細なコントロールを可能とする事で、設計エンジニアは、ツールが下層のRTLの実装と検証をしている間に、高いレベルの抽象化により、設計の定義やモデル化を行う事で、効率よくハードウェアの設計と検証が可能です。
SpaceStudioを使用する事で、アーキテクトおよび設計者は、SHW/SWのパーティションのプロセスを通じて、 ハードウェアとソフトウェアのオプションを高速で評価する事が可能です。
HW/SW 同時設計により組み込みシステムの高速設計が可能
SpaceStudio は以下をご提案します。
-
多くの競合他社が、ESLをハードウェアの設計のみに注力しているのに対し、SpaceStudioはソフトウェアの設計もサポートしています。アプリケーションソフトウェアがVxWorksやMicriumのMicro-Cといった通常のOSで動作している間に、エディター画面上でのドラッグ&ドロップにより、ハードウェアとソフトウェアのコード変換が可能です。
-
SpaceStudio は先進的なドラッグ&ドロップをサポートしている唯一の組み込みシステム開発ツールです。
-
SpaceStudioによるHW/SW の同時設計とは、ハードウェアおよびソフトウェアを並列に繰り返し調査するというもので、一つが終わってから次を調査するという事ではありません。
-
ハードウェア、ソフトウェアともに影響を与えない形でのシステムのモニタリングによるパフォーマンスの解析が可能です。
-
この様にハードウェア、ソフトウェアを同時に生成する事で、将来のより良い統合が可能となるため、高い品質をもたらします。
|
ハイレベルからローレベルにわたるHW/SWの同時設計のフローチャート
|
お客様の組み込みシステムの設計フローと SpaceStudio
Space Codesign は設計の最初の段階から実装までサポートします。設計、精査、解析のステップは以下の通りです。:
- 初めにC/C++/SystemC等を用いて、アプリケーションのアルゴリズムを機能・仕様レベルで調査します。
- 次にプロセッサ、バス等、実現したいアーキテクチャを決め、アプリケーションをマップします。(この時点では、まだC/C++/SystemCを使用)
- アプリケーションとアーキテクチャにより、ESLでは、設計の検証のためのマッピング、微調整および解析を高速で実行可能です。多くのケーススタディが解析されます。
- アプリケーションやアーキテクチャの変更は、アップデートと再解析を繰り返すだけなので、高速です。
製品のスクリーンショット
初めに、システムのアプリケーションは、明確なインタフェースを通して通信される複数の同時進行するタスクとして定義されます。(以下のElixの説明参照)次に、いくつかの可能性のあるアーキテクチャが考察されます。(以下のSimtekの説明参照)アーキテクチャのそれぞれの候補とマッピングに対しESLツールは自動的にハードウェアの部品に対するSystemC TLM-2.0仮想プラットフォームおよび各プロセッサコアのためのバイナリーを生成します。そして最後にQoRの制限から一つのアーキテクチャが選択されます。選択されたアーキテクチャは、ソフトウェアのコンパイル、ドライバーの生成およびFPGAあるいはASIC向けのハードウェアの合成(同時合成、ハイレベルの合成)といった実行の過程で自動的に精錬されます。
|
Elix モジュール: MJPEGの機能設計の例
|
それぞれのアーキテクチャのパフォーマンスのアセスメントは異なったレベルの抽象化(例えば機能レベルとアーキテクチャレベル)をシミュレーションする事で可能です。
機能レベルあるいはアルゴリズムレベルの設計には、SpaceStudioのElixモジュールをご利用ください。ハードウェアあるいはソフトウェアのオペレーションを考える前に、機能に焦点を当てています。Fast シミュレーションはC/C++/SystemCのモジュールにより、untimedもtimedも可能です。
|
Simtek モジュール: ARM Coretex-A9を用いたMJPEGのアーキテクチャ設計
|
アーキテクチャレベルの設計では、SpaceStudioのSimtekモジュールをお使い頂く事で、ハードウェア/ソフトウェアの機能のマッピングがシンプルになります。設計要素に関する最初の機能のマッピングはハードウェアあるいはプロセッサ上で動作するソフトウェアに対するアルゴリズムのタスクとして作成されます。そしてプロセッサ、コアやバスの数、プロセッサに対するソフトウェアタスクのマッピング等といったアーキテクチャのパラメータに関わるような設計ケースについて調査をします。C/C++/SystemCで記述されたモデルのシミュレーションは、タイミングの情報が追加されても、非常に高速です。
Space Codesign は Xilinx Microblaze, Aeroflex-Gaisler Leon3 および ARM Cortex-A9 Dual MPCoreのCPUを サポートしています。
アーキテクチャレベルの設計の調査について、SpaceStudio は強力で他に影響を与えないモニタリングをサポートしています。これにはHWのリソースおよび消費電力、バスのスループットのモニタ、プロセッサの負荷、プロセッサのタスクのスケジューリング等を含みます。以下のSpaceMonitorを参照願います。
|
SpaceMonitor: 単一のARM Cortex-A9に対してMJPEGアーキテクチャを適用した場合のプロセッサのタスク 負荷およびタスクのスケジューリングの例
|