FPGAの種類

FPGAは基本構造であるコンフィギュレーションメモリの種類によって分類されます。
その種類について説明します。

FPGAの種類

FPGAはコンフィギュレーションメモリの種類によって分類されます。現在主流となっている以下の3つのタイプのFPGAについて、それぞれの特長を見ていきましょう。

  • SRAMベースFPGA
  • エンベデッドFlash型 SRAMベースFPGA
  • FlashベースFPGA

SRAMベースFPGA

コンフィギュレーションメモリがSRAMであり、最も広く用いられている構造です。コンフィギュレーションデータはFPGAとは別に用意した不揮発性メモリ(SPI-Flashなど)に格納(プログラム)しておき、電源ON時などにそのデータがFPGAのSRAMコンフィギュレーションメモリにロードされます(図1)。
SRAMは揮発性ですので、電源をOFFにするとその回路情報は失われることに注意してください。

図1. SRAMベースFPGAのコンフィギュレーション

最近のFPGAでは、図1 のようにJTAGインターフェイスを介して外付けSPI-Flashをプログラミングする機能を持っているものもあります。

SRAMベースFPGAの特長

SRAMベースFPGAは、最も主流なFPGAの構造であり、製造において最先端のCMOSプロセスが適用しやすく、高い集積度・高い性能を手に入れることができます。また、ユーザー数が多いことから様々な技術情報が得やすいということも言えます。さらに、性能・ロジック規模を抑え、低コストをターゲットとした製品もリリースされています。

しかしながら、SRAMベースFPGAは常に消費電力が課題となっています。
SRAMベースFPGAでは、展開されたコンフィギュレーションデータをSRAMセルで保持するため、常に一定の電流が必要になります(図2)。

図2.一般的なSRAMセルの等価回路の例

つまり、動いていなくても電源を入れる(コンフィギュレーションする)だけで電力が消費され、発熱が大きくなる傾向にあります。それは集積度が上がり、ロジック規模が大きくなるほど顕著になります。
その結果、大電流容量に対応する電源回路が必要になったり、ファンやヒートシンクなどの冷却機構が必要となるケースもあります。
製品によっては低消費電力を特長とした製品も存在しますが、それは集積度・性能とのトレード・オフであることを理解しておく必要があります。

エンベデッドFlash型 SRAMベースFPGA

基本的にはSRAMベースFPGAですが、コンフィギュレーションデータを格納する不揮発性メモリ(Flashメモリ)を組み込み(エンベデッド)、1チップで構成されたFPGAです(図3)。

図3. エンベデッドFlash型 SRAMベースFPGAのコンフィギュレーション

図3 のようにコンフィギュレーションデータは、FPGAのJTAGインターフェイスなどを介してエンベデッドFlashメモリにプログラムして使用します。

エンベデッドFlash型 SRAMベースFPGAの特長

エンベデッドFlash型 SRAMベースFPGAの最大のメリットは、1チップで構成できることです。このタイプのFPGAは比較的小規模なロジックサイズの製品が多くラインナップされています。また、超低消費電力な製品や単電源(3.3Vのみ等)で動作できる製品に加え、非常に小さなパッケージも用意されています。使い勝手の良さから、モバイル製品を含む民生機器から産業機器まで幅広く使われています。

しかしながら、エンベデッドFlash構造であることから、最先端のプロセスを採用することが難しく、より大きなロジック規模・高い性能を求めることが困難です。データシート等を参照して、回路規模およびどれくらいの性能を達成できるのかを確認する必要があります。

FlashベースFPGA

コンフィギュレーションメモリが不揮発性のFlashメモリであり、SRAMベースFPGAのように、別の不揮発性メモリを用意する必要がありません(図4)。

図4. FlashベースFPGAのコンフィギュレーション

コンフィギュレーションデータは、JTAGインターフェイスなどを介して、Flashコンフィギュレーションメモリに直接プログラムします。

FlashベースFPGAの特長

1チップで構成することができるという点では、エンベデッドFlash型のFPGAと同じですが、比較的大きめのロジックサイズをもつ製品が存在します。
さらに、コンフィギュレーションメモリがFlashセルで構成されていることで、SRAMベースFPGAには無いいくつかの特長を持っています。

①低消費電力
コンフィギュレーションデータをFlashセルのフローティングゲートで保持することにより、SRAMベースFPGAに比べると静止電力(スタティック電力)は大幅に低くなります。

②高い信頼性
SRAMセルのデータは中性子や α粒子によって、ビット反転が起き易いことが知られています。
これに対し、Flashセルのフローティングゲートで保持されるデータは、地球上の中性子や α粒子のエネルギー程度ではビット反転が起きないことが実証されています。
※近年のプロセステクノジーにおいては、従来のCMOSトランジスタより信頼性の高いテクノロジーを使用したSRAMベースFPGAも存在することを付け加えておきます。

③高速な起動時間
SRAMベースFPGA及び、エンベデッドFlash型のSRAMベースFPGAは、外部のFlashメモリ等からSRAMコンフィギュレーションメモリにデータを展開しないと動作することができません。
すなわち、動作するまでに時間を要する、ということです。
これに対し、FlashベースFPGAは、元々コンフィギュレーションメモリにデータがプログラムされているので、電源を入れれば即座に動作(インスタント・オン)することができます。

一方で、FlashベースFPGAの構造では、SRAMベースFPGAに比べダイサイズが大きくなる傾向があります。また、Flashセル特有の製造工程も必要です。ダイサイズや工程の追加はコストに影響する要因となり得ます。
また、Flashセルはプロセスの微細化が難しいという問題もあり、SRAMセルに比べて性能が下回ることもありますので、データシート等を参照して、どれくらいの性能を達成できるのか確認する必要があります。

まとめ

FPGAはコンフィギュレーションメモリの構造によって、いくつかの種類があります。それらの特長を理解したうえで、お客様が実現されたい機能や製品に最も適したFPGAを選択するのがよいでしょう。 また、ご要望に応じて当社のFPGA商材をご紹介することもできますので、お気軽にお問い合わせください。
さて、次回はFPGA開発フロー(前編)について説明します。ご期待ください。

おすすめリンク