オリンパスは、論理エミュレータを使うSoCの性能検証に、米Bluespec社の言語とEDAツールを適用した。SystemCの論理シミュレータを使う場合に比べて、検証対象のモデリングのコード量を半減し、かつ検証の実行速度を100倍以上に高められる。

 同社は、今回の成果について「Bluespec User Group Meeting 2012 Oct.」(Bluespecの販売代理店のサイバネットシステムが2012年10月12日に開催)で講演している(Tech-On!関連記事)。この記事は、その講演の内容を11月下旬に別途聞いた取材の結果をまとめたものである。取材では、講演を行ったオリンパスの古川英明氏(研究開発センター デジタル技術開発本部 SOC技術部 開発2グループ チームリーダー 課長代理)と刈屋三友氏(研究開発センター デジタル技術開発本部 SOC技術部 開発2グループ シニアLSIエンジニア EDA担当)の2氏に話を聞いた。

10分間以上は待てない

図1●開発中のSoCの性能限界を見極めたい<br>オリンパスのスライド。
図1●開発中のSoCの性能限界を見極めたい
オリンパスのスライド。
[画像のクリックで拡大表示]

 古川氏によれば、同社では、画像処理SoC開発の早期段階において、そのSoCの性能限界を見極めたいという要求が強まっていた(図1)。具体的には、実際のソフトウェアをSoCのプロセサ・コアで稼働させながら、ワーキング・メモリとして使う外付けDRAMのアクセス性能を解析したいという要求である。性能を高精度に解析するには、RTLやそれに近い抽象度でモデリングする必要があるものの、RTLのモデルではシミュレーションの速度が遅い。「ソフトウェア設計者からは10分間程度で解析結果が出なければ使い物にならない、と言われている」(古川氏)。

図2●解析環境を論理エミュレータに載せて高速化<br>オリンパスのスライド。
図2●解析環境を論理エミュレータに載せて高速化
オリンパスのスライド。
[画像のクリックで拡大表示]

 このソフトウェア設計者の要求に応えるために、上記の性能解析に論理エミュレータを使うことにした(図2)。同氏らは論理エミュレータを以前から使っている。その経験から、解析対象の一部を論理エミュレータに載せただけでは、高速化の効果が小さなことを学んでいた。「抽象度の高いSystemCモデルを論理シミュレータで、RTLを論理エミュレータで稼働させるという協調検証では、論理シミュレータの速度に検証全体の速度が引っ張られる。論理エミュレータを併用しても、せいぜい3倍程度にしか高速化できない」(同氏)。

 論理エミュレータの実力を生かすには、解析対象全体をRTLにして論理エミュレータに載せたい。その壁になるのが、RTLのモデリングの手間である。そこで、Bluespecの言語(Bluespec SystemVerilog、以下BSV)やEDAツール(合成ツールの「Bluespec Compiler」など)を使うことを考えた。すなわち、対象をBSVでモデリングし、それにBluespec Compilerを適用して、Verilog-HDLのRTLコードを得るという方法である。