メディア

FPGAの検証手法はどうあるべきなのか(2/3 ページ)

» 2009年09月01日 00時00分 公開
[Ron Wilson,EDN]

「ASICの検証」に学ぶ

 ここまで、シミュレーションとインサーキット検証の利点と欠点をそれぞれ簡単に説明した。では、検証フローにFPGAを活用することの多い経験豊富なASIC設計チームは、どのようにしてシミュレーションとFPGAベース(インサーキット)の検証のバランスをとっているのだろうか。

 その答えの1つを、ビデオプロセッサベンダーである米Ambarella社でエグゼクティブバイスプレジデントを務めるDidier LeGall氏が示してくれた。同氏は、以下のように指摘している。

 「ほとんどの場合、われわれはFPGAを利用したエミュレータを使うことはない。われわれは経験上、エミュレータがうまく動作するには、非常に完成度の高いRTLコードが必要であることを理解しているからだ。また、検証の段階になって、論理回路をFPGAに移植し、テストベンチを設定する作業には多大な労力が必要となる。しかも、その労力の割には、得られる効果は非常に小さい」。

 アプリケーションを例示すれば、同氏の見解が理解しやすいかもしれない。Ambarella社のSoC(System on Chip)は、高解像度ビデオデータと10メガピクセルの静止画像データを高いフレームレートで処理する。従って、高速な内部クロックと複雑なアルゴリズムが必要になる。同氏はこのSoCにおける検証の位置付けについて、「正しく動作するICを早く完成させる秘訣は、完璧な検証を行うことではない。ソフトウエアでの対処策を考えることだ」と説明し、検証の目的に対する興味深い観点を指摘した。つまり、シミュレーションによる検証の目的は、論理回路において問題がありそうな部分を把握することであり、その部分に対してソフトウエアによる回避方法を、後からではなく最初から計画することによって、正しく動作する設計をいち早く完成させられるということである。この考えに基づけば、検証エンジニアがインサーキット検証やエミュレータによって徹底的なテストを実施して情報を収集することの重要性は薄れることになる。

 しかし、これとは異なる意見もある。米LSI社でストレージコンポーネントグループ バイスプレジデント兼ゼネラルマネジャを務めるBill Wuertz氏は、SCSI(Small Computer System Interface)/SAS(Serial Attached SCSI)コントローラに対する検証方法について説明してくれた。

 Wuertz氏によると、LSI社では、ある目的に向けてシミュレーションを行うシミュレーション検証チームと、別の目的に向けてFPGAを利用する別のチームがほとんど並列に検証作業を行うという。これについて、同氏は以下のように説明している。

 「設計の初期段階に、『トライアルRTL』と名付けたステップを設けている。このステップで、われわれはRTLのコードが基本的に正しく機能しており、ブロックは互いに正しく接続されていると初めて感じることになる。この段階で、検証を2つのパスに分割する。その一方であるシミュレーションチームは、自身が使用するツール向けにコードをコンパイルし、個々のブロックの検証を開始する。他方のシステム検証チームは、社内で開発されたFPGAボード向けに合成を行い、システムレベルの徹底的なストレステストを開始する」。

 同氏が述べるように、2つのチームの目的はそれぞれ異なる。シミュレーション検証チームは、回路が正しいことを検証しようとする。それに対し、システム検証チームは回路にはほとんど関心がなく、ストレージネットワークが利用される非常に変化の激しい複雑な環境において、チップが正しく動作するかどうかを検証する。Wuertz氏は、「FPGAを用いたプロトタイプには、多数のディスクドライブやテープドライブを接続して数日間にわたるテストを実行する。この種のテストは20年間のうちに進化してきた。回路を破損させる特殊なタイミングを生成するだけのために、多種多様なディスクドライブやテープユニットを用いた非常に長いテストを実施しなければならない場合もある。こうしたことは、経験から理解できたことだ」と語る。

 LSI社は、2つのチームが用いる環境をつなぐ独自のツールを開発している。そのツールを用いれば、例えばシステム検証チームは、故障につながるトレースを特定し、そのデータをスティミュラスファイルに変換してシミュレーションチームに引き渡すことができる。逆に、シミュレーションチームは、システム検証チームに対し、設計において問題があると思われる部分を警告することが可能である。異なる環境にある2つの検証チーム間の通信手段を確立することが、2つのパスに分割するLSI社の手法において非常に重要な意味を持つ。両チームは検証プロセス全体を通してデータのやりとりを行い、最後に設計マネジャが両チームに検証の収束を求めることとなる。

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.