デザインの複雑化により、FPGAおよびFPGAベースプロトタイピングの活用度が大きく増えました。それは,このテクノロジーにまぎれも無く優位な点が存在するからです。今後数章にわたって、FPGAベースプロトタイピングが如何に貴方の設計及び検証を促すか、詳しく御紹介していきたいと思います。
FPGAプロトタイピングは小規模設計にしか適用しないため、設計規模の拡大につれ、そのアドバンテージが縮小するという誤認があります。大規模設計の検証では、エミュレーションの技術がまず頭に浮かびます。エミュレーションは大規模設計の検証に適しますが、コストがかさばります。実際には時間と金銭コストがかかります。エミュレータは設計のモデリングに時間がかかり、早期ソフト開発の段階で試行に影響が出ます。かつ、エミュレータは費用がかさばり、会社の予算が大きく取られます。各エンジニアマネージャは切迫する日程とコストのやりくりに悩まされます。こういったやりくりの観点から、FPGAプロトタイピングがどのように設計の規模、スピード、そしてコストのギャップを埋めていくか見てみましょう。
FPGA技術の助成
FPGAの容量は数年にわたって急激に拡大されてきました。現在最大ゲート規模を持つ28nmプロセスのV7 FPGAベースでは20Mまでの ASICゲートを格納できます。我々の高集積FPGAプロトタイプシステムを活用する事により、これをさらに5億に近いASICゲートを持つシステムを作り上げる事が可能となります。そして、20nmプロセスベースのVirtex UltraScal等の次世代FPGAは更に10億ゲートの実装、且つ手頃な価格のシステムを作れる大きな可能性を秘めております。
FPGAベースプロトタイピングはエミュレータを上回る高速動作が可能です。FPGAの内部は数百MHzで動作でき、I/Oも数Gbpsでの入出力が可能です。たとえ巨大なFPGAプロトタイピングシステムを構築した場合でも、5~20 MHzのシステムスピードを期待できます。これは、1MHz以下のスピードでしか動作しないエミュレータと比較してかなり高速です。
さらに大規模な設計のためにFPGAプロトタイピングを適応させる為のキーテクノロジーを吟味してみましょう。
パーティショニング(自動分割)
パーティショニングは大規模設計でのFPGAベースのプロトタイピングでは要となります。過去の小さめのFPGAでのパーティショニングはIPブロックを区切り、それらを複数のデバイスにマッピングする必要がありました。現在、大抵の設計ブロックは容易に単一のFPGAに納まり、パーティショニングは単一デバイスに主に選択したIPをまとめあげるプロセスとなりました。更に、1GHz LVDS等の最新のFPGA I/Oテクノロジーは更に多くのI/OをピンマルチプレクシングスキームでFPGA間を連結する事が可能となりました。
パーティショニングソフトウェアも考慮に入れなければなりません。他のパーティショニングテクノロジーと同様に、FlexrasやMentor社 Auspy等のパーティショニングソフトウェアの品質と活用性も過去数年にわたり、飛躍的な改善を成し遂げました。S2Cが提供するパーティショニングツールは、直近の顧客が20個のFPGAにわたるマルチコアCPUの設計のパーティショニングに利用された実績があります。
デバッグ
効果的且つ効率的な設計のデバッグ手法が無い限り、マルチFPGAの設計に於いて、パーティショニングと実装は意味がありません。FPGAベンダーが提供するものを含む大抵のデバッグツールは、単一のFPGAにしか使用できません。単一のFPGAの設計のみ、個々のFPGAを個別にデバッグする時間があれば、それでも構いませんかもしれませんが、時間がかかる上に、エラーが発生し易いです。その上、大抵のこれらのデバッグツールはFPGAの内部メモリを使用するため、トレースの深さに限界があります。複数のFPGAを同時にデバッグした方が、マルチFPGAの設計に適しています。そのために大規模な外部メモリを使用すれば検証時間とエラーの発生率を縮小することにつながります。
S2Cはギガビットトランシーバと、キャプチャされたウェーブフォームを保存するための16GBの外付けDDR3メモリを利用した、専用の外部FPGAボードを開発しました。これにより、複数のFPGAと連結させて同時にデバッグする独自のマルチFPGAデバッグソリューションを提供します。
高速動作が可能なFPGAプロトタイピングは、コーナーケースバグ、大量なデータや演算に長時間かかる実システムデータ等に潜むバグを摘出するのに理想的シシステムです。大規模設計に於いて、早期のFPGAプロトタイピングを用いたデバッグ手法を利用する事で、後の段階でのECOを縮減する決め手となります。
拡張性
FPGAプロトタイピングはアルゴリズム、アーキテクチャ設計、IP開発やSoC全体のテスト等、異なる設計の段階での利用が可能です。FPGAプロトタイピングの拡張性若しくはモジュールは、異なる設計プロジェクト、及びそれぞれの設計段階に対して、単一のプラットフォームを共有する事により、投資を最大限に活用出来ます。
しかしながら、 そのモデル利用の特化の為にこの拡張性が限られてしまうFPGAベースのシステムがあります。一例として、PCIeフォームのFPGAボードは4つを超えたFPGAの実装は困難です。インターコネクション、グローバルクロック、マルチボードのシステム制御、電源、そして機械的な点からみてですが。
大抵のこれらのソリューションは多くのケーブルを要する事となり、拡張が難しくなります。
これらの落とし穴を未然に防ぐ為、以下の事を考慮すべきです:
・小規模設計(1~2個のFPGA)と大規模設計(4,8,16個またはそれ以上のFPGA)の両方に利用できるプラットフォームを適用
・それぞれのFPGAのインターコネクションの数と動作速度の充分な検討
・機械、電源供給、セルフテスト機能等を含むマルチボードシステムの信頼性の配慮
・グローバルクロックを取り扱いし易く、かつソフトウェアインターフェースによる一括リセットが出来るグローバル管理ソリューションの設置
予算の折り合い
上記のように、エンジニアマネージャは予算の折り合いに頭を悩ませています。コスト,資源、時間の最善なバランスを捗りつつ、目標達成する事が最重要になります。そこで今、進化したFPGAプロトタイピングのテクノロジーを用いた大規模設計を取り扱う事を考慮にいれ、マネージャー達は与えられた資源を其の設計にどう取り組むか再吟味すべきです。エミュレータは効果的ではありますが、高価でもあります。
FPGAプロトタイピングの様な早期デバッグにより、後の段階での作業時間の短縮につながる等の特性もありません。もしマネージャーがより安価なFPGAプロトタイピング手法を早い時期での検証に適用したら、数十万ドルもの開発費用の削減になります。
勿論,コストとスピード面に於いてFPGAベースのプロトタイピングは小規模設計にも最適です。S2Cが提供するソリューションはこれらのニーズに取り組むシステムの最たる一例です。1,2,4つのFPGAを1枚のプロトタイピングボードに装備でき、かつそれらを最大32個のFPGAまでスタック/ケーブリング、もしくはケースに収納できます。
1個のFPGAを搭載したモジュールを使用して大きなシステムを形成する事で最大限の柔軟性を提供でき、4つのFPGAを搭載したモジュールは最小限のケーブリングで相互接続が可能となります。
パーティショニング、デバッグ、そして拡張性に於いての最新の進化はこのモジュールが最大の設計に於いても最適なソリューションを成し遂げました。
※本記事に関するお問い合わせ:S2Cジャパン株式会社
|ページの先頭へ|