MAX10という、数千円という安価で評価ボードを入手できるFPGAを知り、現在入門中である。FPGA初心者として、MAX10についてまとめておきたい。
何故FPGAか
FPGAはField Programmable Gate Arrayの略で、その名のとおりプログラマブルに、いうなればソフトウェア的にハードウェアの設計ができるようなもの、とざっくり理解している。
よく比較されるSoC(System on a Chip)やMCU(Micro Controller Unit, マイコン)は、パフォーマンスが最適化できる一方一度作ったらそれっきり。一枚あたりの単価はFPGAより安くなるので、大量生産に向く。
私がFPGAに興味を持っているのは、リアルタイム処理を行いたいがためだ。Raspberry Piなど安価で高性能なシングルボードコンピュータが発売されて久しく、これらのデバイスを有効に使って、安価かつ小型の計測システムが作れないものだろうかとアレコレしているのだが、計測で問題となるのがADボードである。
Raspberry Piで使えるようなものはほとんど市場に出回っておらず(ないことはないが…参考「MAX10でFPGAを始めた…Raspberry Piを補完したい – 或る阿呆の記」)、またGPSモジュールなど各種センサの情報も併せて扱いたいなど考えると、既存のADボードでは中々厳しい。そこで、FPGAが使えないかなぁなどと考えたわけだ。
そんな折に、安価でかつ1MSa/sのADを備えたMAX10なるFPGAのことを知った。これはやってみるしかない。本当にADとして使えるかどうかは今のところ未知数だが、たとえ当初の目的を果たせずとも、FPGAが使えるようになれば色々と応用もききそうなので、シコシコ勉強している。
MAX10の特徴
MAX10については、当然公式でALTERAのページ「MAX® 10 - 概要」が用意されている。が、わからない人お断りと言わんばかりで、入門者の自分には最初何がどうすごいのかよくわからなかったので、その点を踏まえて自分なりにまとめたい。
不揮発性フラッシュメモリ搭載
FPGAは電源投入後にコンフィグレーションする必要があり、そのコンフィグレーション情報を記憶できるよう、不揮発性フラッシュメモリがついている。これがないと、ROMを外付けしないといけなくて、それがFPGAの敷居を上げる要員の一つだったようだ。
ALTERAのページに書いてあった「不揮発性インテグレーションの革命」という謎の革命は、そういう意味であるらしい。

最初に調べてこのページを見た時は「……?」だった
ADコンバータ実装
個人的にMAX10の購入の決め手だったのは、ADコンバータがついていること。最大1MSa/sで量子化12bit、アナログ入力9ch。
デュアルコンフィグレーション
コンフィグレーション情報を2つ記憶できて、どちらを使うのかを選べる。安定版と開発版を分けること等ができる。
そのほか
その他は、電源投入してすぐに使える(インスタント・オン)とかPLL有り(使用には外部に発振器がいる。内蔵発振器はPLLの入力にできない)とかLE(ロジックエレメント)が2k-50k(型番による)とか、18x18乗算器が16-144(型番による)とか。数値がまだピンとこないが、FPGAとして初心者には十分な機能があると思ってよいのだろう。
開発環境はALTERAの提供するQuartusの無償版で入門者には十分そう。Windows版のみならずLinux版もある。
MAX10のキット
MAX10が使える評価ボードは色々あるが、私が現在試しているのは、CQ出版の企画ものらしい実験キットである。マルツと組んでいて、2017年8月現在でも参考書籍、基板共に入手しやすい。
マルツパッケージ MAX10 FPGA入門基板 好評発売中です | マルツセレクト
参考書籍と基板がセットになった、オールインワンキットが一番お手軽そうである。が、マルツでバラで買えば、部品を既に実装しているようなので、バラで買ったほうがよいかもしれない。というのも、表面実装0.8mmピッチで54pinなSDRAMのハンダ付けがあり、これがちょっと難しいので(SDRAMは必ずしも実装する必要ないが)。
また、コンフィグレーションには通常USB-Blasterなる3万円以上するものが必要だが、この製品ではUSB-Blasterと同等の機能をもたせたUSB-Blaster互換基板がついている。これを動作させるために、PICマイコンに書き込みする必要があるが、書籍でも触れられているとおり、ちょっとハマりどころである。普通のPCなどに繋いでやると、失敗する可能性があるようだ(参考「MAX10の付録本を買ったが動かなかった: なひたふJTAG日記」)。iPhoneの充電器は使える。使えた。
Raspberry Piとの連携を考えた拡張基板があることも大きなポイント(別売り)。
このキットで使われているMAX10の型番は、10M08SAE144C8GES。意味は以下。
- 10M08…LEは8k
- S…Single Supplay(単一電源)で動作
- A…Analog。ADコンバータ内臓
- E144…パッケージEQFP-144
- C…民生仕様
- ジャンクション温度摂氏0-85度
- 8…スピードグレード。低速(6が高速、7が中間)。
- G…RoHS6対応
- ES…Engineering Sample。サンプル品。量産品ほどの信頼性はない
前述のとおり、キットには256Mビット(=32MB)のSDRAMがついている。512Mビットのものも使えるらしい。だがハンダ付けに自信がない人は、おとなしく実装済みのものを購入したほうがよさそうに思う。
参考
参考にさせていただいたサイト。
コメント