メディア

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

» 2006年03月01日 00時00分 公開
[Michael Santarini,EDN]
前のページへ 1|2|3       

アクセラレーションとエミュレーション

 シミュレーションによる検証の可視性を維持したまま、検証速度を上げたい場合は、シミュレーションのアクセラレーションまたはエミュレーションが有効だ。アクセラレーションでは設計の一部がコンパイルされ、ハードウエアアクセラレータ上で実行される。エミュレーションでは設計全体がハードウエア上で実行される。アクセラレーションによって、ワークステーション上で実行される純粋なシミュレーションの数100倍、あるいは数1000倍もの速さでコードを実行できるが、システムの他の部分に接続するインサーキットの設計を実行するには遅すぎる。一方エミュレーションは、RTLシミュレーションの数100倍または数1000倍も速く、約2MHzで実行できるためインサーキットにも使用可能であり、機能検証を加速させることができる。Cadenceの「Palladium」エミュレータなど、システムによっては数10MHzで動作するよう調整できる場合もある。

 ベンダーは、試作システムと同じように大規模な汎用FPGAを使用したり、あるいはカスタムプロセッサを使用して、アクセラレーションまたはエミュレーションシステムを構築している。カスタムプロセッサを搭載しているシステムのベンダーは、既製のFPGAを使用しているシステムとは異なり、アーキテクチャがアクセラレーションとエミュレーションを目的に設計されているのだから、自分達のシステムの方が速く、効率的だと主張する。カナダATI社シニア検証エンジニアのArt Stamness氏は、エミュレーションではなくアクセラレーションを支持する一人だ。彼のグループは、自社のグラフィックプロセッサに組み込む3Dグラフィックコアを開発しており、米Tharas Systems社のアクセラレータを使用して設計を検証している。「シミュレーションテストベンチの一部を、カスタムプロセッサを使用するハードウエアアクセラレータ上にマッピングしている。その方が速いからだ。FPGAネットリストを実行する代わりに、バイナリをコンパイルして実行した方が、エミュレーションを行うよりもずっと速い」とArt氏は言う。エミュレータを使用してネットリストをコンパイルするだけで1日かかることもある。「バグを見つけたら再コンパイルして翌日まで待って、また別のバグを見つけたら、また1日待つことになる」(Stamness氏)。一方のアクセラレーションなら、バグを見つけることもできるし、他のテストのための別のネットリストを1時間以内で準備することもできる。

 アクセラレーションはシミュレーション環境に近く、エミュレーションでは使用しないような大量のコードが必要になることもある。また、アクセラレーションによってシミュレーションのパフォーマンスは劇的に向上するものの、エミュレータのような5000倍のパフォーマンスは得られない。

 Stamness氏のグループは、Cadence社のNC-SimとTharasアクセラレータをコ・シミュレーションモードで実行する、150〜250台のPCサーバーファームを利用している。Tharasのコンパイラはコードの塊を抽出して、その設計の「スタブ」を作成する。NC-Simは、ハードウエアアクセラレータと通信するホストマシン上で動作する。Stamness氏は、エミュレーションを行う場合には初期費用だけでなくサポート費用もかかると言う。「必要なハードウエア、人、電力、ラボスペースといったサポートインフラにかかる費用は、シミュレータボックスのようなラックに納まり、かつパフォーマンスに優れたアクセラレータに比べると断然高くつく。エミュレーションの使用をためらう設計者はまだ多く、ハイエンド向けと言えるが、アクセラレーションであればそこそこの費用、そこそこの速度でシミュレーションを実行できる」(Stamness氏)。

 エミュレーションに対するStamness氏の意見は、数100万ドルをエミュレータに投資した結果、数年後には時代遅れのゴミしか残らないことを悟った人々の多くと一致する。初期のエミュレータはプログラムが難しく、ICの設計と同じくらいの時間をエミュレータのデバッグに費やすことも少なくなかった。しかしEDAベンダーは、エミュレータを動かすソフトウエアが今では洗練されて使いやすくなっており、その使いやすさがシステムの価格に反映されていると主張している。

 米QLogic社の検証エンジニア、Tom Paulson氏も、エミュレーションに転向した一人だ。Fibre ChannelスイッチASICを構築している彼のチームでは、Cadence社の「Palladium PD II」エミュレータを使用している。同社は3年以上にわたり、5個のASICの検証に「Palladium」エミュレータを使っている。QLogicチームは米Quickturn社のQuickCyclesレンタルプログラムを利用したエミュレーションでスピードを上げ、最終的にそのシステムを購入した。「確かに高価だったが、今では片時も休めずに使用している」とPaulson氏は言う。彼の部門ではVHDLを使用しており、初期検証に米Mentor社の子会社である米MTIの「ModelSim」を利用している。「業務において同様の作業の繰り返しが多い会社の通例にたがわず、我々もプロセスの自動化を進めている。当社はROMを生産しているが、検証ごとに異なるROMを使用するため、チップの処理も各々若干異なる。1つのROMに対して4〜5回のテストを行うこともある。設定にはTCL(tool control language)スクリプトを使用している。これらすべてのチェックを行う目的はシンプルだ。光ファイバーチップで、すべてがしかるべきところにあるかをチェックし、すべてのFibre Channelフレームが正しく到達することを確認するのだ。内部チェックも行い、チップ内のステータスレジスタもチェックしている。ここまでくると、合格/不合格を判定するだけだ」(Paulson氏)。

 バグを発見すると、チームはそのテストを戻し、データベースをワークステーションにアップロードする。そしてデバッグツールをオフラインで使用する。「最初からかなりの範囲をトレースで見られるし、かなりの数の信号を確認できる」とPaulson氏は言う。彼のチームでは、ソフトウエアで設計を再構築するCadence社の「IXE 3.0」の使用も開始した。「信号の確認に費やせる時間が大幅に増えるだろう。Novas Debussyの波形が採用されているため、シミュレータを使っているような感覚だ。欠陥を見つけたら、その波形を取り出して、設計者を呼んで来て問題の個所を修正し、エミュレータを再合成して戻せばいい。1〜2時間で済んでしまうこともあるだろう」とPaulson氏は語った。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.