「回路を変更したい!それも簡単に!」。

 回路設計者なら誰しもが抱く願いだろう。なにしろ回路はハードウェア(ハード=硬い)とも呼ばれるように,一度作ったら修正できないのが宿命。あとから不具合(バグ)が発見されたり,設計の終盤で仕様が変更され,修正作業で泣きを見たりした経験を持つ設計者は少なくないはずだ。そこに現れた救世主がFPGAである。フィールド(現場)で回路をプログラムできるデバイスの登場によって,回路変更は難しいという既成概念は過去のものとなった。当初は主に試作に使われていたFPGAだが,使い方によっては新たな機能を追加することもできるため,今では多くのデジタル製品を支えるまでに発展している。

 この"夢のデバイス"とも言えるFPGA。データシートだけを見ていたのでは,なかなか分からない多くの魅力を備えている。これから始まる連載で,それを一つひとつ解き明かす。このために,FPGAの特徴や仕組みを紹介するのはもちろんのこと,最新技術,開発手法,活用事例など様々な切り口から,FPGAの魅力を探って行きたいと思う。

 第1回目は「FPGAの基礎」。まずはFPGAの名前の由来や機能の概要を解説するとともに,業界に存在する様々な半導体デバイスとの関係を整理。後半では刻々と変化するエレクトロニクス市場の最近の動きとあわせて、ますます用途が広がるFPGAの最新動向を紹介する。

この連載が、奥深い魅力的なFPGAの世界に踏み込む第一歩となれば幸いだ。

 FPGAは,いま電子機器設計者の間で急速にユーザーを増やしているデバイスの一つだ。「エフ・ピー・ジー・エー」と呼ばれるこのデバイスの正式な名前は,「field programmable gate array」。それぞれの言葉の頭文字を並べるとFPGAになる。FPGAは,多数の論理回路(gate)を一つの半導体チップに集積し,アレイ(array)状にしたデジタルICの一種。しかも,「field programmable」。つまり,論理回路が「field(現場)」でプログラミングできるのが大きな特徴だ。具体的には,あらかじめ集積されている論理回路の組み合わせや接続を,設計者が手元で変更しながら,独自の論理回路を構築できる。そのうえ一度限りではなく,何度でも回路を変更することが可能だ。

カスタムLSIを一つから実現

 この特徴がもたらす大きな利点の一つは,カスタムのロジックLSIを一つからでも手に入れることできることだ。初めて知る設計者にとっては,"夢"のようなデバイスに見えるかもしれない。FPGAのようなプログラマブルなデバイスが登場するまで,カスタムLSIを設計者が机上で作るといったことはあり得なかったからだ。ましてや,たった一つだけ入手することなど現実的な話ではなかった。

通常のLSIの場合は,高度な技術を駆使した製造プロセスを使って半導体チップに回路を実装する。しかも,製造ラインは,クリーンルームを使った特殊な環境に置くのが前提だ。そのうえ製造コストを抑えるために,直径が100mm〜300mmのSiウエーハを使って大量のLSIチップを同時に製造する。もし,この手法で,たった一つのカスタムLSIを製造したならば,そのチップはとんでもなく高価なものになるだろう。

 これに対してFPGAは,論理がプログラムされていない状態では,標準設計に基づく汎用品である。汎用品ならば大量に生産することでコストを抑えることができる。ところが,FPGAはユーザーの手元でプログラミングされることによってカスタム品に変わる。こうしてカスタムLSIが低価格で実現できるわけだ。

Time-to-Marketの実践に貢献

 いま機器設計者の間でFPGAに対する関心が高まっている主な理由は,もう一つのFPGAの利点にある。すなわち,カスタムLSIが短期間で実現できることだ。最近は電子機器のデジタル化が進んだことなどを背景に,多くの製品で市場における製品サイクルが短くなっている。従来の流れで,カスタムLSIを開発していたのでは,市場の変化に製品開発ペースが追随できなくなる恐れが出てきた。しかも,かつてのように製品に合わせて,いちいちカスタムLSIを設計していると,開発費が膨大なものになりかねない。FPGAならば,短期間で必要な数量のカスタムLSIを用意できる。これによって製品開発の効率化を図ることが可能だ。最速のTime-to-Marketを実現できるといっても過言ではない。

FPGAはPLDの一つ

 後半では,FPGAを巡る最近のトレンドを紹介したい。その前に,様々な半導体デバイスの中におけるFPGAのポジションを明確にしておく。FPGAのようにプログラム可能な論理回路を備えたデバイスは,一般に「PLD(programmable logic device)」と呼ばれている(図1)。PLDが市場に登場したのは1970年代のことだ。その後,技術の進歩とともに製品が多様化しており,現在ではFPGAのほかにも「SPLD(Simple PLD)」や「CPLD(complex PLD)」と呼ばれるPLDがある。実は,これらのデバイスを区別するための明確な定義があるわけではない。特にSPLDとCPLDは,PLDが進化する過程で多様化してきた製品を区別するために,開発メーカーがこれらの言葉を使い始め,これが業界に定着したようだ。最近では1チップに集積されている論理ゲート数が数百以下のデバイスはSPLD,数百以上で数万以下はCPLD,数万以上がFPGAといったような位置づけが出来上がっている(図2)。

図1 様々な側面を持つPLD

図1 様々な側面を持つPLD

図2 PLDの種類

図2 PLDの種類

 ただし,AND回路やOR回路で論理を構成するSPLDやCPLDに対して,FPGAはあらかじめ用意された小規模な論理ブロックを組み合わせて回路を構成する。このためSPLDやCPLDをFPGAと区別する場合もある。最近では,広義のPLDはFPGAを含むが,狭義のPLDはSPLDとCPLDだけを指すというのが業界では一般的になっている。