FPGAとは?メリット・デメリットについて解説!
本記事ではFPGAとは何かについて、わかりやすく解説します!
FPGAとよく混同されがちな、マイコン、CPU、CPLD、DSP、GPU、ASIC、ASSPとの違いについてや、メリットデメリットについて詳しく解説します!
FPGAとは?何ができるのか
FPGA とは、「Field Programmable Gate Array」の文字通り、設計者が現場(Field)で論理回路の構成をプログラムできる(Programmable)論理回路(Gate)を集積したデバイスのことです。製造後は回路構成を変更できないLSI(集積回路)に対し、プログラムにより内部の回路構成、つまりデバイスの処理内容を書き換えられることからProgrammable(装置やソフトウェア、システムなどの動作を利用者が必要に応じて変更・自動化できること)と呼ばれます。FPGAはPLD(Programmable Logic Device)の一つです。
FPGAとマイコン、CPU、CPLD、DSP、GPU、ASIC、ASSPとの違い
FPGAの比較対象として、ICであるマイコン、DSP、GPU、ASICやASSPなどがあります。これらは同様に組み込み機器で使用されます。
マイコン
マイコン(マイクロコントローラユニット:MCU、マイクロプロセッサユニット:MPU)とは、自動車、家電製品など、あらゆる電気製品に用いられている最も汎用的な演算用のLSIのことです。機器の制御・センサー信号の処理・画面表示・通信・など様々な処理を実行します。メモリからプログラムを読み出し→データをロード→演算といった処理単位1つ1つを順番に処理するため、多くの演算を行うには時間がかかります。
CPU(MPU)
MPU(Micro-Processing Unit)とは、いわゆるCPUのことで、ソフトウエアプログラムで演算や制御を行うICのことです。絶えず使うメモリをキャッシュメモリとして、多数の高速SRAMを集積しています。ソフトウェアにより非常に柔軟な動作を行えます。
処理性能はカスタム IC や FPGA などに比べかなり低いです。
CPLD
CPLD(Complex Programmable Logic Device)とは、FPGA同様に、製品の購入後にプログラムの書き換えが可能なICのことです。 FPGAとの大きな違いは「ゲートの規模」です。
FPGAは数万ゲート以上もの巨大な規模を持つPLDです。一方、CPLDは数千ゲートほどの集積度です。
また、FPGAはプログラミングされたデザインをSRAM等の揮発性メモリに保存しますが、CPLDは不揮発性メモリに保存します。(FPGAの中にも不揮発性メモリを使用する製品が存在します。)
一般的なFPGAはきわめて柔軟性が高く、自由なデザイン設計が可能です。そのため複雑なデジタル回路設計に向いています。
CPLDもFPGAには劣るものの高度なプログラミングが可能で、FPGAに比べると低価格というメリットがあります。そのため回路規模等、使用条件でFPGAとCPLDのどちらが適しているかは変わってきます。
CPLDとFPGAとの違いについては以下の記事で詳しく解説しておりあますので、こちらもあわせてご覧ください。
>>CPLDとは?CPLD入門、メリット・デメリットについて解説!
DSP
DSP(Digital Signal Processor)とは、マイコンをデジタル信号処理に特化させたデバイスのことです。デジタル信号処理でよく行われる積和演算を高速に実行できる構成となっています。マイコンではプログラム用とデータ用で同じバス(デバイス内部の各回路がデータをやり取りするための共通の経路のこと)を使うことが多いのに対し、DSPではハーバード・アーキテクチャ(データ・バスと命令バスを分離したアーキテクチャ)が用いられることが多く、メモリから高速にデータ転送を行えます。演算を行うコアには1個~複数個の乗算器と加算器が搭載されており、1サイクルで積和演算を1回~数回実行できます。
GPU
GPU(Graphics Processing Unit)とは、3Dグラフィックスなどの画像の描画を行う半導体チップのことです。CPUをサポートし、CPUとGPUを併用することで処理速度が向上します。点の集まりであるコンピュータグラフィックスを効率的に計算するため、1つの演算コアの構造は単純ですが、演算コアの数はマイコンやDSPに比べ非常に多く数百~数千、数万個も備えています。また、コア間のデータを共有するために大量のメモリを備えており、大量のデータに対して並列に単純な積和演算を行うことが得意です。
ICとして、FPGAと比較されることも多いGPUですが、価格に対する処理性能の高さや開発の容易さではGPUが優る一方で、消費電力の少なさ、低レイテンシ(遅延時間の少なさ)や時間の確定性ではFPGAが優れます。
ASIC
ASIC(Application Specific Integrated Circuit)とは、直訳すると、アプリケーション固有のIC、つまり用途や使用する最終製品に特化して製作される専用のカスタムICのことです。ASICの名前は、デバイスの内部構造ではなく、利用用途から由来しています。ASICは利用用途に応じてマイコン、DSP、GPU、メモリ、専用の回路などを内蔵したデバイスとしてカスタマイズできます。
ASSP
ASSP(Application Specific Standard Product)とは、特定用途向けの標準的なICのことで、例えばテレビの画像処理用ICや、無線LAN用ICといったように、各社の最終製品に特定用途で使用されることを目的に設計されたICのことです。ASSPは、特定の顧客向けに設計されていないため、複数の顧客に汎用部品として提供できるメリットがあります。
FPGAのメリット・デメリット
FPGAのメリット
・いつでもプログラムの書き換えが可能
・演算性能が非常に高い
・遅延が少ない
・消費電力量が比較的少ない
FPGAはプログラムにより機能を変更することで、様々な製品に使用できるため、高い汎用性を持ったICと言えます。また、マスクの制作が必要がないため、設計期間は比較的短く、製造コストはかかりません。FPGAは、ICの製造後はもちろんのこと、FPGAを基板に実装した後、最終製品を出荷した後でもプログラムを書き換えられるというメリットがあります。また、汎用的な周辺機器の搭載されたFPGA評価ボードが1枚あれば、内部の論理回路を書き換えることで、様々な用途に活用できます。
最近はFPGAとの比較対象として、汎用コンピューティングに使用されるCPUやGPUが挙げられます。これは並列度を高度に高めることができるFPGAをアクセラレータとして使用することで、演算の高速化、低レイテンシ化を狙ったものです。使用例としては、超高速証券取引(HFT/High Frequency Trade)の自動売買システムや、機械学習・ディープラーニングを使用したweb検索エンジン用サーバーなどがあります。FPGAはCPUやGPUと比較して、一定のプログラムの柔軟性を有しながらも、演算性能が非常に高く、また、消費電力量が少ないというメリットがあります。
FPGAのデメリット
命令ベースのアーキテクチャであるCPUやGPUと比較して、FPGAは「プログラミングや構成がはるかに難しい」というデメリットがあります。
FPGAのプログラミングでは、VHDLやVerilogなどのハードウェア記述言語(HDL)を用いる必要があり、もしくは、高位合成(HLS、C 言語などの動作記述を入力としてハードウェア記述言語を自動生成する技術のこと)でも代替できますが、それでもなお命令ベースのシステムのプログラミングと比べるととプログラミング難易度は高いです。
FPGAの使用例
FPGAは、液晶パネル、オーディオ、コンピュータ、通信機器、ゲーム機、メモリカード、プリンター、LED表示機等様々な電子機器に使われます。
他にも、最近だと、データセンターのコンピューターに使われます。
FPGAのメーカー Xilinx(ザイリンクス)とIntel(旧アルテラ)
FPGAのメーカーには、主に、Xilinx(ザイリンクス、現在のAMD)とIntel(旧Altera)が存在し、Xilinx(AMD)とIntelの2大メーカーだけで80%以上のシェアを誇っています。
Xilinxは、FPGAを世界で初めて開発した企業であり、現在もFPGAで最大手とされているベンダーです。
現在は、2020年にMPU大手の米AMD(Advanced Micro Devices)によって、350億ドル(約3兆6,574億円)という巨額の投資で買収されております。
また、2015年にIntelは当時世界最大のFPGAメーカーであったAlteraを167億ドル(約1兆8000億円)で買収しております。
XilinxとAlteraがどちらも1兆円を超える額で買収されていることからも、FPGAのポテンシャルは高く評価されており、FPGAが今後の半導体市場のキーになると言えます。
まとめ
いかがでしたでしょうか。
FPGAについてご理解いただけましたでしょうか。
組み込み機器・ハードウェア 設計製作.comを運営するアイディ・アイでは、FPGAを用いた組み込み機器の設計開発代行を得意としております。FPGAを用いた組み込み機器の開発及び、その他のICからの代替等のご相談はぜひ当社までお気軽にお申し付けくださいませ。弊社担当よりお返事させて頂きます。
技術情報・技術コラム

- 組み込みボード
ASICとFPGAの違いについて解説!
ASIC(エーシック)とは、ある特定の用途や分野のために使われる電子機器やシステムに搭載される、「大規模集積回路」の総称で、FPGA とは、Field Programmable Gate Arrayの文字通り、設計者がフィールド(現場)で論理回路の構成をプログラムできるゲート(論理回路)を集積したデバイスのことを指します。
当記事では ASICとFPGAについて、それぞれの違いも含めて詳しく説明しています。

- 組み込みボード
FPGAとは?メリット・デメリットについて解説!
本記事ではFPGAとは何かについて、わかりやすく解説します!
FPGAとよく混同されがちな、マイコン、CPU、CPLD、DSP、GPU、ASIC、ASSPとの違いについてや、メリットデメリットについて詳しく解説します!

- 組み込み機器
組み込み機器とは?組み込み機器の例、構成、設計事例、IoTとの関係について解説!
組み込み機器とは、コンピュータを埋め込み、ある特定の機能を実現したシステムを用いて作られた機器のことを言います。当記事では、組み込み機器とは?組み込み機器の例・構成・設計事例・IoTとの関係について詳しく解説します。組み込み機器の基礎知識を知りたい方に是非読んでいただきたい記事です!ぜひご覧下さいませ。

- 組み込み機器
- 組み込みボード
組み込みソフトウェアとは?搭載機器や開発の流れ、開発言語について解説!
組み込みソフトウェアとは、ある特定の機能を実現したシステムを用いて作られた機器に搭載され動作を制御するプログラムのことです。
この記事では、組み込みソフトウェアを搭載している機器の具体例、開発の流れ、そのプログラミング言語を解説しています。組み込みソフトウェアの基礎知識を知りたい方にぜひ読んでいただきたい記事です!ぜひご覧下さいませ。

- 組み込みボード
半導体メモリには、どんなものがあるの? メモリの種類を解説
メモリは、コンピュータを使う際にプログラムやデータを読み込んだり、その記録を保持をする役割を持つ電子部品になります。
当記事では、メモリの種類をDRAMなどの揮発性、PROMなどの不揮発性に分けて詳しく説明しています。

- 組み込みボード
CPLDとは?CPLD入門、メリット・デメリットについて解説!
CPLDとは、製品の購入後にユーザーによるプログラムの書き換えが可能なデバイスのことです。
本記事では、CPLDについての概要、FPGAとの違い、メリットとデメリット、使用例やメーカーについて解説しています。

- 組み込みハードウェア
組み込みハードウェアとは?組み込みハードウェアの種類・設計要素・設計のポイントを解説!
組み込みハードウェアとは、「組み込み機器に使用される、特定用途に限定されたハードウェア」のことです。当記事では、組み込みハードウェアとは?組み込みハードウェアの種類・設計要素・設計のポイントについて詳しく解説します。組み込みハードウェアの基礎知識を知りたい方に是非読んでいただきたい記事です!ぜひご覧下さいませ。