Verify2012 社内で実用している実機レス環境「清水プロトくん」の紹介 リコーの事例

2012年9月28日、今回で13回目の開催となるLSI検証技術セミナー「Verify 2012」が新横浜のホテルで開催された。


ここでは、同セミナーで発表されたユーザー事例講演、「ProtoLink Co-Emulation によるI/Oデバイスドライバ開発環境の構築事例」について紹介する。同講演を行ったのは、株式会社リコー コントローラ開発本部 CH開発センター EPF開発室 開発1グループ スペシャリストの難波睦氏である。

リコーにおけるESL設計手法の取り組みは、バーチャル・プラットフォームから高位合成、カスタム・プロセッサ開発など、様々なセミナーで多様な事例が紹介されているが、いわゆる「実機レス環境」の歴史は2000年からスタートして12年。難波氏によると、様々なツールを利用し、試行錯誤を繰り返した結果として、リコーでは現在、実機レス環境について以下の様な課題を認識している。

・モデルの品質 バグを含めてオリジナルRTLとの機能一致
・モデルの機能性 外界の実物と実際に協調動作させたい
・モデル作成工数 機能の作りこみに時間がかかる
・購入IPの対応 RTLはあるがモデルは無い、モデル作成が困難

難波氏は、これら課題を克服するために、リコーがごく最近取り組んだ新たな実機レス環境「清水プロトくん」について紹介してくれた。

説明によるとリコー社内では、検証対象や用途、利用するEDAツールなどにより4種類の実機レス環境があり、「清水プロトくん」はそのうちの一つ。各実機レス環境を分り易く区別するためにリコーでは下記のようなネーミングを行なっている。

【リコー、実機レス環境のバリエーション】
Verify2012-0101.jpg
※画像はEDA Express作成の表

上の表の通り、「清水プロトくん」は、SpringSoft社の「ProtoLink」を使って、バーチャル・プラットフォームとFPGAボードを連携させる環境で、難波氏は展示会やSpringSoft社のプライベートセミナーにてこの環境を構築した富士通セミコンダクターの事例を知り、「やりたかったのは、これ」と必要なツールの導入を進めた。

実際に導入したのは、富士通セミコンダクターの事例と同じSpringSoft社の「ProtoLink」とS2C社のプロトタイピング・ボード「TAI V6 Logic Module」で、「ProtoLink」を用いて「TAI V6 Logic Module」と手持ちのESL環境であるSynopsysの「Virtualizer」を繋げた。また、「TAI V6 Logic Module」には開発対象SoCのI/Fとなる、SDカード、USB、Gigabit Ethernet、LCD Monitorなどのオプション・モジュールも追加した。

Verify2012-02-02.jpg

※画像は難波氏の講演データ


難波氏によると、環境の構築にあたりまず行ったのはFPGAのトップ設計。FPGA側にトランザクタ、クロックポートの組み込みを行った。設計にあたっては、最大動作周波数50Mhzという「ProtoLink」のサポート範囲を考慮し、クロック系統の検討が必要となるが、今回のケースでは動作周波数50MHz以下であったため大きな苦労は無かった。トランザクタはSpringSoftより提供されるAHB、AXI、APB用の標準トランザクタを使用し、デザインのインプリメントはFPGAインプリメント環境と連携できる「ProtoLink」のGUI環境「ProtoSet GUI」を使用した。ESL環境「Virtualizer」側の準備としては、トランザクタの組込み以外特に大きな手間は無かった。

Verify2012-02-03.jpg

※画像は難波氏の講演データ


FPGA側とESL側の準備が整った段階で、まずFPGA側をシミュレータで動作させ、ソケット通信によるESL側とのCo-Simで動作確認を行った。ソケット通信を用いることで、ESL側に変更を加えること無く、環境変数でシミュレーターとエミュレーターを切り替える事が可能で、問題の切り分けやデバッグを容易に行う事ができると難波氏。実機での動作確認は、解析環境「ProtoLink ProbeVisualizer」を用いて、Co-Simのシミュレーション波形とエミュレーション波形を比較しながら行った。

Verify2012-02-04.jpg
※画像は難波氏の講演データ


環境を構築する上で苦労したのは、FPGAのオンボード・メモリの使用。オンボードのDDRをメインメモリにしようと挑戦したが、FPGA用のメモリコントローラの配置配線に辿りつけず、メモリをシミュレータ側に置いたバージョンと2本立てで作業を進めた。

実際に構築した「清水プロトくん」環境は、SoC開発と並行してソフト開発に利用する事ができ、これまでの実機レス環境で課題となっていたモデルの作成工数を無くし、検証品質を高めるもので、ソフト開発者からの引き手も多かったという。難波氏によるとリコーでは、引き続き速度向上など「清水プロトくん」のパフォーマンスのチューニングを行いつつ、既存の実機レス環境の課題として上げていた、外部デバイスとのインタラクティブな検証の実現にも取り組んでいく計画だという。

※本講演資料はこちらのページからダウンロードできます。