1. FPGAとは

- 読み方
- エフピージーエー
- 英語
- Field Programmable Gate Array の略称
直訳すると、「現場で プログラム可能な 論理回路の アレイ(配列)」
となるそうですが・・・あまりピンときませんよね?
ここでは専門的な説明ではなく、独自の説明を交えて一緒に考えていきたいと思います。
基板の上に載っていて、“マイコン(CPU)” とは違うのでしょうか?
FPGAは中に「論理回路」が沢山入っている、“プログラム素子” 、なんですね。
最大の特徴は、
「書き換えることが可能な回路」というところです。
情報が [FLUSH ROM] という記憶装置に入っており、
技術者さんからのヒアリング情報を、
[Q&A方式]でまとめてみましたので参考にしてみてください。
となるそうですが・・・あまりピンときませんよね?
ここでは専門的な説明ではなく、独自の説明を交えて一緒に考えていきたいと思います。
基板の上に載っていて、“マイコン(CPU)” とは違うのでしょうか?
FPGAは中に「論理回路」が沢山入っている、“プログラム素子” 、なんですね。

最大の特徴は、
「書き換えることが可能な回路」というところです。
情報が [FLUSH ROM] という記憶装置に入っており、
- 電源を入れる度にROMから情報(データ)を取得して、回路を作り出す
- 電源を切ると回路が無くなる

技術者さんからのヒアリング情報を、
[Q&A方式]でまとめてみましたので参考にしてみてください。
◆◆ FPGA -Q&A- ◆◆
- Q1. 「どんな時に」使うもの?
-
A.「処理速度の速いもの」かつ「正確なもの」を作らないといけない時
FPGAは、いわば “プログラムをハードにできる素子” なので、ソフト側で判断処理するよりも「速い」です。
信号が来たらすぐに動作する、つまり【ハードウェア処理】なので、速いのです。
次に「正確さ」です。
例えば、CPUのようにソフト側で処理する場合は、プログラムを都度実行するので処理時間が安定しないことがあります。
ですがFPGAでは、ハードでの実行で処理時間が安定する為、正確なタイミングが必要な際に有効なのです。
- Q2. 使うメリットは?
-
A.「後からでも変更(カスタマイズ)できる」&「処理が速い」
必要な回路を、その機器専用に組み込むことができます。しかも、後から変更したい場合も論理回路(プログラム)の変更が可能です。
他にもユーザーが目的に合わせて設計できる素子に、
ASIC(エーシック:Application Specific IC)という種類もあります。
ですが、ASICは
後から回路変更はできない
初期投資の費用が高く、大量製造に向いているもの
ということがあります。
- Q3. CPUと何が違うの?
-
A.「CPUは、プログラムを処理することに特化した “ 汎用的なもの ”」
CPUは、汎用的なもの(何に使うか、決まっていない)なので、処理はソフト側で実行します。
一方、FPGAは “ハードでプログラム処理できる素子”。 そこが大きく違うところですね。
CPUとFPGAはそれぞれ良いところがあるので、実際には一緒に(同時に)使うことが多いです。例えば複雑な処理があったとすると、その処理はCPU(ソフト側)で実行させる、といった具合です。

FPGAって、PLD(Programmable Logic Device)という書き換えられるデバイスの一つ、なんだって。
20年くらい前から出始めたそうなんだけど、現在(2019年)では、安価になって論理回路も沢山入るようになって進化しているんだ。
“リアルタイム性が必要で単純な機能”を、ここで作れば良いんだね!
20年くらい前から出始めたそうなんだけど、現在(2019年)では、安価になって論理回路も沢山入るようになって進化しているんだ。
“リアルタイム性が必要で単純な機能”を、ここで作れば良いんだね!
電子機器によっては、CPUが無くてFPGAだけ入っているものもあるんだそうよ。


あとね、コンフィギュレーション情報(設定情報)が入ったFlash ROMは通常、外部のROMから取り込むけど、FPGAチップ内に入っている【不揮発FPGA】という種類もあるんだよね。
そうそう、外に置いていた「周辺デバイス」をFPGA内部に取り込む、ということね。
電源ON/OFFの際のデータ転送でかかっていた消費電力を削減できたり、プリント基板サイズ小型化などのメリットがあるんだそうよ。
電源ON/OFFの際のデータ転送でかかっていた消費電力を削減できたり、プリント基板サイズ小型化などのメリットがあるんだそうよ。

2. 日本システムデザイン(株)×FPGA
ひと昔前には、「CPLD」も良く使っていました
CPLD※(シーピーエルディー:Complex Programmable Logic Device)も同じプログラム素子で、少し前には良く利用していました。
ですがFPGAの方が設計の自由度が高いため、最近はFPGAを使うことがほとんどなのだそう。
ちなみに「CPLDの場合は、PIN配置が自由に決められないため基板の設計を後から行う必要があるけれど、FPGAの場合は、先に基板の設計をしても柔軟にプログラムを組める」、という点が使いやすいとのことでした。
※ 中規模のPLD。PLDの小規模なものとしては、「SPLD(Simple PLD)」がある。
ですがFPGAの方が設計の自由度が高いため、最近はFPGAを使うことがほとんどなのだそう。
ちなみに「CPLDの場合は、PIN配置が自由に決められないため基板の設計を後から行う必要があるけれど、FPGAの場合は、先に基板の設計をしても柔軟にプログラムを組める」、という点が使いやすいとのことでした。
※ 中規模のPLD。PLDの小規模なものとしては、「SPLD(Simple PLD)」がある。
“正確なタイミングで” AD変換するために
「1. FPGAとは」の章で挙げた「速く・正確なもの」の例として、内径の傷を調べる【レーザ検査】での【AD変換】が挙げられます。
というような場合に、FPGAは適しているのです。
※プローブとは、測定の時に使う探針のこと
- 高速でレーザをプローブ※で回転させているため、ソフト側でやっていたら間に合わない
- 返ってきた光の強さを正確なタイミングでAD変換しなければいけない
というような場合に、FPGAは適しているのです。
※プローブとは、測定の時に使う探針のこと

沢山のICが、今ではワンチップで。
こちらは、だいぶ昔の(手配線の)画像処理ボード。
このボードにはICが沢山並んでいますよね。技術が進化した現在では、これらのほとんどの機能が1つのFPGAで可能だろう、とのことです。

このボードにはICが沢山並んでいますよね。技術が進化した現在では、これらのほとんどの機能が1つのFPGAで可能だろう、とのことです。

かつてGALライターも作っていました
初めて使ったのは2006年くらいで「すごく便利!」と感じたそうよ。
麥田社長からの話でね。
FPGAは『ハード設計の時に楽だなぁ』という実感があるんだって。
ハード設計で「デバッグ」って一番大変なんだそうよ。
ソフトと違ってね。デバッグして、もし間違っていた場合つなぎ直すことになってしまうから。
麥田社長からの話でね。
FPGAは『ハード設計の時に楽だなぁ』という実感があるんだって。
ハード設計で「デバッグ」って一番大変なんだそうよ。
ソフトと違ってね。デバッグして、もし間違っていた場合つなぎ直すことになってしまうから。


それが、FPGAの場合だと
例えば仕様のある部分がキッチリと固まっていない場合でも。ある程度決まっていれば大まかに回路設計をすることができる、そして回路を構成するためのプログラムを後から作ることが出来る、そうだよ。
他にも、「仕様変更になってしまった」という場面でも、柔軟に修正対応ができるというメリットもあるよね。
例えば仕様のある部分がキッチリと固まっていない場合でも。ある程度決まっていれば大まかに回路設計をすることができる、そして回路を構成するためのプログラムを後から作ることが出来る、そうだよ。
他にも、「仕様変更になってしまった」という場面でも、柔軟に修正対応ができるというメリットもあるよね。
FPGAが無い昔は、回路(ハード)が固定だったから、もし間違っていたり変更があったりした場合は、基板自体を作り直さないといけなかったんだそうよ。
昔は基板自体も高価だったし、作り直すのは大きな損ね!
昔は基板自体も高価だったし、作り直すのは大きな損ね!


本当にそうだね。
FPGAで設計の工数を減らすことができる、つまり、開発費用の削減にもつながるんだって。
FPGAで設計の工数を減らすことができる、つまり、開発費用の削減にもつながるんだって。
Written in 2019.07
(FPGAを使った)組み込みシステムに関する、ご要望やご質問などがございましたらお気軽にお聞かせください。
お問い合わせはこちら
お問い合わせはこちら
FPGAと関係のある【マイコン】の解説もぜひご覧ください
↓ ↓ ↓
マイコンの用語解説へ >
- < 参考文献 >
-
■「FPGAプログラミング大全」著者:小林 優 2016年12月15日 / 秀和システム
■「FPGAの原理と構成」著者:天野 英晴 2016年4月25日第1版第1刷発行 / 株式会社オーム社
■「改訂版 FPGAボードで学ぶ論理回路設計」著者:山際 伸一 2009年4月15日初版発行 / CQ出版株式会社