こんにちは。
マクニカで Altera® FPGA 製品の技術サポートをしている アルテラ ハナコ です。
この時代にハードウェア・エンジニアやシステム・エンジニアをしている人なら、FPGA (エフ・ピー・ジー・エー) と言う半導体デバイスを一度は聞いたことがあると思います。そんな身近な FPGA ですが、どんな製品にも “初めての人” は付き物です。「これから FPGA をはじめます!」という人は、やはり勉強や知識、情報リサーチが必要になります。
「FPGA って何者?」と言うテーマですが、ここでは FPGA の一般基礎知識は書きません!“FPGA とは” と Web 検索をすれば今やたくさんの情報を入手することができます。なので一般的な基礎知識はそちらにお任せするとして・・・。ここでは、もうちょっと砕けた情報を発信したいと思います。
(とは言え、一応これだけは書いておきます。)
FPGA は、一言で言うなら、「後からでも回路の書き換えが可能なロジック・デバイス」 です。
FPGA の語源は Field Programmable Gate Array の頭文字を取っていて、現場 [Field] で、書き換え可能 [programmable:プログラマブル=プログラム可能な]、LSI [論理ゲート (Gate) が格子 (Array) 状に並んでいるセミカスタム LSI ] という意味です。
ちなみに、
CPLD は、Complex Programmable Logic Device が語源の不揮発性 IC です。
どちらも、「プログラマブル」なのが魅力ですね。
デバイスの規模は?
一言でいえばピンキリです。それだけバラエティーに富んだラインナップがあるので、開発者は適切な規模(容量)のデバイスを購入することができ、予算を抑えることができます。
デバイス規模の具体的な数値を示す前に、規模を表す単位のお話しを少し。
FPGA にはデバイスの規模(容量)を表す単位があって、ユーザーはそれを目安にデバイスの選定をします。この単位、メーカーで統一されていないのが現状です。例えば Altera® FPGA では ロジック・エレメント(LE) と言いますが、ザイリンクスでは ロジック・セル(LC) と呼び、ラティスは LUT (ルック・アップ・テーブル) が何個搭載されている、と言う表記です。ちなみに LUT とは、LE あるいは LC の論理回路ブロックの核となる部位のことです。(詳しくは、WEB 検索で調べてください。たくさん情報がありますよ。)
FPGA メーカー各社で LUT の基本的な原理は同じですが、細かな構造が多少異なるので、LE 数と LC 数はイコールではありません。LE と LC を厳密に比較することはできませんが、まぁザックリ言えばニアリーイコールなので目安として見れば良いと思います。
さて話を戻しましょう。
Altera® FPGA では、LE を小さいものは40個、大きなものは5,510K個搭載しています (2015年10月現在)。この LE を ASIC ゲートで換算すると、1LE あたり約12ゲートです。
なので
5,510 KLE x 約12 = 66,120Kゲート相当
と見積もれます。
でも実は、これがFPGAの実現できる論理回路規模ではないんです!今や FPGA はLE の他に DSP (乗算器)ブロック、メモリー、PLL、トランシーバー、ARM などなど、多彩なブロックを搭載しているので、単純にゲート換算することは難しいです。ま、最低限の目安としては、LE 数と 18x18ビット最大乗算器数を合算して見積もると良いと思います。
先程例に挙げた 5,510K LE の FPGA には、18x18ビット乗算器が3,960個搭載されているものがあります。
18x18ビット乗算器は約5,000ゲートとして換算して、
3,960 x 約5,000 = 19,800K ゲート相当
LE は約66,120Kゲートなので、この FPGA の型番は ASIC ゲートで換算して、
66,120K + 19,800K = 85,920Kゲート相当
と見積もれます。
そこにさらに内蔵メモリーや PLL、トランシーバーなどが専用ブロックとして搭載されているので、
85,920Kゲート+α相当
ということになります。
内蔵メモリー(MAX® II、MAX® Vを除く)は、最小で 108Kbit 搭載しているものから最大1,677,312bit 搭載しているものまであります。
ユーザーI/O ピンは、最少27ピン(36ピン VBGA パッケージ)から最多1,640ピン(2,912ピン FBGA パッケージ)まであります。
FPGA のシリーズによってラインナップは異なるので、メーカーのハンドブック、いわゆるデータシートを調べてください。(これらは、2015年10月時点の情報です。リリース前の製品情報に関しては変更される可能性があります。)
実際に回路を設計する際、ターゲットデバイスの容量(リソース)を100%使用することはほぼムリです。もしフルフルに全てのブロックを使うと各ブロック間をつなぐ配線が混雑して、希望通りのデバイス・スピードを実現できないとか、最悪は配置配線ができないという事態になり兼ねません。また未使用リソースがないと回路(仕様)変更に対応することも難しくなります。柔軟性を持たせるため、論理回路がデバイス容量(リソース)の使用率約80%以下になるような容量のものを選定することをおすすめします。
[関連記事] 製品仕様:Altera® FPGA
動作スピードは?
FPGA 内部の動作速度は、論理回路で使用するリソースを80%以下にして、かつ FPGA 内部でデータを転送するクロック制御方式を同期式(フリップフロップ同士が同一クロックで動作すること。)に構成すれば、200MHz 程度は実現できます (FPGA の製品群により異なります)。もちろんユーザーの回路の作り方にもよるので、100MHzも出ない場合もあります。つまり、FPGA の内部動作スピードは、ユーザーの論理回路の設計構成次第なのです。
200MHz と聞くとソフトウェア設計者からすれば遅いと感じるでしょうが、FPGA はハードウェアなので、並列処理はお手の物!またハードウェア部分を自由に作れるので、データの処理の仕方を工夫すれば、さらに処理能力(スループット)を高めることができます。
FPGA 外部の動作速度は、内部にトランシーバー・ブロックを搭載していたり多種多様な I/O 規格をサポートしているので、DDR3/DDR4 SDRAM、PCI Express (PCIe)、Serial RapidIO、ギガビット・イーサネットなど多くのインターフェースをサポートしています。最新の FPGA では、最大28Gbpsのデータ転送を実現します。(これらは、2015年10月時点の情報です。リリース前の製品情報に関しては変更される可能性があります。)
開発にかかる費用は?
FPGA や CPLD を開発するには、大まかにこんなものに費用がかかります。
開発コスト | FPGA および CPLD なら… |
設計や検証に必要な人件費 | ⇒ 自社で開発すれば、人件費は抑えられます。 |
開発環境(ソフトウェア類) | ⇒ Quartus® Prime ライト・エディション を使えば 0円! |
デバイス | ⇒ 安価なものは1個100円台から購入できます。 |
マスクやウェハーの製造費 | ⇒ 不要です。 |
基板設計、デバイスの実装 | ⇒ どんな基板仕様にするか、外注するか自社でやるかで費用が異なります。 |
データの書き込み | ⇒ 自分自身でデータの書き込みをします。つまり書き込み作業の費用は0円です。ただし、書き込むための Altera® FPGA ダウンロード・ケーブル が手元に無い場合には購入が必要です。 |
論理回路の設計変更 | ⇒ (自分で設計するなら)その場で、すぐに変更できます。(自分自身の作業なので)追加費用は発生しません。 |
[データの書き込みに関する補足]
FPGA を基板に実装した状態で書き込みます。FPGAには書き込み用の専用ピンがあり、基板上に用意したコネクタと専用ピンを配線しておきます。パソコンと基板(コネクター)をつなぐのは USB-Blaster™ II(ユーエスビー・ブラスター・ツー) という専用のダウンロード・ケーブル。パソコンから Quartus® Prime の書き込み用ユーティリティー(Programmer)を使って、パソコンから基板上の FPGA へデータを転送して書き込みます。でも FPGA は SRAM です。製品化するためには、基板上に FPGA のデータを格納しておくための不揮発性メモリー(専用ROM やフラッシュメモリー)の実装も必要です。
最低購入単位は?
1個から購入できます!
そのため、試作用としても量産用としても、ユーザーに合った用途で使用できます。