KUMICO

COLUMN

FPGAとは?その仕組みやメリット、評価ボードなど技術者目線の基礎知識【入門編】

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

FPGAとは

FPGAとは、「Field Programmable Gate Array(フィールド・プログラマブル・ゲート・アレイ)」の略称で、ユーザーが出荷後に自由に論理回路構成を変更できる半導体デバイスです。
一般的な集積回路(IC)は、製造時に論理回路パターンが確定しており、あとから変更できません。これに対し、FPGAはエンジニアや設計者が開発現場(フィールド)で必要に応じて論理回路の構成をプログラムできるため、開発初期の仕様変更や製品カスタマイズに柔軟に対応できるのが大きな特徴です。FPGAは、内部に多数の論理ブロック(LUT=ルックアップテーブル、フリップフロップなど)と、それらを結ぶ配線リソースを持っています。これらを組み合わせることで、ユーザーは独自のデジタル回路をソフトウェア的に構築することが可能です。加えて、クロック管理回路、メモリブロック、DSP(デジタル信号処理)ブロック、シリアルトランシーバなど、高度な機能を持つハードIPも搭載されているため、単純な論理回路設計だけでなく、画像処理・AI推論・通信プロトコル制御・リアルタイム制御といった複雑なシステム構築にも適しています。近年では、CPUコアとFPGAを一体化した「SoC FPGA」も登場しており、ソフトウェアとハードウェアの協調設計による高性能システム開発が注目を集めています。FPGAは「自社製品にどれだけの柔軟性や高性能化が必要か」を考えるうえで、重要な選択肢となるデバイスです

FPGAの基本構造と仕組み

FPGA(Field Programmable Gate Array)の内部は、大きく分けて3つの要素から構成されています。これらの要素が互いに連携することで、ユーザーが自由に回路を設計・実装できる仕組みになっています。

論理ブロック(CLB: Configurable Logic Block)

FPGAの中核をなすのが、論理ブロック(CLB)です。
各CLBには、基本的な論理演算を行うLUT(ルックアップテーブル)、演算結果を一時的に保持するフリップフロップ、簡単な演算処理用の加算器などが内蔵されています。
ユーザーは、これらを組み合わせて加算器・減算器・カウンタ・ステートマシンなど様々な機能ブロックを構築します。

配線リソース(Routing)

CLB同士をつなぐのが、配線リソースです。FPGA内には、膨大な数の金属配線とスイッチマトリクス(切り替え回路)が配置されており、これらを設定することで、各論理ブロックを好きなように接続できます。この柔軟な配線構成のおかげで、ユーザーは回路構成を自由自在に再設計できるようになっています。

入出力ブロック(IOB: Input/Output Block)

外部のデバイスや回路と信号をやり取りするために、FPGAはIOB(入出力ブロック)を持っています。IOBは、各種インターフェース(LVDS、LVCMOS、SSTLなど)に対応しており、FPGAをシステムの中心として使うために不可欠な役割を果たします。
近年のFPGAでは、単純なGPIOだけでなく、高速シリアルトランシーバ(SerDes)を搭載することで、10Gbpsを超える高速通信にも対応できる製品が一般的になっています。
このように、FPGAは論理ブロック+配線+入出力というシンプルな基本構成を持ちながらも、それぞれが高い柔軟性を備えることで、幅広いアプリケーションに対応できる強力なデバイスとなっています。

FPGAにおけるコンフィギュレーション

FPGA(Field Programmable Gate Array)は、ユーザーが必要な論理回路設計(論理構成)を記述し、それをFPGAに書き込んで初めて動作するため、出荷時には基本的に中身が空(未設定)のデバイスです。

この回路情報をFPGA内部に読み込んで動作を定義するプロセスを
「コンフィギュレーション(Configuration)」と呼びます。このコンフィギュレーションの中で、「どのロジックブロックをどう結線するか」や「どの演算をどこで実行するか」などの設定情報(ビットストリーム)をFPGAに読み込ませることになります。

コンフィギュレーション方式の種類と違い

FPGAには、コンフィギュレーションデータをどのように記憶・保持・読み込みするかによって、いくつかの方式がありますが、ここでは主要な方式であるSRAM方式とフラッシュ方式、Antifuse方式をご紹介します。

SRAM方式FPGA(揮発性)

  • 内部メモリ: SRAMセル(揮発性)

  • 起動時動作: 外部EEPROMやフラッシュROMからビットストリームをロード

  • メリット: 高速・高密度・設計変更柔軟

  • デメリット: 外部メモリ必須、起動時間必要、セキュリティ対策要

  • 主な用途: 通信機器、データセンター、大規模画像処理、産業ハイエンド機器

フラッシュ方式FPGA(不揮発性)

  • 内部メモリ: フラッシュメモリセル(不揮発性)

  • 起動時動作: 内蔵フラッシュから自動ロード、即起動可能

  • メリット: ファストブート、外付けメモリ不要、セキュリティ強い

  • デメリット: 書き換え耐性制限、ロジック密度や速度にやや制約

  • 主な用途: 産業機器、IoTエッジデバイス、車載制御、医療機器

Antifuse方式FPGA(ワンタイムプログラマブル)

  • 内部メモリ: Antifuse(書き込み時に絶縁膜を破壊して配線形成)

  • 起動時動作: 電源投入即動作(書き換え不可)

  • メリット: 超高信頼性・セキュリティ最強(軍事・航空宇宙向き)

  • デメリット: 開発難易度高、再プログラム不可

  • 主な用途: 衛星、軍事システム、放射線環境対応システム

FPGA開発に必要なツール

FPGA開発に必要なツール

FPGA評価ボード、FPGA開発ボード

FPGA開発においては、設計検証やシステム試作の初期段階で評価ボードや開発キットを活用するのが一般的です。市場には主要FPGAメーカー各社から、用途特化型や汎用型など、多様な開発ボードが提供されており、富士ソフトでも、主要メーカーのFPGAデバイスを搭載した評価ボードのラインナップを取り揃えており、各種開発ニーズに対応しています。

ボード選定にあたっては、搭載されるFPGAデバイスのシリーズ・グレード、実装されているIOポート数および通信インターフェース(Ethernet、PCIe、USB等)の仕様、ARMコアを内蔵したSoC FPGAの採用有無、さらに対象用途(教育用途、PoC(Proof of Concept)試作向け、量産設計向け)の違いを総合的に評価することが重要です。

特に、量産前提の設計検証フェーズでは、量産品デバイスとの互換性や、将来的な拡張性・アップグレード対応可能性も考慮したボード選定が求められます。
富士ソフトでは、お客様のご要件に応じたFPGA開発ボード・評価ボードの選定からお手伝いさせていただいております。開発会社でもある富士ソフトなら、現場の事情を踏まえたご提案はもちろん、FPGA設計や開発まで含めたハードウェア開発、ソフトウェア開発も対応可能です。

プログラマ(JTAGケーブル)

FPGAに設計データ(ビットストリーム)を書き込むためには、JTAGインターフェースを使ったプログラマ(ケーブル)が必要です。多くの開発ボードにはプログラマ機能が組み込まれていますが、量産デバイスでは専用ケーブルを使うことが一般的です。

EDAツール

FPGA開発において、設計・検証・実装までを一貫して行うためのEDAツール(Electronic Design Automationツール)をご紹介します。

Vivado Design Suite(AMD/Xilinx)

AMD(旧Xilinx)製FPGA向けの統合開発環境。論理合成、配置配線、ビットストリーム生成までをカバー。

  • 特徴

高度な最適化機能、IPカタログ機能、クロック制御機能が充実。
Vivado HLSを使えば、C言語からの高位合成も可能。

  • 対象デバイス

Zynqシリーズ、Virtex、Kintex、Artix、Versalなど

Intel Quartus Prime(altera An Intel Company)

Altera製FPGA向けの統合開発環境。GUIベースでの論理設計、タイミング解析、デバイスプログラミングに対応。

  • 特徴

IP統合ツール(Platform Designer)を備え、複雑なシステム設計にも対応。
 C言語ベース開発向けにOpenCLもサポート。

  • 対象デバイス

Stratix、Arria、Cyclone、Agilexシリーズ

Lattice Radiant / Diamond

Lattice Semiconductor社製の中小規模FPGA向け開発環境。

  • 特徴

軽量なツール構成で、リソースの限られた環境でも開発可能。
小型機器や低消費電力デバイス開発に向いている。

  • 対象デバイス

iCE40、ECP5、MachXO3など

シミュレーション・検証環境

FPGA設計では、回路設計ミスがそのままハードウェア不具合に直結するため、設計初期から徹底した論理シミュレーションとタイミング検証を実施することが極めて重要です。

現在では、各種EDAベンダーから高機能なシミュレーションツールがリリースされていますが、開発現場では用途やデバイスに応じた適切なツール選定が求められます。

代表的なシミュレーションツールとしては、Intel系FPGAに推奨されるModelSim、AMD/Xilinx系デバイスに標準搭載されるVivado Simulator、さらに大規模設計・高度検証向けのMentor Graphics製Questa Advanced Simulatorなどがあります。

シミュレーション・検証フェーズでは、RTLレベルでの論理動作確認(論理シミュレーション)、クロック制約下でのタイミング整合性検証(タイミングシミュレーション)、さらには設計検証網羅率を定量的に測定するためのコードカバレッジ分析など、多角的なチェックが求められます。

FPGAはどのようにして生まれたのか、その歴史と発展

FPGAはどのようにして生まれたのか、その歴史と発展

みなさんが日常を過ごしていて感じる周りの環境。例えば、街頭の様々な音、人々の話し声、太陽の光、ネオン、気温、室温などなど…何気なく感じているものを電子の世界で処理するために、数値に変換する仕組みがデジタル回路です。

デジタル回路はAND(論理積)、OR(論理和)、NOT(論理反転)、XOR(排他的論理和)、NOR(否定論理和)などの論理回路で構成されています。これらの基本的な回路を組み合わせることで、レジスタ、フリップフロップなどの小規模構成の汎用ロジックIC(集積回路)が様々な回路で動作します。

汎用ロジックIC(集積回路)は、1960年後半にテキサス・インスツルメント(Texas Instruments)社の技術が幅広く使用されるようになり、世界の半導体業界へ爆発的に広まっていきました。その当時このIC(集積回路)が使用された先駆けの製品は電卓でした。電卓をきっかけに、さらなる機能を追加して、電卓以外にも使用したいというニーズが出てきました。その結果、汎用ロジックICは多様多種のものが生まれ、機能も集積されていきました。

これが「LSI (大規模集積回路)」、「VLIS(超大規模集積回路)」、「ULSI(極超大規模集積回路)」などと呼称され、歴史とともにその集積規模が増え、発展していきました。ただこのLSI (大規模集積回路) には、

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

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

しかし、その当時は、カスタムLSIを作るにはASIC(Application Specific Integrated Circuit)を開発するしかなく、製造コストや開発期間が非常に高くついていました。この課題を解決するために、まず登場したのがPLD(Programmable Logic Device)やCPLD(Complex Programmable Logic Device)と呼ばれる簡易プログラマブルデバイスです。

これにより、汎用ロジック IC 小規模相当の回路を実装できるようになりましたが、これらは規模や柔軟性に限界があり、より大規模な回路を自由に構成できる新しいデバイスが求められていました。

そこで、1980年代後半に登場したのが、FPGAであり、最初にこの技術を商業化したのは、アメリカのXilinx社(現在のAMD傘下)です

FPGAのメリットとデメリット

FPGAのメリットとデメリット

FPGAは、ハードウェア開発において非常に強力な選択肢となり得ますが、一方で用途によっては向かないケースも存在します。

FPGAのメリット

高い柔軟性と再構成性

FPGAは、ハードウェアロジックをソフトウェア的に自由に構成できる点が最大の特長です。開発後も仕様変更に柔軟に対応できるため、要件が流動的なプロジェクトや、複数製品ラインで設計資産を流用したい場合に非常に有効です。

並列処理性能の高さ

FPGAは、CPUやGPUのような順次実行ではなく、真の並列処理や並列計算が可能です。複数の信号処理や演算タスクを同時に、かつ低遅延で処理できるため、リアルタイム制御、画像処理、通信プロトコル変換など高スループットが求められるアプリケーションで強みを発揮します。

消費電力などハードウェアレベルの最適化が可能

論理回路の設計次第で、特定の演算や信号処理を極限まで専用最適化することができるため、CPUベースのシステムに比べて、消費電力を抑えながら高性能を引き出すことも可能です。特に、並列処理が必要なケースでは、FPGAを使うことで汎用プロセッサよりも効率的に動作することが期待できます。

ASICとの比較で開発期間・コストを大幅に削減

カスタムLSI(ASIC)を開発するには、数千万円単位のマスク費用と1年以上の開発期間がかかります。一方、FPGAは市販品を活用してすぐに開発をスタートできるため、試作・PoC(概念実証)段階では圧倒的なコストメリットを享受できます。

FPGAのデメリット

開発の難易度が高い

FPGA開発は、ソフトウェア開発とは異なり、回路設計やタイミング制約といったハードウェア特有の知識が必要です。単なるプログラミングではなく、VHDLやVerilogといったハードウェア記述言語(HDL)を使って、回路そのものを設計する必要があります。

また、近年普及している高位合成(HLS)では、C/C++ベースで開発が可能ですが、それでもハードウェア動作に対する深い理解が求められます。

このため、設計ミスによる動作不良やタイミングエラーのリスクがあり、高い専門スキルを持ったエンジニアの確保が課題となる場合もあります。

消費電力に関する注意点

FPGAは柔軟性と並列処理性能を持つ一方で、特定用途向けに最適化されたASICに比べると、消費電力が大きくなる傾向があります。特に、バッテリー駆動デバイスや超低消費電力が必須な用途では、消費電力設計に細心の注意が必要です。

一方で、汎用プロセッサやマイコンと比較した場合、FPGAを用いて専用回路を構築すれば、より効率的かつ低消費電力で処理を実現できるケースも存在します。用途と設計次第でメリットにもデメリットにもなり得るため、事前の要件分析が重要です。

単体コストが高い

量産規模が小さい場合、FPGAの市販チップを使うことでコストを抑えられますが、量産規模が数万台以上に達すると、ASIC化による単体コスト削減効果の方が大きくなるため、製品ライフサイクルや市場規模を考慮した選択が必要です。

設計ツールやライセンス費用が発生する

FPGA開発には、専用の開発ツール(例:Vivado、Quartus Primeなど)が必要です。これらは無償版もありますが、大規模設計や高度な最適化機能を利用する場合は、有償ライセンスが必要となり、開発コストが増加する可能性があります。導入前に、ツールコストも含めたトータルコストシミュレーションをおこなうことが重要です。

FPGAと集積回路との比較

FPGAと集積回路との比較
つづいて、マイコン(CPU、MPU)、ASIC、CPLD、GPUとFPGAとの違いについて整理します。

FPGAとマイコン(MCU、MPU)の違い

処理方式

マイコン(マイクロコントローラユニット/MCU、マイクロプロセッサユニット/MPU)は、内蔵CPUで命令を順次実行して動作します。一方、FPGAは、回路レベルで並列処理を実行できるため、複数のタスクを同時にリアルタイムで処理することが得意です。

柔軟性

マイコンは内部アーキテクチャ(CPUコア、周辺回路)が固定されていますが、FPGAは独自のロジック回路を設計できるため、製品ごとに最適化された仕様に柔軟に対応可能です。

汎用処理・簡易制御はマイコン向きで、並列・リアルタイム処理の場合、FPGAが有利になります。

FPGAとGPUの違い

GPUとは、Graphics Processing Unitの略で、もともと画像処理や映像のために開発された半導体チップですが、現在では機械学習や科学計算、暗号処理など、並列処理が必要な多くの分野で活用されています。GPU(Graphics Processing Unit)は膨大なデータに対する並列計算能力に優れており、特に浮動小数点演算を得意とします。

処理の仕組み

GPU(Graphics Processing Unit)は、数千個以上の小規模な演算ユニット(コア)を持ち、大量データの同種演算(SIMD型並列処理)を高速にこなすために最適化されていますが、FPGAは、ユーザーが設計した任意の処理ロジックを回路化して並列動作させるため、タスクごとにきめ細かい並列処理をカスタマイズできる点が大きな違いです。

柔軟性と性能特性

GPU(Graphics Processing Unit)は、画像処理やディープラーニング推論など定型化された大規模並列演算に非常に強いですが、プロトコル制御、リアルタイム制御、信号処理など、非定型な複雑処理にはあまり向きません。FPGAは、自由にロジックを構成できるため、用途に最適化した並列処理設計が可能です。そのため、通信機器・エッジAI推論・産業用リアルタイム制御といった領域で強みを発揮します。

コスト面の違い

GPUは、コンシューマー向けからエンタープライズ向けまで幅広い製品ラインナップが存在し、量産効果により比較的安価な製品も多く流通しており、処理能力におけるコストパフォーマンスは高いです。また、FPGAのようにHDL(ハードウェア記述言語)などが不要のため開発コストも比較的抑えられます。その一方で、FPGAは消費電力が少ないと言われています。

FPGAとASICの違い

開発期間・コスト

ASIC(Application Specific Integrated Circuit)は、特定用途に特化したチップを製造するため、高性能・低消費電力を実現できますが、開発コストと期間が非常に大きいです。FPGAは、市販チップで迅速に開発できるため、試作や少量生産には有利です。

性能・電力効率

ASICは用途特化により、消費電力・性能ともに最適化されています。一方、FPGAは柔軟性を持つ代わりに、ASICより消費電力や動作速度では劣るケースがあります。

大量生産・超高性能を求める場合は、ASICがよく、スピード重視・仕様変更が多い場合は、FPGAが適しています。

FPGAとASSPの違い

ASSPは、Application Specific Standard Productの略で、特定の市場セグメント向けに設計された標準的なICです。ASICほど個別用途に特化していないものの、特定の機能に特化した設計がなされています。

開発自由度・柔軟性の違い

FPGAは、ユーザー自身がハードウェアロジックを自由に設計・変更できるデバイスで、使い方に応じて、後から機能追加や仕様変更にも対応可能ですが、ASSPは、特定用途向けにあらかじめメーカーが設計・量産している固定機能型ICです。ASSPは、決まった機能しか持たず、ユーザー側で変更や拡張はできません。

製品コストと開発期間の違い

FPGAは設計自由度が高い反面、デバイス単価が比較的高くなりがちで、開発にはHDL(ハードウェア記述言語)による設計・検証作業が必要となり、開発リソース・期間もそれなりに必要ですが、ASSPは、既製品をそのまま利用できるため、開発工数を大幅に削減できます。デバイス単価も量産効果により安価な場合が多く、トータルコストも抑えやすいです。

開発後の変更・拡張性

FPGAなら、製品出荷後でもフィールドアップデート(再コンフィギュレーション)が可能です。要件変更やバグ修正にも柔軟に対応できますが、ASSPは、チップ機能自体は変更できないため、仕様変更が発生すると基板設計のやり直しが必要になるリスクがあります。

FPGAとCPLDの違い

さきほども触れたCPLDは、Complex Programmable Logic Deviceの略で、FPGAと同様、プログラム可能な論理デバイスですが、構造に大きな違いがあります。CPLDはマクロセルベースの構造を採用しており、小規模な論理回路の実装に向いています。

規模と柔軟性

CPLD(Complex Programmable Logic Device)は、CPLDはリソースが少ないため、小規模な固定ロジック設計に向いています。FPGAはより多くのリソースを持ち、複雑な演算やインターフェース制御にも対応可能です。

開発難易度

CPLDは構成がシンプルなため、設計・デバッグが容易です。またFPGAより安価で入手できます。FPGAは、タイミング制御や複雑な配線設計が必要になり、開発難易度は上がります。

簡単な制御回路の場合は、CPLDがよく、高速・高機能な処理が必要な場合は、FPGAを選ぶことになります。

FPGAとDSPの違い

DSP(Digital Signal Processor)は、音声や画像、センサー信号などのデジタル信号を効率的に処理するために設計されたプロセッサです。特に高速な積和演算に特化しており、リアルタイムでの信号処理が求められるアプリケーションで広く使われています。

処理方式とアーキテクチャの違い

FPGAは、ユーザーが任意のハードウェアロジック(並列回路)を設計し、並列処理によって信号処理や制御処理を行うデバイスであるのに対して、DSPは、専用命令セットと演算ユニット(MAC演算器など)を持つプロセッサです。基本的には逐次処理(シリアル演算)を高速に実行します。

開発自由度・柔軟性の違い

FPGAでは、回路そのものを設計するため、演算パイプラインやパラレル処理を用途に合わせて自由に最適化できますが、DSPは、あらかじめ用意された命令セット上でプログラムを記述するため、アーキテクチャの制約内でしか柔軟性は持てません。

性能特性(並列性・リアルタイム性)の違い

FPGAは、並列処理性能が非常に高く、リアルタイム応答性にも優れ、レイテンシ(遅延)を極小化できます。DSPは、クロック周波数を高めた逐次演算で高速化を図りますが、並列性ではFPGAに劣り、大量並列演算には向きません。

開発期間・難易度の違い

FPGA開発には、ハードウェア記述言語(VHDL/Verilog)による回路設計スキルが必要で、開発難易度・期間は比較的高めです。DSPは、C言語や専用ライブラリ(例えばTIのDSPLibなど)を使ったプログラミングが中心なので、FPGAに比べて開発期間は短く、習得ハードルも低めです。

コスト・消費電力の違い

FPGAは、設計最適化により消費電力を抑えられるものの、初期コスト(デバイス単価・開発工数)が高くなりがちです。DSPは、量産効果による安価な製品が多く、小規模な信号処理タスクであれば、コスト・消費電力の両面で効率的です。

FPGAの主な用途・活用例

FPGAの主な用途・活用例
FPGAは、その柔軟なハードウェア構成能力と高い並列処理性能を活かして、さまざまな分野で使われています。ここでは、代表的な活用分野と、なぜFPGAがその分野で選ばれているのか、具体例とともに紹介します。

通信機器分野

  • 5G基地局の信号処理・高速プロトコル変換

  • ネットワーク機器(ルー タ、スイッチ)のデータパス処理

リアルタイムで高速な信号処理が必要な通信分野では、回路レベルでカスタマイズできるため、通信規格の進化に伴う仕様変更にも柔軟に対応できるため拡張性、将来性に優れています。

自動車分野

  • ADAS(先進運転支援システム)のセンサー統合処理

  • EV制御ユニット、電力変換システム

自動車分野では、リアルタイム応答と高い信頼性(機能安全対応)が要求されますが、FPGAなら、カメラやLiDARなどの複数センサー情報を並列かつ即時に統合処理でき、かつ設計変更にも柔軟に対応可能です。

医療機器分野

  • ポータブル超音波診断装置

  • CT/MRI画像処理システム

  • 患者モニタリング機器

医療現場では、高精度なリアルタイムデータ処理が求められますが、FPGAなら、超音波画像生成や医療信号のノイズ除去処理をリアルタイムで行え、かつ設計変更にも素早く対応できるため、規格改定時にも柔軟です。

エッジAI・IoT分野

  • AI推論サーバ向けアクセラレータ

  • ネットワーク高速化(SmartNIC用途)

  • ストレージアクセス最適化

データセンターでは、膨大なデータ転送やAI処理負荷を効率化する必要があります。FPGAはプロトコル処理やストレージアクセスなどのボトルネックを専用ハード化でき、CPU負荷を下げ、システム全体のスループットとエネルギー効率を向上させます。

産業機器・工場分野

  • 産業用カメラのリアルタイム画像解析

  • 高速モーションコントロール装置

  • スマートファクトリー用エッジコンピューティング

工場・産業設備では、ミリ秒レベルのリアルタイム制御や、膨大なセンサーデータを即時に処理する力が必要です。FPGAは、設備ごとのニーズに合わせたロジックを構築でき、さらに低消費電力設計によって長時間稼働にも耐える高信頼性システムを構築できます。

近年注目されているSoC FPGA


近年、従来型のFPGAに代わり、SoC FPGA(System on Chip FPGA)の活用が急速に広がっています。なぜ注目されているのか、通常のFPGAとどう違うのかを整理します。

SoC FPGAとは?

SoC FPGAとは、FPGAの柔軟なロジック構成機能に、CPUコア(プロセッサシステム)を内蔵したデバイスです。具体的には、1つのチップ上に

  • ARM Cortex-A9/A53等のプロセッサコア

  • ユーザープログラム可能なFPGAファブリック領域

が統合されています。
これにより、ソフトウェア処理(プロセッサ側)とハードウェア処理(FPGA側)を連携させたシステム開発が可能になります。

SoC FPGAが注目される理由

ソフトウェアとハードウェアを同時最適化できる

従来、ソフトウェア(CPU処理)とハードウェア(FPGA処理)は個別に設計されていましたが、 SoC FPGAではこれらを密に連携させる設計が可能です。

例えば、制御ロジックはARMプロセッサで実装し、データ演算や画像処理など負荷の高い処理はFPGA側で並列実行といったハイブリッド構成が容易なり、システム全体の性能向上と電力効率化を同時に実現できます。

ハードウェアアクセラレーションが容易にできる

SoC FPGAでは、プロセッサシステムとFPGAロジック間がAXIバス等の高速インターフェースで直結されています。そのため、ソフトウェア処理でボトルネックになる部分だけをハードウェアアクセラレータ化したり、必要な部分だけ並列化・高速化する、といった柔軟な設計が可能になります

開発環境が統合・進化している

現在、主要FPGAベンダー(AMD、Intelなど)は、SoC FPGA専用の開発ツールチェーンを提供しており、CPU側のLinux開発、FPGA側の回路設計、相互通信設計を一つの統合環境でシームレスに開発できるようになっており、開発期間の短縮や、異なる設計者間の連携効率向上が実現できます。

主なSoC FPGA製品例

  • AMD/Xilinx Zynq-7000シリーズ
    (ARM Cortex-A9+FPGAファブリック)

  • AMD/Xilinx Zynq UltraScale+ MPSoC
    (ARM Cortex-A53+リアルタイムコア+FPGAファブリック)

  • Intel Agilex SoCシリーズ
    (ARM Cortex-A53+FPGA構成)

  • Microchip PolarFire SoC
    (RISC-Vベース+FPGAファブリック)

FPGAの製品ラインナップ

FPGAの製品ラインナップ
FPGAの2大メーカーであるAMD(Xilinx)とaltera(Intel)のFPGA製品のラインナップをご紹介します。

XilinxのFPGA製品

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コアを提供しています。

altera(Intel)のFPGA製品

Xilinx(ザイリンクス)には、グレードの異なる5つのFPGAシリーズがあります。

【Stratixシリーズ】

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

【Arriaシリーズ】

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

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

【MAX10 シリーズ】

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

これらaltera (Intel)のFPGAは、オンチップ メモリ、デジタル信号処理(DSP)ブロック、高速トランシーバー、高速 I/O ピン、パーシャルコンフィグレーション などの機能を搭載しており、量産型から最先端製品まで、さまざまなアプリケーションに幅広く対応しています。

FPGA開発をサポートするツールとして、Quatus、QsysといったFPGA開発ツールや、MegaCOREといった「インテル(Intel) ※旧アルテラ(ALTERA)」社製のIPコアを提供しています。また、上記FPGA以外にもコンフィグレーション・デバイスのEPC、EPCS、EPCQ、電源デバイスのEnpirionも提供しており、FPGAシステムに必要なデバイスは一貫して提供しています。

これからのFPGA

これからのFPGA
これまでFPGAは、組込機械の制御向けのデバイスとして活用されてきました。しかし近年、FPGAの大容量化、高性能化が進むにつれ、制御ではなく演算を目的とした用途へのニーズが高まりつつあります。

また、IoTやクラウドの発展に伴い、大量の情報からの認識や解析の需要が増えていく中で、性能進化が頭打ちになっているCPUに加えFPGAを採用する動きもでてきました。

特にFPGAは並列処理が得意なため、Deep Learning(ディープラーニング)の推論処理をはじめ、大量データ処理への活用が進んでいます。既にGoogleやMicrosoft、Baiduなどが自社クラウドサービスに導入したり、Amazon Web Serviceがユーザー設計によるFPGAデザインをデプロイ可能なEC2 F1 Instanceをサービス化するなど、データセンターとFPGAの組み合わせ(接続)が注目を浴びています。

今後FPGAは、その特性を活かした従来の枠に留まらない利用方法が生み出され、様々な領域での活用が広がっていくでしょう。

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

お問い合わせはこちら

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

個別相談会申し込み

関連記事

OTHER COLUMN

MORE  

まこちゃんブログ

NEWS

MORE  

PARTNER

  • Intel
  • Xilinx

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