SystemCを用いた早期ソフトウェア(SW)デバッグソリューション  
 


SystemCを用いた早期ソフトウェア(SW)デバッグソリューション

Synopsys / Mentor社

従来の開発フローでは、ソフトウエア設計は、ハードウエア設計ほぼ終了した段階からでないと始めることができませんでした。FPGA、エミュレータというプロトタイプを使用したとしてもソフトウエア開発が始まるのは、ハードウエア設計が終了する直前になってしまいます。近年、マルチコア化など複雑化に伴い爆発的に増加しているソフトウエア設計を短期間で終了するのは大変困難です。また、ソフトウエア設計で発見したハードウエア設計の不具合は、もうハードウエアを直すことはできません。ソフトウエア開発にさらに負荷をかけることとなります。

プラットホームの構築は、アーキテクチャー探索に威力を発揮するだけでなく、ソフトウエアの早期開発にも威力を発揮します。SystemC,TLMは、ソフトウエアの早期開発に最適の言語と言えます。開発当初はCPU、バス、メモリ、タイマ、割り込みコントローラといった最低限の部品から構成される仮想プラットフォームを用いて、RTOSのポーティングやデバイス・ドライバの検証を行います。CPUモデルやバスモデル、タイマ、割り込みコントローラは、市販品やフリーで提供されているものもあります。

設計が進むにつれて段階的にハードウエア設計物を追加していきます。ハードウエアモデルは、レジスタ構成が仕様どうりであれば、ごく簡単なモデルでも構いません。ソフトウエアs早期開発では、実行速度の向上が求められます。TLMの時間精度を落とすことで、RTLの10,000倍、実ハードウエアの速度に近い速度でのソフトウエア開発が行なえます。

ハードウエアモデルは、ごく簡単なモデルから、詳細な時間精度に変更することも容易です。精密な時間制御が必要な部分は、高い精度で設計できます。時間精度は、部品ごとに変更することが可能です。必要な部分のみ精度を向上させ、動作速度の低下を少なくする工夫も出来ます。TLMで作成したプラットホームは、ハードウエア設計者が開発したRTLの検証にも用いられます。プラットホームを構築すれば様々な用途に活用できます。