HOME 2023/02/12

使ったり使わなかったりしたFPGAボード

 コンソールゲーム互換機を実装するにあたって使用したFPGAボード等を紹介します。 「FPGAで何か作りたいけど、どのFPGAボードを買えばいいの?」という方などに参考になれば。 2005年頃までは [FPGAプロトタイプボードをさがせ] みたいなサイトもありました。 現在は、各社の安価なFPGAボードをリストアップした [Cheap FPGA Development Boards] が参考になります。


Terasic社製のDE(Development and Education)シリーズFPGAボード

 Terasic社は、 旧Altera(2015年にIntelに買収された)のACAP(Altera Consultant Alliance Program)パートナーであったこともあり、 旧AlteraのFPGAであるStratixシリーズ、Cycloneシリーズ、MAXシリーズを中心としたFPGAシステムなどを手掛けています。
 特に今回は、無償版のQuartusで開発可能なCycloneシリーズのFPGAボードを中心に紹介します。 周辺デバイスを使ったサンプルHDLや回路図などそろっている所もポイント高いですね。 機能としても、USB-Blaster回路が載っていたり、省電力であればUSBバスパワーで使えたりするのもうれしいところ。
 ちなみにゲーミングFPGAボードとしては、 AudioやVideo出力コネクタが搭載されていて音や映像が出せること。 デバッグのためのスイッチやボタンが付いていて、LEDや7セグが光り輝くこと。 作りがしっかりしていてアクリル板で保護されカッコイイことなどが特徴です。

↓よく使っているもの

DE1 Cyclone II 2C202005年発売、$150、生産終了
初手からいきなり(容量以外は)ほぼ要求を満たすボード。 VGA出力やサウンド出力を備えていて、USBバスパワーで使用できるのもお手軽。 スーファミ全実装としてはLE数が足りなかったので、サウンド部分は実機のサウンドモジュールを、 ゲームパッドはDualShockをGPIOに接続して使用(どちらも3.3Vで動作)していた。 また、スーファミサウンド再生機能のみであれば実装可能で、ファミコンを実装するのにもちょうど良い感じ。 最初の頃は、RS-232のUARTでFPGAとPCでデータを送受信していた。 CycloneIIという古いFPGAなので、QuartusII Ver.13.0sp1までしかサポートされていない。 前期版と後期版があり、前期版の押しボタンは青色でへたりやすい。

DE0 Cyclone III 3C162009年発売、$119→$162、2023年生産終了
非常にお手軽に使用できる一品で、当時入門用に買った人を多く目にしたFPGAボード。 これもUSBバスパワーで使用可能。 LE数としてはDE1より若干少ないが、スーファミサウンド再生機能の実装、もしくはファミコンの実装が可能。 DEシリーズ宜しくSDカードスロットが付いているので便利。 出力はVGAでサウンドはGPIOから。 ちょっとした回路のテストをするにはもってこいのやつ。

1chipMSXではデバグがしづらいとき、LE数が近いこととFPGAとSDRAMの構成が似ていることから、 DE0でデバグして1chipMSXに移植する手が使える。

DE2-115 Cyclone IV E EP4CE1152010年発売、$595→$779
CycloneIV Eとしては最大規模のLE数と内蔵メモリ量を誇り、スーファミを余裕で実装可能。 ただし価格がそれなりにお高いので、普通は手が出ず経費でなんとかする。 GPIOの片方はHSMCなので、オプションの拡張カードでGPIOを増設する必要がある。 使用には電源アダプタからの電源供給が必要。 USBホストチップが載っていて、USBゲームパッドを使用可能なのが地味に良い。 VGAもDACチップによりRGB各8bitなので色がきれいに出せる。 外部メモリも豊富なのでプレステもこれで作っているところ。 複数バージョンあり。

DE0-CV Cyclone V 5CEBA42014年発売、$150→$200、2023年生産終了
安価でコンパクトながらもスーファミがまるっと実装できるボード。 USBバスパワーでお手軽に使用可能。 サウンドDACが搭載されていないのでそこはGPIOから出力。 ゲーム操作はPS/2ポートにキーボードを接続してごまかしている。

このあたりまでのFPGAボードにはFTDIのチップを使用したUSB-Blaster機能が搭載されており、 VirtualJTAGを埋め込めばUSB経由でデータの送受信が可能なので、 別途RS-232で接続する必要がないのが嬉しい。 (最近のDEボードはCypressのチップを使用したUSB-BlasterIIなので別途調査が必要)。

ちなみに、ほぼ同じ型番のFPGAがAnalogue社の SuperNt(スーファミ互換機)や MegaSg(メガドライブ互換機)や Pocket(ゲームボーイ、ゲームボーイアドバンス互換機)に使用されている。 SuperNtもMegaSgも買ってしまった。 またPocketについては、openFPGAフレームワークを使用してユーザーロジックを書き換えられるので、 DE0-CVでデバグしてPocketに移植する手が使える。

DE10-Nano Cyclone V SE SoC 5CSEBA62017年発売、$130→$225
様々なコンピュータハードウェア互換機を実装するMiSTerプロジェクトでベースFPGAボードとして使用。 MiSTerシステムとしてSDRAMカードやIO拡張カードなどがオープンソースハードウェアとして、 また内蔵Cortex-A9プロセッサを使うためのフレームワークも公開されている。 このためMiSTerフレームワークを使用すれば、 DDR3 SDRAMやHDMI出力などを容易に使用できるようになっている。 Intel486プロセッサなども実装され、PC互換機としてなんとWindows95も動く。 最近は初代PSやSaturnやNintendo64も動いている。

↓出番が少ないもの

TREX C1 Cyclone EP1C62005年発売、$149、生産終了
TerasicゲーミングFPGAボードの黎明を感じられるボード。 すでにサウンドとVGA出力があり、レトロシステムを実装することが想定されている。 初期のボードのためかアクリル板はない模様。

DE2 Cyclone II 2C352005年発売、$495、生産終了
スーファミの実装にあたって回路規模を見積もった時に、 DE1の1.75倍のLE数があるこちらを本当は購入したかった。 しかし価格がDE1の3倍以上であったため怖くて手が出なかった。 結局のところ、スーファミ全実装には内蔵メモリが足りないわけで、 初期検証用としてはDE1で十分だった。 前期版と後期版がある。

DE2-70 Cyclone II 2C702009年発売、$599→$525、生産終了
DE2の後継として、CycloneIIシリーズ最大のLE数を誇るこのボードが発売されたが、 当時はDE1で検証出来ていたこともあって見送った。 こちらは内蔵メモリもある程度ありスーファミ全実装が可能。 発売1年ほどしてDE2-115が出たもんだから、こちらはプライスダウンした模様。

DE0-Nano Cyclone IV EP4CE222011年発売、$79→$108
[2017年に学ぶべき年収の高いプログラミング言語]としてトップにVerilogHDLが選ばれたことに伴い、 FPGAが再度注目を浴びることとなった。 この時安価に販売されていたDE0とこのボードが入門用に多く売れていた印象。 ファミコンくらいなら実装できるLE数がある。 GPIOが出ているだけであり、ゲーミング的には拡張ボードが必要。

拡張ボードとしてCQ出版社から[DE0-EXT1]が出ていたが現在は販売終了。

Cyclone V GX Starter Kit Cyclone V GX 5CGXFC52013年発売、$179→$270
通称「C5G」で、なぜかDEシリーズの名を冠しなかったボード。 LE数と内蔵メモリ共に要件を満たしており、おそらくスーファミ全実装が可能。 ただしメインメモリがLPDDR2のためレイテンシが気になるところ。 GPIOが左右に分かれているのは使いづらい印象。 映像出力はHDMIをサポート。 当時買おうか迷っている間にDE2-115を入手できたのでこちらは見送った。

SoCKit Cyclone V SX SoC 5CSXFC62013年発売、$350、生産終了
この後に出るDE10-Standardと同じSoC FPGAが搭載されていて、 DDR3メモリがSoCのFPGA側とHPS側それぞれに搭載されているのが特徴。 GPIOを使用するにはHSMC拡張ボードが必要。

DE2i-150 Cyclone IV GX EP4CGX1502013年発売、$700、生産終了
すごいでかい。 Intel Atomプロセッサが鎮座していて、PCIeでFPGAと接続されている。 FPGAからアクセスできる周辺デバイスと、Atomからアクセスできる周辺デバイスがそれぞれ配置されているため、 様々な遊び方ができる。

DE1-SoC Cyclone V SE SoC 5CSEMA52014年発売、$249→$377
DE1の後継と考えて購入したが、まだ出番はない。 VGA出力とサウンド出力はFPGAから操作できるが、 SDカード読み込みのためには内蔵Cortex-A9を使用する必要があり、 FPGAを使うのにCプログラムを書くのが本末転倒に思えてくる。

DE0-Nano-SoC Kit / Atlas-SoC Kit Cyclone V SE SoC 5CSEMA42015年発売、$99→$166、2022年生産終了

CycloneV SoCのエントリー的な位置付けのボード。

DE10-Lite MAX10 10M502016年発売、$85→$140
MAX10の勉強用に購入。 非常にコンパクトなFPGAボード。 スーファミを実装するのにLE数は十分だが、内蔵メモリがちょっと足りない。

DE10-Standard Cyclone V SX SoC 5CSXFC62017年発売、$350→$499
豊富なペリフェラルが搭載されており、スーファミを実装するには十二分なスペック。 盛り込めるものは全部盛り込んでみた的な一品。 HDMIがなくて未だにVGAなのがアレ。

 いや別にDEシリーズコレクターというわけでは…(コレクターだよ)。XilinxのFPGAボードを試す機会が無かっただけで。 でもDEシリーズのボードを使っていたおかげで本家にも認知 [Terasic FPGA Project Showroom] していただいて嬉しい限り。

 紹介したFPGAボードはヤフオクやメルカリでそれなりに出品されていますが、 多くは中古なのであまりオススメはしません。 もし中古でいいというのなら、出品写真をよく確認して他のボードと間違わないようにしてください (ボード名が似ているので)。 ただやはり買うならトラブルの少ない新品が良く、 学生さんならアカデミック価格で約3割引きで買えるし、 会社員なら経費で購入してもらいましょう。 ただ、2021年4月から2022年11月にかけて半導体不足とインフレの影響で値上げされたので、 ちょっと手が出しづらくなってしまいました。 さらに2023年10月には円安で1$=150円となりさらに高価になった印象…。

 実際に並べてみた。
ほんとはゲーミングFPGAボードらしくLEDや7セグを光らせたかったけど、電源の取り回しが面倒だったのでね…。 この規格化されたパッケージサイズ、青い基板とアクリル保護で統一されたボード、 スーファミ好きコレクターとしてはくすぐられるものがあるように思う。



FPGAボードとしても使えるゲーミングマシン

 主にゲーミングユーザを対象に発売されたコンソール機の中でも、 FPGAを搭載しFPGAボードとしても使用できるものを紹介します。

1chip MSX Cyclone EP1C122006年発売、20,790円、生産終了
MSX2相当の機能が実装されていて、MSXカートリッジを挿せばゲームも楽しめる。 FPGAボードとして使用するにはケースを開けてJTAGケーブル経由でPROMを書き換える必要がある。 外部メモリとしてSDRAMが搭載され、またSDカードスロットを備えているため、 構成としてはDE0ボードに似ていて、DE0ボードでデバッグして1chipMSXへ移植する手が使える。

ファミコンを1chipMSXに実装してみた

Analogue Pocket CycloneV 5CEBA42020年発売、$199.99→$219.99
GB,GBC,GBA等の互換機能と、openFPGAを使用した多数のゲームコンソールコアを使用できるハンドヘルドマシン。 [openFPGAフレームワーク]を使用して、 メインFPGA向けの開発が可能。 FPGAボードとして使用するには、PCとUSB経由で接続すればSDカード内のFPGAデータ等にアクセスできる。 カラーはブラックとホワイトが発売されているが、開発者向けにはグレーカラーのDeveloper Pocketが配布された。 通常のPocketは背面のJTAGピンを使用するには裏蓋を外す必要があるが、 Developer PocketはJTAGピン部分だけゴム蓋になっている。 またFPGAとUSB-UARTできるようにカートリッジアダプタに挿す専用のボードが付属する。 DE0-CVとほぼ同じFPGA(ただしスピードグレードがワンランク下)が搭載されているため、 DE0-CVでデバッグしてPocketに移植する手が使える。

初代プレステをPocketに実装してみた



Quartus(FPGA用IDE)について

 旧AlteraおよびIntelのCycloneシリーズFPGA向けに、HDLを論理合成・配置配線するための開発環境として、 現在Intelで公開されているQuartusの無償版(WebEdition、LiteEdition)を使用する。 いつ非公開になってもいいようにインストーラはローカルに保存しておこう。

・[QuartusII 11.0sp1 WebEdition (アーカイブ)旧Alteraサイトアーカイブ)]
 初代Cycloneをサポートしている最終バージョン。 TREX C1ボードや1chipMSX向けにはこれを使用する。 すでに公式サイトからはダウンロードできなくなっており、 現在はWebArchiveのものが利用可能。念のためインストーラのMD5ハッシュ値を確認すること。

・[QuartusII 13.0sp1 WebEdition]
 CycloneIIをサポートしている最終バージョン。 DE1ボード向けにはこれを使用する。

・[QuartusII 13.1 WebEdition]
 CycloneIIIをサポートしている最終バージョン。 DE0ボード向けにはこれを使用する。 Update4があるのでそれも適用しておく。

・[QuartusPrime 17.0 LiteEdition]
 CycloneIV、CycloneVは最新版のQuartusPrimeでもサポートされているが、 MiSTer界隈ではこのバージョンが好んで使用されているようだ。 Update2があるのでそれも適用しておく。

・[QuartusPrime 18.1 LiteEdition]
 Analogue PocketのCycloneV向け開発用にはこのバージョンが使われているようだ。 Update1があるので必要なら適用しておく。

 また、ネット上にあるインストーラではなくインストールメディアがいいという場合は、 各DEボードに付属のメディアから取得できる。 ボードの出荷時期によって付属メディアのQuartusIIバージョンが異なる場合があるようだ。
・DE1:QuartusII 6.0 or 7.2
・DE2:QuartusII 7.0 or 7.2 or 11.1
・DE2-70:QuartusII 7.2
・DE0:QuartusII 9.0(Terasicサイトにメディアイメージあり
・DE2-115:QuartusII 10.0
・DE2i-150:Quartus II 12.1
・DesignWaveMagazine No.110(2007年1月号)付録CD:QuartusII 6.1sp1
なお、QuartusII Web Edition Ver.8.1以降なら、無償ライセンスファイルの取得なしで使用できる (ソース)。

 ちなみに、Quartus付属の「ModelSim Starter Edition」について、 VHDLとVerilogHDLの言語混在シミュレーションをサポートしているのは、 QuartusII 15.0 付属の ModelSim Altera 10.3d 以降から。 また、ModelSim Starter EditionはQuartusPrime 20.1.1 までで、 QuartusPrime 21.1 以降は Questa Intel Editionに変更されていて、 使用には無償ライセンスファイルの取得が必要。

 また、FPGAへの書き込みを行う「Programmer」については、 古いバージョンを使用するとうまく認識しなかったり書き込めなかったりする。 Quartusのバージョンとは別途、新しいバージョンを単体でインストールしておくことで回避できることがあるらしい。





Copyright(C)2006-2023 pgate1 All Rights Reserved.