検索
特集

FPGA設計のチェックポイントを知るASICからの移行で失敗しないために(4/5 ページ)

今日では製品設計にFPGAを使いたいと考える設計者が増えている。ASICやSoCを設計/製造するときの複雑な処理、マスク代、ツールにかかる費用がますます高額になってきたためだ。しかし、ASICからFPGAへと移行するには、その長所や短所も含めて、考察すべきいくつかの要素がある。本稿では、FPGAをうまく使いこなすために、設計者が事前に知っておくべきいくつかのチェックポイントをまとめる。

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

基板設計の問題

 上述したように、設計者は、FPGAが性能、集積度、消費電力の目標を満たすことを確認しなければならない。それに加えて、FPGAのパッケージやプリント配線板上における影響も考慮する必要がある。FPGAは通常、プリント配線板上に占める面積が大きい。しかも、I/O数が多いため、このI/Oを接続するためにプリント配線板に配線層を追加することが必要になる場合がある。

 また、パッケージやプリント配線板のシグナルインテグリティ解析にも工夫が必要で、FPGAに適切に給電するために別の電源回路を収容できるだけの余裕も必要となる。このような要件により、設計工程のコストが増加し、最終的には製品の価格の上昇につながる可能性がある。Rozario氏らが携わった例では、1Vで動作するほかのチップがなかったため、FPGAに給電するためだけに別の電源をプリント配線板上に設けなければならなかったという。

ツールにも注意

 設計者は、性能、消費電力、集積度の要件を満たすFPGAを選択する以外に、FPGAベンダーや主なEDAベンダーがどのような設計ツールを提供しているかも調べる必要がある。数年前にAltera社は開発スイート「Quartus」の操作性に関する問題で、大きな損害を被ることとなった。その後同社はこの問題を解決したが、ユーザーはチップに加え、提供されているツールやその品質にも留意する必要がある。

 Singh氏もRozario氏も、「FPGAベンダーの設計ツールは、GUIによる“プッシュボタン式”で利用するようになっており、通常はチップをある程度まとめて購入すれば無償で入手することができる。しかし、ASIC用の設計ツールと比較するとその機能は低い」と語る。つまり、カスタム処理を行おうとした場合、ASIC用の設計ツールほど操作性が良くない。特に、「FPGAベンダーは優れたコンパイラや論理合成技術を提供するが、FPGAベンダーの論理合成ツールは、米Synplicity社、米Mentor Graphics社、米Magma Design Automation社などが提供するFPGA設計ツールほど、うまく、また効率的に設計を実装できない」(Singh氏)という。市販のEDAツールを、自社のFPGAのみに対応する“軽量版”構成にして顧客に提供するという、OEM企業のような役割を果たしているFPGAベンダーもある。しかし、このようなツールは多くの場合、FPGAベンダーのツールよりは優れているが、EDAベンダーによる市販のフル構成版のツールほどの機能は持たない。また、FPGA業界ではほとんどの場合、ユーザーにはFPGAベンダーが独自に開発したレイアウトツールを使用する以外に選択肢はない。FPGAベンダーは、ユーザーがそのFPGAのアーキテクチャを活用することを支援する独自のレイアウトツールを開発している。しかしSingh氏とRozario氏によると、ASICと同様に、FPGA用レイアウトツールが同等のASIC設計ツールほど高機能であることはまれだという。

設計上の注意点

 Singh氏とRozario氏によると、多くのFPGAにはSERDES、RAM、PLL(phase locked loop)、DSPなどの固定マクロがあり、固定のマイクロプロセッサブロックを持つものもあるため、レイアウトが困難な場合があるという。

 例えばAltera社は、Stratixおよび「Stratix GX」の製品ラインを提供している。Singh氏によると、これら2つのFPGAは似てはいるが、Stratix GXにはハードワイヤードのSERDESブロックが搭載されているという。RAM、PLL、専用I/Oブロックを配置したら、ボトムアップ方式で設計を行う必要がある。つまり、まずチップ上の出力端子、パッケージ、マクロを決定し、その後に設計や実装を始める。Singh氏は、I/O技術、DDR用のSSTL(stub series terminated logic)、PCI用のHSTL(high speed transceiver logic)の問題から、各チップが何を提供し、それを用いて設計するには何をすればよいのかを理解するという、デューディリジェンス(当然行うべき調査)の重要性に気付いたと語る。

 また、Singh氏は、「ASICには複数のクロックリソースがあるが、FPGAにはより多くの制約があり、通常はグローバルクロックを使用する」という点を指摘する。さらに「ASICの設計データがすでにあり、FPGAに移行したいと考えているが、それが複数のクロックドメイン、特に大きなクロックドメインを持つ場合には、自分の設計を適用できるかどうかFPGAベンダーに問い合わせてみる必要がある」(同氏)と続ける。同氏によると、「FPGAにはグローバルクロックのほかに、ローカルクロックもある。しかし、これらのクロックを利用できる個所は特定の4つのドメインのうちの1つに限定されるため、ロジックとそのクロッキングに注意しなければならない」と警告する。Singh氏は、通常は15〜20の複数のクロックドメインを採用して設計を行う。これをFPGAに実装するにはかなりの労力が必要になる。

 Singh氏は「ASICでは、I/Oをチューニングすることができる」と説明する。「FPGAのI/Oは複雑で、スルーレート、駆動能力、インピーダンスを調整するのは困難であるため、I/Oをチューニングしようとするとオーバーヘッドが生じる可能性がある」という。さらに、「設計の初期段階からI/Oを適切にチューニングしなければ、シグナルインテグリティとクロッキングの両方が大きな問題となり得る」(同氏)と指摘する。

 Rozario氏の設計グループも、レイアウトに関して同様の問題に遭遇した。しかし同氏らの設計ではクロックドメインが比較的少なかったので、クロック構成はSingh氏らのものより簡単なもので十分であった。「FPGAは構造全体にわたる内蔵クロックを持つため、クロックのバランスをとるのはASICの場合よりもずっと容易だった」とRozario氏は述べる。「FPGAではクロッキングに関してあらゆる考慮がなされているため、クロックツリーのシグナルインテグリティについて考える必要はない。また、領域当たりに使用可能なクロック数が多い」(同氏)という。

 Rozario氏は、「しっかりとした計画に基づいてレイアウトを行わなければタイミングの問題が生じる恐れがある」と警告する。「大規模なFPGAには不要な機能が存在する場合があり、そのような回路ブロックを回避して設計しなければならない。われわれが使用したチップにはハードワイヤードのDSPブロックがあった。そのときの設計ではDSPは使わなかったが、次の設計では使用するかもしれない」(Rozario氏)という。同氏のグループは最適なレイアウトを確定した後、Xilinx社のICE(in circuit emulator)ツールを使用したことにより、その設計をアーキテクチャに「かなりうまく」適合させることができた。当初同氏のグループは、すべてのFPGAサブモジュールのフロアプランを決めてからトップレベルへと組み上げるという方法を、チップ全体に対して繰り返す予定であった。しかしICEのアプリケーションエンジニアは、「その方法は推奨できない」と述べ、自動化ツールを利用することを勧めた。Rozario氏はその意見に懐疑的であったが、結局どちらの方法を用いても同様の結果が得られることが分かった。

 FPGA設計ツールはASIC設計ツールほどカスタマイズが容易ではないが、Singh氏は、設計者がASICからFPGAへの設計へと移行する場合、無償のFPGAベンダーツール、IP(intellectual property)製品群、顧客サポートを利用することを推奨する。その理由としては、ベンダーによるプログラム管理や設計サポートが優れていること、FPGAを理解している設計の専門家がいること、フィールドサポートがしっかりしていることなどを挙げる。FPGAベンダーのツールは、フロアプラニングやシグナルインテグリティなど、基礎となる作業を行うのに非常に有用であるという。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る