第4回「システムシミュレーション環境の活用例(ソフトウェアの早期開発)」(201208)

★システムシミュレーションとは

ここではプロセッサやRAMだけでなくネットワークコントローラやI/Oなども含めて1つの製品を丸ごと模擬し、SWを実行できる環境をシステムシミュレーション環境と定義します。 OSS(Open Source Software)のQEMUのようにC言語ですべてを実装する方法や、SystemC+各種商用EDAツールを使う方法もあります。 HDLによるRTLシミュレーションも不可能ではありませんが、速度の観点からFPGAやエミュレータを活用しないと現実的ではありません。 本稿ではC/C++/SystemCによるシステムシミュレーションを主に扱います。




◎実機とシステムシミュレーションのメリット・デメリット

実機を使う場合は、費用の観点から台数が限られてしまいます。一方システムシミュレーションは、C/C++/SystemCによるSWで実現されるため、必要な開発者に配ることができます(※1)。 また、実機が出来上がるまでに数週間~数ヶ月かかってしまいますし、万が一不具合があった場合にはさらに時間がかかってしまいます。システムシミュレータはSWですので容易に修正できます。 しかし、システムシミュレータにも弱点はあります。それはシミュレーション速度と時間精度です。 C/C++/SystemCを使えばRTLやゲートレベルのシミュレーションよりもはるかに高速に実行できますが、Androidが動くような大規模システムを実機並みの速度で実行するのは困難です。 また、シミュレーション速度の向上のために各ブロックの時間精度が省略もしくは無視されている場合が多く、RTLシミュレーションと同等の精度を得ることも困難です。
(※1)商用ツールやOSSを使う場合はライセンスによる制限をうけることがあります。


◎システムシミュレーションを活用するポイント

SW開発では、当然ながらデバッガの使用が必須です。CPUモデル(ISS)と使おうとしているデバッガが接続可能なことをあらかじめ確認する必要があります。ここでいうデバッガとは、ホスト(通常x86)用ではなくターゲット(armやmips等)用であることに注意してください。
システムシミュレータは、周辺デバイスを直接制御するデバイスドライバやOSの開発に最適です。
実機が完成する前にOSがブートするまで完成度を高めておくことで、実機の評価にスムーズに取り掛かることができます。
また、仮想環境は全てSWのため、以下の点で実機よりも容易にデバッグを行うことができます。


・いつでもストップできる
割り込みハンドラでシステム全体を停止させて、動作を確認するといったことが可能。
(実機ではCPUは止められても周辺デバイスは動き続けてしまう)

・周辺デバイスに任意のデバッグメッセージを出力させられる
周辺モデルに無効な値や正しくないシーケンスで書き込まれた場合に警告を発することができる。実機では、プロセッサはUART経由でメッセージを出せるが、周辺デバイスはそのようなデバッグ出力を持たない。


システムシミュレータでアプリケーションの開発も可能ですが、デバイスドライバやOSなどの低レベルSWに比べるとメリットは小さくなります。なぜなら一般にアプリケーションはAndroid, Qt, Java VMといったミドルウェアの上で動作するため、HWは抽象化されており、似たHW構成の製品で開発を行いやすいからです。動作速度の点でも類似HWでの開発をおすすめします。


hdLabではOSSのARM CPUモデルを利用してLinuxブートまでこぎつけた実績があります。
周辺HWの状態を自由に調べながらステップ実行できたため、実機よりも容易だったと思います。

実機オンリーの開発ではしんどいと感じているあなた、システムシミュレーションに挑戦してみませんか?




Linuxの動くARM環境 ソースコードの無償ダウンロード

XILINX
教育サービス
HDLABトレーニング(SystemC)
HDLABトレーニング(SystemVerilog)
HDLABトレーニング(Verilog HDL)
HDLABトレーニング(フレッシュマン向け)
HDLABトレーニング(専門分野)
HDLABトレーニング(組込み分野)
HDLABトレーニング(XILINX認定)
HDLABトレーニング日程表
HDLABトレーニング開催リクエスト
設計スキルアセスメント
設計技能検定試験「ESA」
設計技能検定試験「ESA Basic」
設計・コンサルティング
ARM CPUモデル環境
SystemC
Design Style Guide
e-Learning System「STIL」
設計・検証のワンポイント
購入・見積もり
ダウンロード
お問い合わせ

XAP