検索
特集

SoC検証時間を短縮する各種ハードウエアの選択(1/3 ページ)

デジタルLSIの設計が複雑になるにつれ、検証作業の複雑化も進んでいる。設計できるゲートサイズと、限られた時間で検証できるゲートサイズの溝は広がるばかりだ。それはEDAベンダーの努力だけでは、とても埋められるものではない。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 今日、LSI設計に費やす時間の6割から8割を検証が占めることは珍しいことではなく、その割合はさらに増加しつつある。試作品を作ってハードウエア支援の検証手法を採用する設計グループも多い。ハードウエアの試作として最初に登場したのがブレッドボードであり、その機能が向上するにつれて広く普及するようになった。米Collett International社(http://www.collett.com)とDeepchip.com(http://www.deepchip.com)の調査によれば、このような試作は全ASICプロジェクトの30%〜40%で行われているという。今では市販のFPGAを使って数100万ゲートの回路を試作できるが、大規模で複雑な設計になれば、既に設計された試作品を購入したいと思うだろうし、それだけの予算がなければ、シミュレーションアクセラレータやインサーキットエミュレータのレンタルや購入を考えるだろう。自分で作成するか、レンタルするか、あるいか購入するかの判断は、必要とするクロック速度、容量、機能、コスト、システム設計スキル、そして設計の検証に費やせる時間を含めた、さまざまな要因に左右される*1)

システムを試作する

 設計者とベンダーにとって、ASICやSoC(system on chip)の試作品を作成するということは基本的に後戻りのステップだ。SoCをSOB(system on board)にするのだから、と冗談交じりに言う者もいる。システムの試作においては、自ら設計するASICの機能を再現するために、別の機能をもつ部品や既存のASIC、FPGAを利用する設計者もいれば、マザーボードにプログラムされた高速なシステムを試作する者や、購入する者さえいる。マザーボードには、固有の機能や大規模なシステムを実現するFPGAとドーターボードがいくつも搭載されている。

 現在、250MHz近い速度で動作するASICの試作システムの設計や購入が可能だ。この動作速度は最終チップと変わらない。このような試作システムは、動作速度がせいぜい2MHz程度の市販エミュレータよりもずっと速く、RTLシミュレータと比べても110倍速い。高速ASIC試作システムを使えば、システム環境で機能テストを行えるし、組み込みソフトウエアの開発に早く着手できる。

 このようなASICの試作には、デバッグが困難であるという欠点がある。バグの発生個所を正確に突き止めるのが難しい。検証では、詳細なシミュレーションが行なわれる。米MIPS Technologies社は、新しいマイクロプロセッサコア設計の検証にハードウエアベースのほぼ全てのアクセラレーション手法を使用し、コアの統合を進める設計者を支援している(別掲記事「MIPS社が推し進める、試作環境の整備」を参照)。

MIPS社が進める、試作環境の整備

 マイクロプロセッサコアベンダーの米MIPS Technologies社は、コアの開発にいくつかのハードウエア支援検証方法を用いている。MIPS社でCADと情報システムのディレクタを務めているDonald Ramsey氏のグループでは米Mentor Graphics社のVStationエミュレータを使用しているが、検証のため、そして顧客のために、自分達でも試作ボードを製作している。同社のプロセッサコアのゲート数は50万〜100万の規模であるため、エミュレーションボードとシングルFPGA試作ボードのどちらでコアを実行するにしても、容量に問題はない。

「問題はゲート数ではなく、複雑さだ。汎用プロセッサのコーナーケースは深く、設計の実動作テストと擬似ランダムテストを何度も繰り返したうえで、検証とデバッグの手段として、そしてソフトウエア検証のために試作設計とエミュレーションを実行する必要がある。我々はコアを設計する際には、ソフトウエアツールが機能することも期待しているのだ」(Ramsey氏)。

 マイクロプロセッサコアの設計は、コンピュータファームでのRTLシミュレーションから始まる。MIPS社はこのプロセスで、まずエミュレーションを実施する。2台のVStationエミュレータのうち1台は機能検証に使用し、システムに接続するもう1台はデバッグを目的としたインサーキットエミュレーションに使用している。検証用のエミュレータは、高速で局所的、かつランダムな検証を行うためのシミュレーションアクセラレータとして使用する。「我々のエミュレータは1日に約10億サイクルを処理している。高速なシミュレーションエンジンのようなものだ」とRamsey氏は言う。

 別のVStationはシステムレベルのシミュレーションに使用する。「アプリケーションをRTLシミュレータ上で実行することはできない。遅すぎるということもあるが、システム環境にはコアだけでなく、システムコントローラやメモリーなどが必要であり、抽象化する必要があるからだ。ゲート数の問題に取り組むのはその後だ」(Ramsey氏)。

 MIPS社では、インシステムテストでRTL記述されたコアをテストするのではなく、設計をエミュレータにロードする。エミュレータを使用するまでは、設計グループは社内のソフトウエア開発者が組み込みソフトウエアの開発に早く着手できるよう、以前に開発された試作ボードを使用していた。「基本的には、ディスクドライブやキーボードなどを接続できるPCIスロットを備えたAT仕様のプリント基板だった。このシステムでは、プロセッサの代わりに、2つのスロットを搭載したドーターカードを使用していた。スロットの一つは、システムコントローラをプログラムするFPGA用で、もう一つはMIPSプロセッサを搭載するためのもの」(Ramsey氏)。

 MIPS社はその後、エミュレータをFPGA試作システムに接続し、詳細なシステムデバッグを実施するための新しいドーターカードを作成した。また、プロセッサの設計をこのドーターカード上のFPGAに直接プログラムしている。FPGA試作品はインサーキットのものよりも速く動作でき、バグも識別できるが、コードの深い部分にあるバグを見つけることは困難だ。FPGA試作品が25MHz〜40MHzで動作するのに対し、エミュレータを使用するシステムの動作速度は1MHz〜3MHzである。このスピードだと、メモリー内や、オペレーティングシステムにハードコーディングされているインターバルタイマー内で自然に発生するウェイト状態を見越して、大量のクロックバッファリングを行わねばならないとRamsey氏は言う。FPGA試作品は実プロセッサの1/8〜1/12の速度で実行されるため、デバッグにより適したものといえる。

 多くのメモリーサブシステムは、速度が1/8〜1/12に低下しても問題なく動作する。「FPGAは、少し遅いというだけで、通常のシステムのすべての特性を備えているといえる。しかし、25MHzから1MHzに落とすと、実システムとはかけ離れた動作になってしまう。ボード上に遅いメモリーが搭載されている場合でさえ、次のサイクルでデータが返されるようなことが発生する。メモリーやその他のペリフェラルを常に使用できるからといって、実システム内のすべてのウェイト状態をモデリングしているわけではないことには注意が必要だ」(Ramsey氏)。

 同氏によれば、設計者はOSにハードコーディングされたインターバルタイマーの問題に直面することもあるという。「ある程度のタイムスケーリングも必要である」と同氏は語る。開発サイクルが短くなっているため、MIPSでは最終設計のハードウエアデバッグにエミュレータとFPGA試作品を使用している。「私達はエミュレータ上で動作させることで多くの問題点を早く見つけ出そうとしたが、現実の開発スケジュールに合わせるにはもっと速いプラットフォームが必要なことがわかった。そこで、FPGA試作品を使用することにした。これで数時間ではなく数分でOSのバグを発見できるようになった」(Ramsey氏)。

 バグが見つかっても、その発生源を特定するのも難しかったと同氏は言う。「エミュレータでは、リアルタイムの可視性は100%だが、このエミュレーションシステムでは完全な履歴が残らないため、イベントが捕捉されそうなところの寸前でトリガーする必要がある。エミュレーションでは、実行を繰り返してトリガーポイントを見つけ出すことに終始することになる。そして異常が見つかれば、決定的証拠をつかんだことになる。FPGAによる検証では、その反対である。トリガーポイントがどこにあるのかは分かっていても、正しい信号群が得られるまで実行し続ける必要がある。その後、検証レポートを書いて、シミュレータ上で実行して、自分の理論を検証する」(Ramsey氏)。

 検証レポートを書けないこともある。複雑なプロセッサ内の割り込み、メモリー速度、プロセッサ速度と、数多くの特殊な動作とのずれがあるために、問題をピンポイントで特定することが難しくなってきたからだ。エミュレーションシステムに従来からある問題の一つは、ユーザーが設計のデバッグにかける時間と同じくらいの時間を、エミュレータのデバッグに費やさねばならないことである。

 EDAベンダーはエミュレーションシステムの容易化を進めているが、Ramsey氏のグループはエミュレータの欠点をなくす作業も行ってきたのだ。


脚注

※1…Moretti,Gabe,"Hardware tools aid engineers in design verification," EDN, Aug 30, 2001, pg 77, http://www.edn.com/article/CA152890.html


Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る