組み込み機器・ハードウェアの設計開発から装置製作まで社内一貫対応!

組み込み機器・ハードウェア設計製作.com
組み込み機器・ハードウェア設計製作.com

produced by株式会社アイディアイ

技術情報・技術コラム

FPGAとは?メリット・デメリットについて解説!

FPGA画像処理ボード

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

無料ダウンロード】組み込み機器・ハードウェア設計、FPGAに関する設計のポイント

組み込み機器・ハードウェア設計製作.comでは、技術資料を無料で発行しております。
組み込み機器設計に関する基礎知識やFPGA設計のポイントについて、まとめた資料となっていますので是非ご確認ください。

FPGA設計のポイント

>>無料DLはこちら!

FPGAとは?何ができるのか

FPGA とは、「Field Programmable Gate Array」の文字通り、設計者が現場(Field)で論理回路の構成をプログラムできる(Programmable)論理回路(Gate)を集積したデバイスのことです。製造後は回路構成を変更できないLSI(集積回路)に対し、プログラムにより内部の回路構成、つまりデバイスの処理内容を書き換えられることからProgrammable(装置やソフトウェア、システムなどの動作を利用者が必要に応じて変更・自動化できること)と呼ばれます。FPGAはPLD(Programmable Logic Device)の一つです。


<当社の”FPGA設計開発 代行サービス”>

FPGA 設計・開発代行

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設計・開発の流れ

FPGAの設計・開発を行うための環境づくりや設計の流れについて、以下の記事にて詳しく説明していますので、ご確認ください。

>>FPGA設計:テスト動作までの流れを解説!

FPGAを用いたハードウェア設計のポイント

FPGAについて説明しましたが、ここからはFPGAを用いたハードウェア設計のポイントについて、一部を紹介させて頂きます。

FPGA利用によるCPU負荷の削減

負荷の大きな演算をCPUで行うとCPU時間が増加し、システム全体のパフォーマンスが低下する恐れがあります。負荷の大きな演算でもCPU不可を削減し、パフォーマンスを維持したいという場合、以下のような設計のポイントを考慮する必要があります…

>>設計のポイントはこちら!

ソフトコアプロセッサ使用によるマイコンとゲートアレイのワンチップ化

マイコンとゲートアレイ(FPGA使用)とが分かれた部品構成となっている製品の場合、筐体サイズの制約があると、基板の小型化に対応できない場合があります。その際、以下のような設計のポイントを考慮する必要があります…

>>設計のポイントはこちら!

複数のSPIデバイスの同時制御

複数のSPIデバイスをマイコンを使用して同時に制御したいケースにおいて、ハードウェアを含めた検討が必要となります。その際、以下のような設計のポイントを考慮する必要があります…

>>設計のポイントはこちら!

>>その他、FPGA設計に関するポイントはこちらから確認頂けます!

FPGAを用いた組み込みハードウェア 設計・開発事例

ここからは、FPGAを用いた、当社の組み込みハードウェア設計・開発事例を紹介いたします。

CAN・LIN・I2Cデータロガー 設計・開発

CAN・LIN・I2Cデータロガー 設計・開発

単独のロガーとしてユニットを試作し、リモート環境から複数のユニットデータを一括収集できる構成にて導入しました。 自社設計のCAN通信ボード、LIN通信ボードを使用し、I2CはFPGAでバイトデータに変換し通信を行う構成としています。

ハードウェア連携にて各データにタイムスタンプが付与されたログデータのロギングを可能としました。 CAN,LINのみであればソフトウェアで対応が可能ですが、I2Cのデータをロギングする場合はマイコンでは対応不可であり、FPGAにて構築しました。

>>詳しくはこちら!

電源瞬断試験装置 開発

電源遮断試験装置

お客様より、要求仕様書と既存の試験装置をお預かりし、設計しました。制御はFPGAへ置き換えております。
ご要望に基づき、以下の仕様を盛り込んで製作しています。

・MOSFETを1usecでスイッチング制御し、遮断パターンをユーザプログラミングできる機能を搭載
・遮断時間と遮断パターンを、お客様にてタッチパネル上で編集・保存が可能
・最大50Aの遮断性能をもち、高負荷に対応

>>詳しくはこちら!

FPGA画像処理ボード 開発

FPGA画像処理ボード

今回、できるだけコストをおさえるため、以下の仕様にて設計・製作を行いました。

①CPUを使用せず、FPGAを使用し、FPGAにソフトCPUを組み込む仕様にて設計
②FPGAを用いて、ロータリーエンコーダなどのパルス信号に同期し、シャッターをきり即座に判定することに特化。他の機能を排除することでコスト削減
③上記仕様にて組み込みボードを作成し、カメラを取り付けたうえでユニットにて納品

>>詳しくはこちら!

8ch波形入力基板 設計・開発

8ch波形入力基板 設計・開発

8chのアナログ信号をPCに取り込むための基板を設計・開発した事例です。アナログ電圧を取り込み、USB2.0でPCに転送する必要がありました。

PC側で処理するソフトも開発が必要であり、組み込みボードとPCソフトの一貫製作が可能な当社に相談頂きました。

>>詳しくはこちら!

電圧電流測定基板 設計・開発

電圧電流測定基板

電圧および電流を測定しPCに取り込むための電圧電流測定基板を製作した事例です。
一般的に、電圧及び電流測定については市販の汎用的な測定器を使用しますが、柔軟性が低くお客様ご要望に合致しない点と、大型化してしまう点が懸念点であり、組み込みボードの開発を得意とする当社に相談頂きました。

>>詳しくはこちら!

LCD信号変換治具 設計・開発

LCD信号変換治具 設計・開発

数十年前に導入された計測器について、モニターがブラウン管であり液晶に変更したいとのご要望があり、当社にご相談頂きました。

640×480pxなど、汎用的な解像度であれば市販のVGA入力・HDMI出力のスキャンコンバータが使用できますが、当事例では720x350px 49HzのVGA信号を入力し800x400px 32MHzのLCD信号に変換したいというご要望であり、汎用のスキャンコンバータが使用できませんでした。 そのため、変換治具を設計開発する必要があり、組み込み機器・ハードウェアの開発が得意な当社を選定頂きました。

>>詳しくはこちら!

まとめ

いかがでしたでしょうか。
FPGAについてご理解いただけましたでしょうか。

組み込み機器・ハードウェア 設計製作.comを運営するアイディ・アイでは、FPGAを用いた組み込み機器の設計開発代行を得意としております。FPGAを用いた組み込み機器の開発及び、その他のICからの代替等のご相談はぜひ当社までお気軽にお申し付けくださいませ。弊社担当よりお返事させて頂きます。

技術情報・技術コラム一覧に戻る

技術情報・技術コラム

ASICとFPGAの違いについて解説! | 組み込み機器・ハードウェア設計製作.com
  • 組み込みボード

ASICとFPGAの違いについて解説!

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

当記事では ASICとFPGAについて、それぞれの違いも含めて詳しく説明しています。

組み込み機器とは?組み込み機器の例、構成、設計事例、IoTとの関係について解説! | 組み込み機器・ハードウェア設計製作.com
  • 組み込み機器

組み込み機器とは?組み込み機器の例、構成、設計事例、IoTとの関係について解説!

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

組み込みソフトウェアとは?搭載機器や開発の流れ、開発言語について解説! | 組み込み機器・ハードウェア設計製作.com
  • 組み込み機器
  • 組み込みボード

組み込みソフトウェアとは?搭載機器や開発の流れ、開発言語について解説!

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

 

お問い合わせ

組み込み機器・ハードウェア 設計製作.comを運営する株式会社アイディアイは、組み込み機器・ハードウェアの設計開発代行サービスを提供しています。
試験装置や制御機器、組み込みボードなど、設計・開発委託先をお探しの皆様、お気軽に当社に御相談ください。

技術資料のダウンロードはこちらから 技術資料ダウンロ―ド メールフォームでのお問い合わせはこちらから ご相談お問合せ