KUMICO

COLUMN

FPGA入門

FPGAとは「Field Programmable Gate Array」の略です。日本語で意訳するならば「ユーザー(エンジニア)がデバイス(半導体/IC)の入手後、開発現場で書き換えることができる論理回路の多数配列(ゲートアレイIC)」ということになります。開発現場でエンジニアが自らプログラミングできるとは、一体どういうことなのでしょうか。また、なぜ現場でプログラム可能である必要があったのでしょうか。初心者にもわかりやすく、まずは概要から解説していきましょう。

FPGAとは

FPGAとは「Field Programmable Gate Array」の略です。日本語で意訳するならば「ユーザー(エンジニア)がデバイス(半導体/IC)の入手後、開発現場で書き換えることができる論理回路の多数配列(ゲートアレイIC)」ということになります。開発現場でエンジニアが自らプログラミングできるとは、一体どういうことなのでしょうか。また、なぜ現場でプログラム可能である必要があったのでしょうか。初心者にもわかりやすく、まずは概要から解説していきましょう。

FPGAはどのようにして生まれたのか

みなさんが日常を過ごしていて感じる周りの環境。例えば、街頭の様々な音、人々の話し声、太陽の光、ネオン、気温、室温などなど…何気なく感じているものを電子の世界で処理するために、数値に変換する仕組みがデジタル回路です。デジタル回路はAND(論理積)、OR(論理和)、NOT(論理反転)の論理回路で構成されています。これらの基本的な回路を組み合わせることで、レジスタ、フリップフロップなどの小規模構成の汎用ロジックICが様々な回路で動作します。
汎用ロジックICは、1960年後半にテキサス・インスツルメント(Texas Instruments)社の技術が幅広く使用されるようになり、世界の半導体業界へ爆発的に広まっていきました。その当時このICが使用された先駆けの製品は電卓でした。電卓をきっかけに、さらなる機能を追加して、電卓以外にも使用したいというニーズが出てきました。その結果、汎用ロジックICは多様多種のものが生まれ、機能も集積されていきました。これが「LSI (Large Scale Integration )」、「VLIS(Very Large Scale Integration)」、「ULSI(Ultra-Large Scale Integration)」などと呼称され、歴史とともにその集積規模が増え、発展していったのです。(※以後代表してLSIと記載)
ところが、この LSI には課題がありました。

①開発に非常に時間がかかる(数年単位)
②開発コストが非常に高価(数千万円~数億円といった初期費用)
③汎用品なのでカスタマイズができない

大きく言うと、この3点です。
時代が進むにつれ、製品のサイクルは非常に速くなり、メーカも次から次へ最新の製品を出さなくてはならなくなりました。また、他社と差別化を明確に出していかなければ製品が売れないなど、半導体の進歩とともに世の中の市場も変動していったのです。

この時流を見据えていたのか、ニーズにこたえる半導体の開発が同時期に進んでいきました。1970 年代末には「PLD (Programmable Logic Device)」、1980 年代には「CPLD ( Complex Programmable Logic Device)」が開発され、汎用ロジック IC 小規模相当の回路を実装できるようになりました。
これが、本コラムの冒頭で説明した「ユーザーがデバイスの入手後、開発現場で書き換えることができる論理回路の多数配列」、つまりプログラマブルロジックデバイスです。
こちらも世の中の市場ニーズの多様化に伴い、PLDやCPLDよりも大規模のロジック実装ができるものが望まれるようになりました。そして、1980年代半ばに初の「FPGA(Field Programmable Gate Array)」が登場することになります。

半導体の中のFPGA

従来のLSIとは異なり、ユーザーが自分で回路を作れるように最低限の機能だけを実装したプログラマブルロジックデバイス。これは、開発のスピードを上げつつコストを抑え、さらにはオリジナリティ創出実現のための柔軟なカスタマイズ性をユーザーに与えました。
では、FPGAは半導体の中でどのような存在なのでしょうか。
半導体は、実際の開発プロセスで2種類に分けられます。「特定の用途向けに設計されたデバイス」と「ユーザーが設計する設計デバイス(カスタムデバイス)」です。大まかな違いは下記を参照してください。

①特定の用途向けに設計されたデバイス

半導体製造メーカが、ある特定のアプリケーションや用途を想定して製造するデバイス。メーカがあらかじめ回路構成を決めて生産するため、ユーザーはカスタムできない。多くのデバイスは数量が多く出るアプリケーションを想定しており、大量生産するためユーザーが購入する際の単価は低い。

②ユーザが設計する設計デバイス(カスタムデバイス)

目的や必要性に合わせてユーザー自身で開発することを目的に製造されたデバイス。別の言い方をすれば製造された時点では用途が決まっていない汎用品だが、その手でカスタマイズを実行することで独自のデバイスとなる。「特定の用途向けに設計されたデバイス」に比べてさほど数量が出る想定ではなく、ユーザーによるカスタム前提となっており、購入する際の単価は比較的高価である。

FPGAは、上記のうち「②ユーザーが設計する設計デバイス(カスタムデバイス)」に該当します。またPLD、CPLDも同様です。ユーザー自身の手で回路実装ができるように、最低限の回路を装置に実装してあるので、ユーザーは内部のハードウェア構成を自由に、またいつでも何度でも変更できます。効率的で高いフレキシビリティがFPGAの一番の特徴です。

なぜFPGAが注目されたのか

「ユーザーが設計する設計デバイス(カスタムデバイス)」には、もう一つ種類があります。それは「ASIC(Application Specific IC)」です。「特定の用途向けに設計されたデバイス」では実現できないため、【カスタムが必要】という点ではFPGAと同じですが、両者を比べると以下の違いがあります。

【FPGA】

アプリケーション用回路を製造済みデバイスにプログラムするため回路変更が簡単。

【ASIC】

半導体製造メーカが生産したデバイスを使用して、特定のアプリケーション向けのカスタムデバイスをユーザーが開発する。その回路をいつでも何度でも変更できる。

このように違いが見える両者ですが、実はASICとFPGAの開発手法には共通点があります。
標準的な開発フローの場合、要求分析→要件定義→基本設計・詳細設計→RTL設計(Verilog、VHDLなどを用いてコーディング) →論理合成→動作シミュレーション→配置配線、という順番が多いかと思いますが、ここまではほぼ同じなのです。しかしながら上記工程後の工程が大きく異なります。詳しい説明は以下のとおりです。

・ASICの場合

先の開発フローを通じて最終的な動作確認を終えた設計データは、半導体製造工場(ファウンドリ)で次の工程へ移ります。まずは配置配線に合わせて実際の半導体のどこに何を置くのかを決めるマスクを作ります。このマスク上のパターンをウエハーに露光すると、ROMとして半導体が製造されるのです。半導体が出来上がってくると、設計したとおりに動作するかどうかのテストが実施されます。

ASICの開発フローは数年かかるのが一般的で、またその開発コストも数千万から数億といった膨大な金額となります。万が一テストでエラーが見つかった、デバイス出荷後に不具合が見つかってしまった…となると、ASIC は後から回路を変更することはできない構造なので、今まで費やした期間・コストは無駄になります。それどころか、追加で莫大なコストがかかることになってしまいます。

・FPGAの場合

FPGAの場合は、後工程としてデバイスの製造を行う必要がありません。先に述べた通り、ユーザーは半導体製造メーカから製造済みのデバイスを供給されており、それ向けの開発を行っています。動作確認が終わると、設計データはすぐに実際のFPGA上で回路を動作させることができ、机上やシミュレーション上では見つからない繊細な問題もいち早く発見することが可能です。またそれを修正し、何度も試すことができます。なぜなら、FPGAは起動時にFLASH ROMからその回路データを読み込み、FPGA内の回路を構成するという特性があるためです。開発段階のタイミングでも何度でもトライアルできますし、製品出荷後の検証で不具合が見つかっても、FLASH ROMに保存されている回路データを更新すれば改修することができるのです。

FPGAの場合以前までは、製品出荷時の一台当たりの単価や性能面で優れているASICの利用が多かったのですが、最近では技術進化に伴い、FPGAの性能面はASICに追いつく勢いで向上していますし、比較的安価にもなってきています。また「すぐに試せる」、「何度でも書き換え可能」というFPGAの柔軟性が、現在の製品開発スピードやニーズに合致して、FPGAを導入する動きも増えています。

FPGAの進化過程と機能

誕生以来、さまざまな利点をもって価値を提供し続けてきたFPGA。具体的にはどれくらいの進化を遂げてきたのでしょうか。また、機能はどのようなものを持っているのでしょうか。

FPGAの進化過程

FPGAを提供するメーカは複数存在しますが、大きくシェアを取っているメーカは「インテル(Intel) ※旧アルテラ(ALTERA)」社と「ザイリンクス(XILINX)」社です。(ABC順で掲載)
両社とも1980年代よりFPGAの最初の開発をスタートしており、近年に至るこの30年間以上の間に性能、機能、デバイス価格といったあらゆる面で劇的な変化を遂げてきました。
「ザイリンクス(XILINX)」社では、FPGAは2010年で集積度600 倍以上、速度100 倍以上まで向上、デバイス価格は1000分の1 程度に低減、電力は150分の1に低減と、圧倒的に進化しています。

「インテル(Intel) ※旧アルテラ(ALTERA)」社でも同様にその集積度、消費電力、デバイス価格は進化していますが、先に述べたスペックとは別の観点からその進化を見ると、ロジック数は100倍以上、内部動作クロック、高速トランシーバのデータ性能も5~10倍向上しています。中でも特徴的なのが、2015年に「インテル(Intel)」社が「アルテラ(ALTERA)」社を買収したことによる将来のFPGAです。買収を発表した2013年には、インテル14nm トライゲート・プロセスでFPGAの製造をしていくと発表しており、さらなるFPGAの進化が期待されています。

FPGAデバイス自体の進化だけでなく、それを扱うユーザーへのフォローも進化しています。例えば開発ソフトウェアの高機能化、IP コアの充実、評価環境(ボード・キット)など、ユーザーによる開発が少しでも短期間で実現できるよう、こちらも進化し続けています。

FPGAの機能

「インテル(Intel) ※旧アルテラ(ALTERA)」社と「ザイリンクス(XILINX)」社には、どのようなFPGA製品があるのでしょうか。まずは「インテル(Intel) ※旧アルテラ(ALTERA)」社製品の4シリーズの製品を一覧で見てみましょう。

【Stratixシリーズ】

高帯域幅と高集積度が特徴で回路規模が大きく、高速トランシーバも搭載しているため高速処理を求められるハイエンドのアプリケーションに最適なデバイスです。

【Arriaシリーズ】

性能、消費電力、価格において、StratixシリーズとCycloneシリーズの中間にポジショニングするミドルエンドのデバイスです。ARM Cortex-A9 MPCore™が搭載したラインナップも展開されています。

ユーザが求めやすい価格に設定されているデバイスです。低消費電力も実現しており、従来ASICやASSPで利用されていた既存製品の置き換えも行われ、量産もされています。ARM Cortex-A9 MPCore™が搭載したラインナップも展開されています。

ユーザが求めやすい価格で設定されているデバイスです。低消費電力も実現しており従来ASICやASSPで利用されていた製品の置き換えも行われ、量産もされています。ARM Cortex-A9 MPCore™が搭載したラインナップも展開されています。

【MAX10 シリーズ】

MAX5シリーズはCPLDベースのデバイスでしたが、MAX10になりFPGAベースとなりました。Cycloneシリーズよりも省資源のシステムで利用することができる、最も低コストなデバイスです。

これら「インテル(Intel) ※旧アルテラ(ALTERA)」社のFPGAは、オンチップ メモリ、デジタル信号処理(DSP)ブロック、高速トランシーバー、高速 I/O ピン、パーシャルコンフィグレーション などの機能を搭載しており、量産型から最先端製品まで、さまざまなアプリケーションに幅広く対応しています。
FPGA開発をサポートするツールとして、Quatus、QsysといったFPGA開発ツールや、MegaCOREといった「インテル(Intel) ※旧アルテラ(ALTERA)」社製のIPコアを提供しています。
また、上記FPGA以外にもコンフィグレーション・デバイスのEPC、EPCS、EPCQ、電源デバイスのEnpirionも提供しており、FPGAシステムに必要なデバイスは一貫して提供しています。

次に「ザイリンクス(XILINX)」社製品を見ていきましょう。ザイリンクス(XILINX)社にはグレードの異なる5つのFPGAシリーズがあります。

【Virtexシリーズ】

高帯域幅、高集積度、最大容量のデバイスで、400Gアプリケーションといった高速伝送が必要なアプリケーションなどに適したハイエンドデバイスです。

【Airtixシリーズ】

VirtexシリーズとKitenxシリーズの中間のミドルエンドのデバイスです。コストを抑えつつ性能や省電力を実現しています。

【Kintexシリーズ】

低価格ながらも性能面の向上や低消費電力を実現したローエンドのデバイスです。製品出荷数が多いアプリケーションなどに最適で、量産もされています。

【Spartanシリーズ】

Kintexシリーズ同様、低価格ながらも性能面の向上や低消費電力を実現したローエンドのデバイスです。Spartanの後継デバイスがKitenxというようなイメージになります。

【Zynqシリーズ】

ARMプロセッサが搭載されたFPGAデバイスラインナップです。Zynq-7000シリーズ、Zynq UltraScale+シリーズが展開されています。

ARMプロセッサは2種類あり、後尾に「SoC」と付与されているデバイスはARM Cortex-A9 MPCore™が搭載、「MPSoC」と付与されているデバイスはARM Cortex-A53 MPCore、ARM Cortex-R5 MPCore、さらにはGPUのARM Mali™-400 MP2も搭載、しH.264-H.265 をサポートするビデオコーデック処理が可能なハイエンドマルチメディアデバイスとして提供されています。

これら「ザイリンクス(XILINX)」社製品では、コネクティビティ、メモリ インターフェイス、デジタル信号処理、プロセッサソリューションの面でさまざまな工夫が施されており、多様なアプリケーションで利用されています。
FPGA開発をサポートするツールとしてISE、VivadoといったFPGA開発ツールや、LogiCOREといった「ザイリンクス(XILINX)」社製のIPコアを提供しています。

広がるFPGAの使用範囲

FPGAは、これまで多く利用されていた通信、ネットワーク機器や産業機器だけでなく、自動車や放送機器、OA機器、家電などにも多く活用されるようになりました。これは、FPGA自体の性能進化とともに価格が下がりASIC、ASSPを利用していたユーザーが製品に採用しやすくなったことが一因です。
製品リリースのサイクルが非常に早くなっている昨今の市場から、FPGA評価ボード(キット)もメーカーから販売されています。開発しながら仕様も決めつつ(変更しつつ)、ということが開発に求められており、さらに開発期間、コスト、リスクを削減することが求められています。それに対応できるデバイスこそが、「書き換え可能機能」というメリットを持つFPGAなのです。

進化を続けるFPGA

昨今のFPGAのトレンドは、CPUコアを内蔵した「SoC FPGA」です。これまでFPGAはどちらかというとASICやASSPであるCPUの補助処理や、高速、多量な処理を行うコンパニオンチップという位置づけで、CPUにはできない部分をハードウェアで処理するというものでした。しかしながら、この2チップ構成にすると、CPUとFPGA間のインタフェースを設計する必要がある、基板の実装面積が増えてしまうなどの課題もありました。また、マーケットのニーズからハードウェアだけで表現できない複雑なアプリケーション(例えばGUIや様々なネットークプロトコルなど)を、ある程度の性能を保有したCPU上のソフトウェアで実装する必要があり、満を持して「SoC FPGA」が登場したのです。これはARMを搭載したFPGAで、「インテル(Intel) ※旧アルテラ(ALTERA)」社の製品では「Cyclone V SoC」や「Arria® 10 SoC」、「ザイリンクス(XILINX)」社の製品では「Zynq-7000 SoC」や「Zynq UltraScale+ MPSoC」があります。

FPGAはこれからどのように発展していくのでしょうか?

これまでFPGAは、組込機械の制御向けのデバイスとして活用されてきました。しかし近年、FPGAの大容量化、高性能化が進むにつれ、制御ではなく演算を目的とした用途へのニーズが高まりつつあります。
また、IoTやクラウドの発展に伴い、大量の情報からの認識や解析の需要が増えていく中で、性能進化が頭打ちになっているCPUに加えFPGAを採用する動きもでてきました。
特にFPGAは並列処理が得意なため、Deep Learning(ディープラーニング)の推論処理をはじめ、大量データ処理への活用が進んでいます。既にGoogleやMicrosoft、Baiduなどが自社クラウドサービスに導入したり、Amazon Web Serviceがユーザー設計によるFPGAデザインをデプロイ可能なEC2 F1 Instanceをサービス化するなど、データセンターとFPGAの組み合わせ(接続)が注目を浴びています。
今後FPGAは、その特性を活かした従来の枠に留まらない利用方法が生み出され、様々な領域での活用が広がっていくでしょう。

本コラムやサイトに関すること、外部イベントその他、資料請求などは以下のバナーより気軽にお問い合わせください。

お問い合わせはこちら

個別相談も承っております。下記よりお申し込みください。

個別相談会申し込み

関連記事

まこちゃんブログ

NEWS

MORE  

PARTNER

  • Intel
  • Xilinx

お探しの組み込み製品はキーワードで検索!