ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

FPGAボードを買うときに気をつけること 2008年版

いろんな人にFPGAで遊んで欲しいのですが、初心者にはFPGAボードを買うところに大きな障壁があります。
私なりに初心者が忘れがちなところをまとめてみました。FPGA業界は、Altera社とXilinx社が大きなシェアを持っており、最初の一歩はこの2社から選ぶことになります。他社のFPGAは、Web、書籍とも情報が激減するのでお勧めしません。

開発用のPCは普通にWindowsXP/2000がお勧めです。Linuxでの開発も可能なのですが、不具合が発生したときの情報が代理店レベルでも少なく、初心者が自力で解決するのも難しいです。あとで紹介しますが、Veritakという非常に便利なシミュレータがあるので、初心者の最初の一歩はWindows上でVerilog-HDLを使うことをお勧めします。

開発環境

合成ツール

FPGAで何かをする場合、ボードとは別にVerilog/VHDLの開発環境が必要です。プログラミング言語コンパイラに相当する物です。正規で購入すると10万以上するのですが、AlteraはWebEditoin、XilinxはWebPackという無料で使える開発環境があります。

初心者がFPGAボードを買うときに真っ先に確認しないといけないのが、ボードに実装されているFPGAが無料の開発ツールで開発できるかどうかです。両社とも無料で開発できるデバイスは、一部のローエンド製品だけです。

対応デバイスは以下のURLで確認できますが、年々開発対象が広がっているので、購入前に最新情報を確認しましょう。

http://www.altera.co.jp/products/software/products/quartus2web/sof-quarwebmain.html

http://japan.xilinx.com/ise/products/webpack_config.htm

シミュレータ

FPGAの開発では実際のボードの上で回路を動かす前に、パソコン上でシミューレーションを行います。FPGAのシミュレータの定番はModelSimです。機能制限はありますが、無料で使えるAltera Edition、Xilinx Editionが使えるので、最初はそれを使いましょう。

行数制限や速度面で問題を感じたときは、Veritak-Basicがあれば便利です。ソースをちょっと変えて回路の動きをみるような開発には、Veritakの方が使いやすいです。ModelSim始めプロが使うシミュレータは、普通に買うと数百万円の世界なので、この価格帯でVerilogシミュレータが購入できることは素晴らしいことです。
http://www.vector.co.jp/soft/winnt/edu/se412183.html
Veritakは仕事でも趣味でも使っていますが、全く問題無く快適に使えています。Veritakは基本的にはVerilogのシミュレータなので、VHDLの開発には向いていません。VHDLにはVeritakに相当する物はありません。フリーのシミュレータとしてiverilog等がありますが、上手く動かないときにiverilog側に問題があることもあり、初心者には茨の道でしょう。

特にこだわりがなければ、Windows上でVerilogを使って開発しましょう。

CPU開発環境

FPGAの事を調べていくと、FPGAの開発環境としてCPUが提供され、FPGAの中で動く事が分かると思います。AlteraならNiosII、XilinxならPowerPCMicroBlazeです。Linuxも動いていて非常に魅力的に感じますが、Altera、Xilinx社とも無料の開発環境では、これらのCPUを使った開発が出来ません。(自作CPUなら好きに開発できます。)

Alteraの場合は、正規版の開発環境があればNiosIIの開発環境が使えます。また、NiosII開発キットを買うと一年間は開発環境が使えます。NiosIIのみのライセンスを買うことも出来ます。

Xilinxの場合はEDKという開発ツールが別途必要です。

Altera、Xilinxが提供しているCPU開発環境は、基本的に別途お金が必要だと思ってください。また、FPGAの中でCPUを動かす難易度は尋常ではないので、初心者にはまず無理だと言い切っておきます。

電源

AC100Vのコンセントにケーブルを差せば、そのまま動くボードを選びましょう。ボードの説明書に、ACケーブルが付属しているか、海外製の物であれば日本で使えるかの確認を忘れずにしてください。プロ用のボードでは、デフォルトで「電源ケーブルは無し」です。付属品に電源ケーブルと明記してある場合のみ付いてきます。秋葉原で電源を買ってきてケーブルを自作すればよいのですが、何かあったときに危険です。ブレーカが落ちるくらいならよいのですが、感電や火災にもつながります。素直にACケーブル付属のボードを買いましょう。

ちなみにPCIカードタイプのFPGAボードは、一般的にマザーボードから電源を供給するので電源ケーブルは不要です。ただし、100%そうだとは限らないので、忘れずに確認してください。グラボと同様に、消費電力の問題で別途電源供給が必要なボードも存在します。

ダウンロードケーブル

FPGAで作った回路を動かすには、パソコンからFPGAへデータをダウンロードする必要があります。この時に使うケーブルをダウンロードケーブルと呼びます。FPGAの開発には必須なのですが、仕事でFPGAを使っているところは何本もダウンロードケーブルを持っているので、普通にFPGAボードを買うとダウンロードケーブルはついてきません。初心者がFPGAボードを買う場合は、ダウンロードケーブル付属品を買いましょう。

ダウンロードケーブルくらい自作しろと言う人もいますが、今のUSB対応のケーブルと同じ物を作るのはまず無理です。単体で正規品のケーブルを買うと1万円を超えてしまいますので、ダウンロードケーブル付属のボードを選びましょう。

入出力

このあたりから優先順位が下がってきます。何をしたいかにもよるのですが、例えばゲーム機を作ってみたいとなると、最初からボード上にVGAインターフェイスが載っている方が楽です。LANで何かしたいなら、LANのPortが無いと困ります。

FPGAにコネクタを追加してパックマン動かしたり、電子工作で液晶をつないだりしている人たちがいますが、彼らは全員プロです。初心者は、背伸びせずにボードに最初から搭載されているインターフェイスを動かしましょう。ボードの改造は、FPGAで何ができて、何ができないかが分かってからでも遅くないです。

メモリ

これは優先順位が低いですが、心の片隅に覚えておいてください。

ある程度大きな回路を作ろうとすると外付けのメモリが必要になってきます。現在、評価ボードの主力メモリはDDRもしくはDDR2です。これらのメモリは初心者が手に負える物ではないです。正規版の開発環境があれば、メモリコントローラもAltera、Xilinxが提供している物が使えるのですが、無料の開発環境ではメモリを読み書きする回路を自力で作らないといけません。DDRコントローラを自力で作れるなら、その時点で初心者は脱出しているので何も言うことはありません。

私のお勧めは、DDRではないSDRAMが搭載されているボードです。DDRに比べると、制御が簡単、最低周波数が無い、クロック系統が少ないと良い事ばかりです。この意味は分からないと思いますが、DDRSDRAMのボードで悩んだら、まよわずSDRAM搭載のボードを選びましょう。

お勧めボード

DesignWave等に付いてくるFPGAボードは、価格帯は安いのですが、基本的に電子工作できる人向けなので除外します。電源やケーブルを用意しないと動きません。おまけの基板に加えて、何が必要かが判断できない人は手を出さない方がよいです。

Spartan3 開発キット

http://japan.xilinx.com/products/devkits/HW-SPAR3-SK-UNI-G.htm
http://japan.xilinx.com/products/devkits/HW-SPAR3A-SK-UNI-G.htm
http://japan.xilinx.com/products/devkits/HW-SPAR3AN-SK-UNI-G.htm
全てダウンロードケーブル、電源ケーブル付きの優れもの。
ボード毎に微妙にI/Fが違うので、価格との兼ね合いで選びましょう。とりあえず始めるなら、一番安いSpartan-3 スタータキットがお勧めです。VGAが8色なのでもっと色が欲しい人は、Spartan-3A FPGA、Spartan-3AN スタータキットにしましょう。こちらは4096色です。

CycloneIII開発キット

http://www.altera.co.jp/products/devkits/altera/kit-cyc3-starter.html
こちらも、ダウンロードケーブル、電源ケーブル付きです。$199でVGA無しです。Spartan3 kitに比べると若干高いです。Altera派はこのボードをお勧めします。

http://www.altera.co.jp/products/devkits/altera/kit-cyc3-embedded.htmlは、そのボードに拡張ボードとNiosライセンスが付属したバージョンです。Alteraで行こうの人が買ってますね。

Nios Development Board, Cyclone Edition

公式サイトから消えている。
私が持っている虎の子のFPGAボードです。
パラレルですがダウンロードケーブル付き、ACケーブル付き。何気にSDRAM搭載の優れもの。
購入した状態で長門のBrainfuckが動きます。

市場には大量に出ているはずです。研究室等に転がっていれば確保しておきましょう。

DE2 開発 & エデュケーション・ボード

実物を見たことがないので、あくまで参考に。
http://www.altera.co.jp/education/univ/materials/boards/unv-de2-board.html
AC電源の問題さえクリアーできるのであれば、スペック的には素晴らしい物があります。 LAN、VIDEOの入出力だけでなく、SDカード、キーボード、マウスが接続できます。何気にメモリがSDRAMなのも、中の人はちゃんと分かってますね。

学生の方は安く買えるので、興味を持たれたらチェックしてみてください。

実際の買い方

昔と違って、オンラインで普通に買えるようになりました。
digi-keyから
http://search.digikey.com/scripts/DkSearch/dksus.dll?Cat=2621773;keywords=FPGA

クレジットカードが使えて、何かあっても英語で対応できるなら、Xilinx、Alteraからも直で変えます。

私が個人的にお世話になっているのは、テレネットコンドルさんです。Xilinxのみですが、いつも丁寧に対応してもらっています。

参考書

FPGAを始めるにあたって、Verilogの参考書は適当に選んでください。これ一冊でOKと呼ばれる本もないですが、地雷的な本も無いはずです。Verilogの記述よりも、デジタル回路についての説明が自分のレベルに合っている物を選びましょう。

サブとして必須な本は、CPUの創りかたです。LEDのつけ方やSWの特性だけでなく、データパスとはなんぞやいう所を、女の子の絵付きで説明してあります。女の子の絵無しでも、日本が世界に誇れるCPU本だと思います。西田さんのCPUの創りかた・名著も参考に。

これを読まずに「LEDが点灯しません」と質問してはいけません。

最後に

駆け足で説明しましたが、不足点、質問等がありましたら、お気楽にコメントください。