ASIC プロトタイピングシステムとは、大容量で高速なFPGAを使用して仮想ASIC環境を構築し、よりASICに近い高速動作環境(数十MHz)で実行するハードウェア及びアプリケーション(ソフトウェア)検証の総称です。画像系、通信系のアプリケーションで広く採用されている検証手法です。
ASIC プロトタイピングシステムは、ソフトウェアシミュレータやアクセラレータによるRTLサインオフと比較した場合、よりターゲットとするASIC(SoC)に近い環境で検証を実行するため、ソフトウェアシミュレータやアクセラレータで検出できないバグを短時間で見つけることが可能です。2013年夏時点において、ASICプロトタイピングシステムに搭載されるFPGAデバイスは、できるだけASICおよびSoCに近い容量を持つ、大規模・超高速のFPGAが使用されています。
(ザイリンクス社:Virtex-7、アルテラ社:Stratix V)
また一方では、ザイリンクス社のKintex-7、アルテラ社のCyclone Vといった、比較的安価なFPGAを搭載したFPGA Evaluation Boardも多種多様に出回っており、ASICやSoCの設計時術者だけではなく、システム技術者にもFPGAを利用したプロトタイピング手法が浸透しつつあります。
複雑なASICのハードウェア検証加速手法には、次のような手法があり、次のような手順でおこないます。
標準的なASICハードウェア機能検証手法として、(1)→<(2A)もしくは(2B)→>(3)に移ります。開発予算、ASICの複雑さ、検証内容等によって、すべての手法をとるか、一部の手法にとどめるか、その組み合わせが異なります。そしていずれの場合にも、ASICを起こしてからバグが発見されると、チップの再製作には数億円以上のコストが必要となり、検証におけるスピードと精度への要求は極めて高度になってきています。
各ソリューションの長所と短所
(1)シミュレータによる検証(数Hz)
長所
- ほとんどの設計部門では導入が完了しており、新規導入コストは限りなく安価である。
- アサーションチェックなどの汎用性のある検証環境がインテグレーションされている。
短所
- 数百万ASICゲート以上の規模となった場合には検証に時間がかかる。
- 設計者がテストベクタとして想定した範囲内の検証しかできない。
- ASICを起こしてからバグが見つかるとチップの再作に数億円以上必要
(2A)シミュレーションアクセラレータによる検証(数100KHz)
長所
- シミュレータと同じフローで検証が可能であり、プロジェクトへの適用が容易である。
- エミュレータより安価(数千万円)
短所
- ASIC⇔FPGAの機能的な等価性の保証は、検証した結果がRTL等価であることが前提となる。
- アクセラレータのモデルによっては、RTL変更が必要なものがあるため、何を検証しているか分からなくなる。
- テストベンチ内での検証の範囲でのみの検証であり、複雑なバグの発見は不可能。
(2B)ASICエミュレータ(数MHz)
長所
- フルノード観測が可能である。
- シミュレーションフローに比べればバグの検出率は劇的に向上する。
- 自動パーティショニングツールが用意されている。
短所
- 極めて高価(数億円)であり、規模が増えるごとに大規模投資が必要となる。年間保守費用に数千万円が必要となる事例もある。
- 一度立ち上がれば使い回しは効果的ではあるが、導入初期における設定が複雑で、数週間から数ヶ月を要したという事例がある。
- かなりの好条件が重なれば10-20MHzまでは可能だが、経験値としては、実行速度は数100KHzー数MHzと言われている。
- メモリやインタフェースが実速度で動作しないため、全て合成可能なモデル準備(購入もしくは自作)が必要となる。特にDDR2/DDR3/DVI/HDMI/PCI Expressなど高速動作ペリフェラルの適用は難しい。
(3)汎用ASICプロトタイピングシステム
長所
- アクセラレータやエミュレータより一桁低価格なシステム価格。
- 商品によっては必要となってから1週間以内に入手できる汎用流通性がある。
- FPGAの搭載個数、あるいは評価ボードの複数枚適用により、リーゾナブルな価格と工数で検証規模の拡張が可能。
- 上記価格帯であることから、ハードウェア設計に並行して、ソフトウェア部隊がこのシステムを導入・利用してASIC完成前にソフトウェアを検証することも可能。
- DiaLite(当社販売)など、安価なASICプロトタイピングシステム用サードパーティ検証ツール使用により、エミュレータライクなデバッグ環境構築が可能。
- ASICと実速度もしくは約半分の動作周波数で動作可能(DDR2/DDR3/DVI/PCI Express)であり、最大約150MHz-200MHzが実現できる事例もある。
- PC⇔ASICプロトタイピングシステムのインタフェースが容易。
短所
- 環境設定にFPGAの知識、経験が必要
- 特定のアプリケーションに特化した場合には機能的にカスタムボードに劣ることがある。
- 機能を最小限に絞り込んだカスタムボードに比較するとまだ高価なことがある。
- FPGAテクノロジや各FPGAベンダの固有の技術に縛られることがある。
- 大規模ASICのRTLデザインを分割して複数のFPGA内に実装し配置配線を実行する場合には、高価なパーティションツールが必要になる。
ASICプロトタイピングシステムのタイプ別ソリューションの違い
固定配線のASICプロトタイピングシステム
長所
- FPGA-コネクタ間のタイミング値などを得やすい。
- FPGA、コネクタ内での信号値をロジックアナライザなどで見やすい。
- クロック、信号などの配線チューニングがしやすい。
- 総合的な動作周波数解析が容易であるため、動作周波数ドメインのデザイン向きである。
- 安価
短所
- 複数FPGAのロジック分割に手間がかかる。
- FPGA機能、知識の熟知が必要。
- ソフトウェア検証対応が難しい(カスタム開発が必要となる)。
汎用配線(スイッチングデバイス)のASICプロトタイピングシステム
長所
- FPGAの経験が浅くても環境設定が可能。
- 同じ環境を再現する時間は短い(配線ボードなどが不要)。
- ソフトウェア統合環境構築が容易(コシミュレーション、コエミュレーション対応)。
短所
- FPGA-コネクタ間のタイミング値などが得にくい
- FPGA、コネクタ内での信号値をロジックアナライザなどで見にくい
- クロック、信号、動作周波数などの配線・チューニングが複雑
- ソフトウェアの習得が必要
- デザインサービスが必要の場合がある(特に1千万ゲート以上の大規模デザインの場合、パーティショニングツールが必須)
- 総合的な動作周波数解析がしにくい(動作周波数ドメインのデザインへは適用しにくい)
- 高価
Altera社とXilinx社、ASICプロトタイピング取り組みに対する評価(2013年夏時点、当社独自調査による)
Xilinx社
長所
- 最大規模のFPGAの最大ピン数のモデルが多く普及しており、マルチFPGAにインプリして使用する必要のある超大規模デザインの場合、FPGA間の信号のやりとりが多く、速度低下を防ぐには多ピンであるのが利点。
- 国内のザイリンクス販売代理店がシステムボードを独自開発しており、サポートに一貫性がある。
- オプションボード(例:HDMI、USB3.0 、LVDS等)も、カスタムボードの開発にも力を入れている。
短所
- FPGAボード(マザーボード、オプションボード)の開発、生産、販売はFPGA代理店及びサードパーティに依存。
- FPGA代理店も自社製ボード開発・販売をおこなうため、FPGA代理店とサードパーティ間での協業はない。
- 開発ツールについて。
- DDR2などのメモリ用コントローラなどのIPコアはXilinx製では満足できない顧客に対してFPGA代理店が独自に開発するなど代理店に依存。
Altera社
長所
- 当社が販売する最大規模Stratix Ⅳベースのシステムは、業界最高水準のコストパフォーマンス。(当社独自調査による)
- FPGAボード上の外部インタフェース用コネクタ規格に関する統一性(HSMC規格)を早期から実現しているためマザーボード、ドータボード共に種類が豊富。
- マザーボードでの統一外部インタフェース規格は、マザーボードの量産効果を促し、低価格化を実現している。
- ドータボードは他社FPGAボードでも使用でき、汎用性に優れ、量産効果がありため、こちらも安価である。
- DDR2などのメモリ用コントローラなどのIPコアが充実し性能も高い。(当社独自調査による)
短所
- 最大規模のFPGAの中程度のピン数(1152,1517)のモデルが多く普及しており、マルチFPGAにインプリして使用する必要のある超大規模デザインの場合、FPGA間の信号のやりとりが多く、マルチFPGA使用のボードでは、ピン数が少ないFPGAを使用の場合、速度低下の懸念。ボードに依存。
- 上記を例にとるまでもなく、2013年夏時点では、容量という点においてザイリンクスのFPGAボードに劣る。
ASICプロトタイピングシステム検証の手順
プロトタイピングシステムで検証する場合、おおよそ次のような手順に従います。
- ターゲットとなる(検証しようとする)デザインもしくはブロックRTLのASICゲートサイズの概要設計スタイルなどからFPGAにインプリするブロックのデザイン規模の見当をつける。 (【例】600万ASICゲート)
- 市販の合成ツールにFPGA内部消費リソース見積機能があれば(ザイリンクス社ISE、アルテラ社Quartus Ⅱ、メンターグラフィックス社Precision Synthesis、シノプシス社Synplify-pro などがこの機能を持っています)の合成ツールを使用して、FPGA何個で収まるか調べる。
- (仮にStratix Ⅳ 820に収まるとした場合)FPGA内部にブロック分けできるデザインかどうか
・ブロック分けできる場合(RTLが小さいブロックに分かれている場合など)
→ブロック毎にFPGA合成してコンフィグ。
・ブロック分けしにくい場合(フラットなデザイン)
手法(1)RTLをHDLエントリーツールに読み込ませ、ブロックダイアグラムレベルで編集をおこない、RTLを吐き出し、上記のようにブロック毎にFPGA合成。この場合のグラフィカルHDLエントリーツール:EASE(当社扱い)など。もしくはエンジニアによる手作業分割。
手法(2)市販のパーティショニングソフトウェアを使用してFPGA内に入るようGUIを使用して分割し、得たブロック毎のRTLで上記と同様の手順をおこなう。 - アルテラ社Quartus Ⅱなどを使用して上記で得た合成結果をFPGA内にダウンロードする。
- ハードウェアデバッグ:シミュレータ、LA、市販FPGAオンチップ検証ツール(DiaLite、Signal Tapなど)でデバッグをおこなう。
- ハードウェア・ソフトウェア協調デバッグ:アプリケーションを流しながら市販ソフトウェアデバッガ(MultiICEなど)使用し、ハードウェアデバッグもおこなう。
- 画像検証の場合:入出力I/Oのターゲットを確定、検証に必要な最低限の動作周波数を特定、メモリなどの選定をおこなう。ほとんどのASICプロトタイピングシステムの場合、最も動作周波数に影響を与えるのは、
・FPGAのI/O遅延
・ターゲットデザイン(FPGA間配線数・速度)
・メモリコントローラ速度
・周辺検証環境
になりますので、ご注意下さい。また、DDR(DDR2)ご使用の場合は、低速での動作限度がありますので、ご注意下さい。 - 基本的にASICプロトタイピングシステム御使用の条件としまして、
・FPGAの知識(FPGA合成ツールを含むフロー)
・RTLデザインの知識
などを必要とします。
(ご参考)
- FPGA-外部接続用コネクタ間のボード遅延はマニュアル内ピンアサイン表に記載されおり、遅延情報が明確に分かり、安心して使用可能。
- 多くの場合、RTL(もしくはアーキテクチュアレベル)から最終的なI/O出力確認までを当社を含め外部委託される場合は、有償プロジェクトとなります。当社では、貴社のデザイン規模、デザイン内容、検証環境、ソフトウェア検証内容などから、貴社に最も適したハードウェア環境及びソリューションサービスをご提案しますので、お気軽にお問い合わせ下さい。なお、当社が実際に検証作業を実施することはなく、しかるべき検証環境とプロジェクト実施経験を有するパートナー企業様をご紹介させていただきます。