ルネサスのECUソフト開発向け仮想プラットフォーム活用術、なるべくコードは書かない
2012年7月12日、Synopsysのユーザー・カンファレンス「Synopsys Users Meeting 2012」が都内のホテルで開催された。
ここでは同セミナー行われたセッション「モーター制御マイコン用ソフトウェア開発を目的とした仮想プラットフォームの開発」について紹介する。
講演を行ったのは、ルネサス エレクトロニクス株式会社 技術開発本部 EDA・設計手法統括部 FE 設計技術開発部 主任技師 渡邊 政志氏で、車載ECUで使用するモーター制御マイコンのソフトウェアを評価するために作った仮想プラットフォームについて語った。
仮想プラットフォームに対する期待としては、一般的にソフトウェア先行開発、システム(HW/SW)の詳細解析、故障シミュレーションといったところが代表的だが、渡邊氏によると自動車の世界では故障を起こせるシミュレーション環境として仮想プラットフォームが注目されているとの話。確かに開発スパンの長いECU開発では、ソフトウェア先行開発よりも実機で不可能な事をやれる環境として、仮想プラットフォームの価値が見出されているようで、渡邊氏らのチームも仮想プラットフォームならではの機能を実現する事を仮想プラットフォーム開発の目標に含めた。
具体的には、仮想プラットフォームの高い観測性を生かした詳細なソフトウェア解析、故障シミュレーションを簡単に行える仕組み作りを目指したほか、仮想プラットフォーム自体の短期開発や、運用するツール環境を問わない移植性の高い仮想プラットフォームの開発も目標とした。尚、今回渡邊氏の発表した事例では、仮想プラットフォームの実行環境としてSynopsysの「Virtualizer」を利用している。
※画像は渡邊氏の講演データ
仮想プラットフォームの短期開発にあたり、渡邊氏らのチームは、モデルを短期間で作るためになるべく設計者にコードを書かせないよう共通部品を作った。難解なAccelleraのTLMバスを簡単に利用するための「TLM共通クラス」、「レジスタIF」、「デバッガIF」の他に汎用的なモデルとして、DMAC、Timer、ADCなどのモデルも作り、個別の用途に応じてパラメーターを設定する形で利用した。その結果、モデル作りにおけるコード記述量は20%程度に減らす事が出来た。
また、横串部門の人間がモデルを作るのではなく、モデルの仕様を理解している現場のハード設計者にモデル開発に参加してもらったほか、モデルの仕様決定に力を注ぎ、本当に必要な機能だけを書くという方針で必要の無いものは積極的に省いた。これら手法で作ったモデルに対して渡邊氏らのチームは、実機用のテストパターン数百個を用いてバグ出しを行い、リリース後はバグゼロを達成するまでモデルの品質を高めたという。
※画像は渡邊氏の講演データ
実際に仮想プラットフォームを用いたシミュレーションを行うにあたっては、Synopsysのバーチャル・プロトタイピング・ツール「Virtualizer」が提供する「Function Trace」という機能を活用した。渡邊氏は、ソフトの高速化を目的にボトルネックを解析するだけでなく、そこをハード化することによって、どれだけ速度が改善されるか改善率を見たかったので「Function Trace」を使ったとコメント。「Function Trace」機能は、データベースのエクスポートも可能なため、そのデータをExcelなどを用いて更に違う切り口で詳細に解析する事も可能だという。
※画像は渡邊氏の講演データ
更に、「Virtualizer」ではSW変数のトレースと値の書き換えが可能なため、グローバル変数の動きとそれに伴うハードの信号やレジスタの動きを確認できるようにしたほか、レジスタ値をソフト側から変更できないようにする「レジスタ値固定機能」を用いてハードの故障を模擬し、故障注入の評価を行うなど仮想プラットフォームを活用した。
※画像は渡邊氏の講演データ
渡邊氏によると今後は仮想プラットフォームを色々な製品向けに展開していく計画で、Synopsysのアナログ-デジタル混在シミュレータ「Saber」との連携も計画しているとの事。仮想プラットフォームの展開にあたっては、「人がモデル開発する対象を減らす」、「HW設計者を巻き込む」、「環境をこまめにリリースする」のがポイントと私見を述べ、今後は今回注力したモデル単体の開発ガイドだけでなく、仮想プラットフォームの構築ガイドも作りたいと意欲的なコメントを残していた。