これまでFPGAは、携帯電話の基地局など一部の用途を別にすると、ASICの設計を評価するツールであったり、マイクロプロセッサーの隣に搭載される“コンパニオンチップ”という脇役的な役割だった。コンパニオンチップは、LSI間をつなぐグルーロジック用やテレビなどの画像データの伝送用などに使われていた。

 ただし、FPGAの“先祖”と言えるのは、短期間とはいえ、コンピューター界の主役だった世界初の汎用電子計算機「ENIAC」である(図A-1)。FPGAと初期のENIACは共にハードワイヤード型のコンピューター。プログラムに沿って回路の配線、つまりハードウエアを変更することで演算内容を変更するタイプのシステムである。ENIACは、多数の真空管とそれをつなぐケーブルから成り、FPGAはトランジスタと、マルチプレクサーで構成するスイッチ付きの微細配線から成るなど、要素技術や規模は変わっても、根本的な発想は同じだ(図A-2)。

図A-1 FPGAは初代ENIACの“直系”の後継
図A-1 FPGAは初代ENIACの“直系”の後継
世界初の汎用電子計算機「ENIAC」とFPGA、マイクロプロセッサーの関係を示した。ENIACは当初はハードワイヤード型コンピューターだったが、開発から2年後にプログラムをROM(Read Only Memory)から読み取って動作するプログラム内蔵型に改良された。FPGAは初期のENIACの後継、マイクロプロセッサーは改良版の後継といえる。ASICは、プログラム性を放棄したハードワイヤード型で、FPGAとは異なる分類になる。
[画像のクリックで拡大表示]
図A-2 論理ブロックの接続をスイッチで切り替え
図A-2 論理ブロックの接続をスイッチで切り替え
FPGAのチップのレイアウト例を示した。コア論理ファブリックは、ルックアップテーブル(LUT)とスイッチから成る論理ブロックを多数の配線で接続したものである。スイッチで配線を組み替えることで、さまざまな論理演算を実現する。DSPブロックは行列乗算に機能を特化した領域である。(図:Altera社、東北大学 佐野研究室)
[画像のクリックで拡大表示]