FPGAは、特にプロトタイプ開発や少量生産などで大きな威力を発揮するデバイスである。しかし、FPGAで実現した機能をASICに移行することで、より多くの利点が得られるケースも少なくない。その移行をシームレスに行うために、基板設計とチップ設計の両面から見てポイントとなる事柄を説明する。
昨今の多くのデジタルシステムは、最新のFPGAによって支えられている。FPGAはロジック回路の開発、プロトタイピング、製品展開において積極的に選択すべきプラットフォームとなりつつある。
しかしながら、システムの要件によっては、FPGAを用いて製品を展開するのが最良の方法とは限らない。FPGAはコストや消費電力が高いことから、ASICチップによって展開せざるを得ないケースもある。その場合、当初からASICへの移行を考慮して適切にFPGAを設計すれば、スムーズに移行が行え、市場投入までの期間を短縮できる。最初にいくつかのポイントに注意を払っておくことで、FPGAからASICへの移行は格段に容易になるのだ。本稿では、そのポイントとして8つの項目を取り上げ、それぞれについて解説を加える。
FPGAからASICへの移行における1つ目のポイントは「電源」である。これが注意すべき項目として挙がることには違和感を覚える方もいるかもしれない。しかし、電源はシステム設計者にとって最もコストを節約できる可能性を持った部分だと言える。
ロジック回路の集積度と速度を向上させたいという要求から、FPGAはより低い電圧で動作する最先端の半導体プロセスで製造されるようになった。65nmプロセスで製造される最新のFPGAでは、ロジック(コア)部分は1Vの電源電圧で動作する。しかし、ここで考えなければならないことは、FPGAと同じ性能を実現するために、ASICチップも65nmプロセスで製造する必要があるのかということだ。その答えは明らかに「ノー」である。システムの要件によっては、65nmのFPGAから90nm、130nm、180nm、あるいは350nmのASICへと移行してもよいかもしれない。一般に、旧世代のプロセス技術を用いるほど、集積度と性能は下がるが、コストも減少する。これは十分に注目に値するポイントである。ただし、ここで問題となるのは、旧世代のプロセス技術であるほど、動作電源電圧が高いということだ。1Vのコア電源電圧を1.2V、1.5V、3.3Vに容易に変更できないとしたら、必要以上に高価なプロセス技術を利用し続けなければならないことになる。
以上のことから、FPGAからASICへの移行を考える際、最初に考察すべき重要なポイントが浮き彫りになる。それは、基板において、後で異なる電圧に容易に変更できるよう、FPGAのコア電源電圧の供給部分を設計するということである。一般的には、FPGAのコア部分用に独立した専用の電源プレーンを用意することになるだろう。これは、FPGAの電源ノイズを周辺から隔離するために、結局は行わなくてはならなくなる作業だ。また、FPGAに電源電圧を供給するレギュレータをより安価なものに取り替えたり、供給電圧の値を変更したりすることができるような配置を考えることもポイントとなる。
パッケージのコストがチップのコストよりも高いケースがある。特に端子数が多いパッケージやフリップチップではそうである。パッケージのコストを下げるにはどうすればよいのだろうか。
FPGAは基本的に消費電力が多いデバイスである。そのため、熱特性の優れた高価なパッケージを必要とする。従って、消費電力の少ないASICに変換するのであれば、同じサイズのプラスチックパッケージに変更するのが最も簡単なコスト削減法となる。
FPGAの設計時には、ロジック回路とメモリーの容量が不足することのないように、サイズの大きい製品を利用することが多い。そして、そのようなFPGAには非常に多くの端子が備わっているはずである。しかし、それら端子のすべてが必要だろうか。必要でないのならば、ASICに移行する際に、より小型のパッケージを選択してもよいだろう。
FPGA製品ファミリには、パッケージオプションが用意されているものがある。端子配置の互換性を考慮したラインアップを用意し、小型のパッケージから試してみて、必要ならば大型のパッケージに変更できるようにしている製品群である。FPGAを設計する際には、これとは逆の考え方を適用するとよい。つまり、当初は大きなパッケージのFPGAを使用するが、外側にあるI/Oピンは使用せずに端子配置を定義するのである。そうすれば、ASICに移行する際には、最初の基板におけるFPGAの配置領域内で、より小さなパッケージを選択することができる。
プロトタイプの開発時には、FPGA用にドーターボードを使用するなど、さまざまな方法を採用して構わない。パッケージの端子数を抑えることができれば、結局はコストを大きく削減することができる。
なお、FPGAの構成のために外付けのEPROMやフラッシュメモリーを使用しているケースがあるが、その場合、ASICに移行したら、BOM(bill of materials:部品表)からそれらのEPROMやフラッシュメモリーを削除することができる。さらに、より小さなパッケージの選択、小型のレギュレータへの変更といったことも行うと、ボード上に空き領域ができることになる。その空き領域をアプリケーションのために活用したいケースも出てくるだろう。結果として、FPGA用のドーターボードを利用したり、基板を再設計したりすることが、コスト削減につながることもあるはずだ。
JTAG(Joint Test Action Group)を利用したバウンダリスキャンテスト(以下、JTAGテスト)について理解すれば、FPGAからASICへの移行時にかなりのコストを削減できる。移行時に問題となるのは、FPGAにおける未使用端子を対象としたJTAGテストである。ボードレベルのテストでは、未使用端子を含めてバウンダリスキャン用のシフトレジスタ上でデータがシフトするようにプログラムを記述する。未使用の端子がボード配線に接続されている場合、JTAGテストではそれらもテストの対象としてアクセスすることになる。
ASICに移行する際、仮にJTAGテストをそのまま流用しようとすると、この未使用端子の存在が問題になる。単純に未使用端子を取り除くと、JTAGテストは正常に動作しないだろう。一方、未使用端子を残すことにすると、移行後のASICには、JTAGテストをサポートするためだけの不要な端子(ボンディングパッド)が存在することになる。
I/Oパッドがチップ面積に占める割合は大きい。従って、未使用端子を除去すれば、チップ面積を縮小することができる。具体的な数値で示すと、I/O端子のうち30%が未使用ならば、それを削除することで、チップ面積は50%縮小できるといった具合だ。これは大きなコスト削減につながる。移行前のFPGAと同じパッケージに移行後のASICチップを収めてもよいが、すべての端子をチップに接続する必要はない。
テスト技術者には、移行後のASICチップではFPGAにおける未使用I/O端子を削除し、JTAGテストの対象としないことを伝えておくとよい。テスト技術者は、テストプログラムの作成時に、ASIC向けにはそれらの端子のテストをマスクしたりするなどの工夫を施すであろう。
Copyright © ITmedia, Inc. All Rights Reserved.