2010年代に大容量化、開発環境の使いやすさが向上したことでハードウェアエンジニアだけでなく、ソフトウェアエンジニアにも注目されるようになった『FPGA』。
FPGA(英: field-programmable gate array)は、製造後に購入者や設計者が構成を設定できる集積回路であり、広義にはPLD(プログラマブルロジックデバイス)の一種である。現場でプログラム可能なゲートアレイであることから、このように呼ばれている。
Wikipedia
近年では膨大な通信が不要になり、リアルタイム制御が可能になるように組み込みデバイスにAIを載せる『エッジAI』技術に注目が集まり、その搭載先としてFPGAが脚光を浴びています。
エッジAIは、自動運転車から音声コマンドに応答するコーヒーメーカーまで、幅広い電子機器に適用できるため、大いに将来性が期待できる。レイテンシ(待機時間)やデータプライバシー、低消費電力、低コストを組み合わせる必要のあるアプリケーションは、最終的にエッジAI推論に移行することも増えていくだろう(米国の市場調査会社Gartnerのグラフによると、”エッジAI”は5年以内に実用化が期待される唯一のAI技術だという)
戦いの火ぶたが切られたエッジAI市場
そのため、新しく学び始める人も多いのではないでしょうか?
一方で、いざ勉強してみようとしても、ソフトウェア・プログラミングとは異なり、基礎知識やノウハウ情報が少ないです。Amazonでも本のレビュー数は少なく、どれが良書なのか探すことが難しいです。
今回は、FPGAの構成・原理が網羅的にしっかり学べる『FPGAの原理と構成』(天野英晴 編)を紹介します。
『FPGAの原理と構成』とは
『FPGAの原理と構成』とは2016年に出版された編者の天野英晴氏含め、複数の大学教授により執筆されています。
金融などのビッグデータ処理やロボットの制御などで注目されるFPGAの原理と応用例がわかる!
Amazon
本書は、IoTやビッグデータ、機械学習といった大規模データ処理のニーズ増に伴って、その省電力性と高速な処理速度から注目を集めているFPGAの基盤技術を解説するものです。
FPGAの役割は重要なのにも関わらず、知名度が低いことから、少しでも勉強する人が増えるように本書を執筆されたそうです。私も電気電子工学専攻でしたが、学生時代はそこまで重要と捉えていませんでした。。。
『FPGAの原理と構成』を選んだ理由
FPGAを勉強する本としてググると以下の本が良く出てきます。
■『FPGAの原理と構成』
■『【改訂2版】FPGAボードで学ぶ 組込みシステム開発入門[Intel FPGA編]』
後者の本はFPGAボードで実機を使って勉強していく本のようでした。
まずは、FPGAの中身について理解を深めたかったため、この事で紹介する『FPGAの原理と構成』を読むことにしました。
特に、論理合成、配置配線などFPGAの設計ツールが自動でどんな処理をしているかを理解し、ツールの動きをイメージしながら設計できるようになることを目的として読みました。
『FPGAの原理と構成』の概要
『FPGAの原理と構成』の章立ては以下のようになっています。
- FPGAを理解するための基本事項
- FPGAの概要
- FPGAの構成
- 設計フローとツール
- 設計技術
- ハードウェアアルゴリズム
- PLD/FPGAの応用事例
- 新しいデバイス、アーキテクチャ
FPGAを理解するための論理回路、真理値表を含む基礎の基礎から入り、FPGAの概要から徐々に深堀していく構成になっています。
『FPGAの原理と構成』の書評
本書を読んだ感想を一言で「基礎からちょっと深いところまでを網羅した良書である」です。
論理回路、真理値表の解説から始まり、Quartusなどのツールがどのような処理を自動で行っているのか、設計者はどのパラメータをなぜ設定する必要があるのか等、VHDL/Verilogのコーディング方法などのFPGAの設計入門書などにはあまり書かれていない内容が記載されています。
まさに期待していた内容だったので、本書を読んでよかったと思いました!
初心者に優しい基礎の基礎からの解説がある! (1章)
論理回路、真理値表の基礎やFPGAの基礎知識である同期設計(フリップフロップからタイミング制約まで)、FPGAの歴史が解説されています。ASICやCPLDとの違いについても触れています。
本書はFPGAの原理と構成を解説するものであるため、内容はどんなものかを軽く解説する程度になっています。
おそらくこの本を手に取る方は、工学系出身の方が多いと思いますので良い復習になると思います。
同期設計に関してもこのあたりの基礎をサクッと理解したいのであれば十分な解説になっていますが、技術を身につけるためには実機を動かしたり、別の本を読む必要があると感じました。
FPGAの歴史については、この本を読めば大体理解できるようになっています。
これまでのFPGAに関する技術の変遷は、この先の技術動向を予想する上で、知っていて損はないので一読の価値ありです!
また、ありがたいことに用語集まであります。この辺りは初心者に嬉しいポイントです。
一方でKindle版の電子書籍では、文字を認識しておらず検索できなかったのが少し残念でした。
FPGAの基礎知識と構成について詳しい解説あり!(2&3章)
FPGAは大量の論理ブロック、配線ブロック、スイッチブロック、IOブロックで構成されています。
各要素の役割の解説から入り、以下の例のような各要素を実現する方式を解説しています。
- 論理要素
プロダクトターム方式、ルックアップテーブル方式、マルチプレクサ方式
それぞれ一長一短があり、現状マルチプレクサ方式を使った製品があまりないことなど、詳しく解説あり。 - スイッチ要素
フラッシュメモリ、アンチヒューズ、スタティックメモリについて解説。
FPGAはブログラムできる回路であるのは、上記のプログラマブルスイッチがあるため。
メモリの面積と消費電流、動作速度等、これも一長一短があり、興味深いです。
3章では、FPGAがプログラマブルデバイスとして機能するために必要な上記のブロックやハードマクロ、PLLブロックとは何なのか解説されています。
FPGAを構成する各要素を一つ一つを構成例とともに解説おり、FPGAの中身がどうなっているのか大変わかりやすく理解できます。
この章がまず私が知りたかった内容で、役に立つ内容ばかりでした。
まとめ
『FPGAの原理と構成』はFPGAの中身について学習できる基礎からちょっと深いところまでを網羅した良書です。
VHDLやverilogの記述の勉強の他に、この内容を理解することで、設計する時に気を付けなければならないポイントとその理由の理解度が深まります。
どこかのタイミングで読み返しつつ、実機での学習も進めたいと思います。
実機での学習は以下の記事でまとめています。
それでは!
コメント