ゲーム研究会(らいふゼロ)

ゲーム全般、電子工作

AVRコア

2012-01-13 22:40:20 | FPGA
自作AVRコアにまだバグが残ってたよ。
原因掴むのにえらく時間が掛かった、最初はタイミングで化けたのかと思ってたので
VDPとの通信周りをずっと疑っていたんだけど、命令デコードのバグだったw
タイプミスでゼロが一個足りないだけだったんだけど、何故かずっと見過ごされてた。

これでようやくVDP側に抱かせたCPUによってSDカードからCGデータを
VDPのCGRAMエリアに展開できるようになる。
CG展開以外普段は暇だろうからサウンドもドライブでもさせるかな。



内部CPUからVDPをアクセス   着々と融合中

内包したCPUのROM容量が少ないので別途SDカードをアクセスするプログラムをしないと
画像等のデータが扱えない


■15日

SDからではなくとりあえずコンフィグROMから画像をロード  なんかシュールw

色の再現性を良くするためにインターレースにしたんだけど、
垂直同期付近の等価パルスを入れていないので画面上部がブレちゃってますね。

負荷メーターが重いのは、内部通信をSPIではなくポート経由でソフト的に行ってるから、
オシロがあれば一発なんだけど、ソフト実装してポートをLEDで眺めてステップ実行という
貧弱な開発環境w

スプライト機能だけでなくGDCのようなラインや円の描画機能も加えようかな。

AVR ISP

2012-01-05 20:42:19 | FPGA
以前AVRISPをソフト的に実装していたのですが、
FPGA内に作りこむAVRソフトコアの規模を小さくしたので、
ISPソフトが邪魔になり(ステルスとか妙な仕様なのでw)ハード構成として作り直した。

ソフトでの実装時には動作が遅く使用できるライターが限られていたのですが、
ハード的な実装によって快適になりました。
180LEを消費。

普通はFPGA内のソフトコアに対してわざわざISPで書き込むことはしないと思うけど、
ソフト屋としての利便性は重要なのでISPを実装したw


オリジナルVDP

2011-12-27 06:53:21 | FPGA

http://youtu.be/e2Jt4KV7yp0 動画

去年の12月に最終ターゲットをLatticeに決めて、Xilinxから回路図の移植を始めたのが苦行の始まり。
コンパイルしても全く動く気配をみせず、コンパイルも時間が掛かりバグった挙句にPCが破壊されると言うw
デバイスそのものは良いのに開発環境が糞という。
弄り始めた頃は本であった事もあって安心感もあったのに、めいっぱい煮え湯を飲まされた感じだ。

今年になってDE0-nanoを弄り始めて、先日オリジナルVDPもAlteraに持ってこようと思い移植作業を始めた。
Alteraで回路図はAVRソフトコアでやっていたけど、移植の度に1から作業しないとならない回路図は
非常にハンドリングが悪いので、オリジナルVDPは全部Verilogにしようと思った。

まずはXilinxで作った元の回路図を全て印刷。
verilog化の手掛かりにと回路図から変換された中間コードを探す、なぜかLatticeの中間コードを引き出してしまった。
Lattice用に悪戦苦闘している最中にもほんの少し改定してる部分もあったので、まぁコレでいいかって感じで。

まずはコンパイルだけでも通るように、Latticeで使用していたライブラリを中身を作らずにインタフェースのみを実装して
一通り通るようにした。 軽いw そらそうか、全部端折られるからなw
軽快にコンパイルが通るのに気を良くして、本来なら回路図からverilog化する作業だった筈が、
空のままで良い筈のライブラリの実装を開始w  ものの30分程度でライブラリが完成した。

全てを実装した筈なのに、全く動かないw なんでだ。
そのまま回路図とTRLをつき合わせて検証作業になだれ込んだw 本来のverilog化とは全く違う意味になってるw

回路図から生成された無機質な中間ソースを、回路図を見ながら見やすい形へ再配置及び結線。
結線名も無機質な名前から回路図を元に意味のある結線名へと変更作業することになった。
あまりにも無機質過ぎてそのままの中間ソースでは検証ができないと判断したからであった。

無機質な中間ソースを見やすい形にする作業の中で、Latticeの作業中には分からなかったバグが次々と浮上w
Lattice diamondの回路図からverilogへのトランスレートが全くの出鱈目である事が再度判明した。
メーカー純正ツールでここまで酷いものとは夢にも思わなかったw
驚愕の事実っつーか、Lattice diamondで回路図使ってたら一生完成しないと言う事実が突きつけられた orz
Lattice diamondでの苦行は300時間以上を捧げていたので、もっと早くに見切りをつけるべきだったと後悔しきり。
そら挫折するわな、どんまい>過去の自分。

結線情報を本来の姿へ張り替えたら物凄くあっさりと完璧に動作しました。 まぁXilinxで動いてた物だから当たり前だが…

という事で、動作したソースコードを再度Latticeに持っていって幸せになれるかと思いきや、
マルツパーツ館からは既にLatticeのFPGAボードは無くなっていたというw


http://shop.cqpub.co.jp/hanbai/booklist/series/

書籍の方はまだ在庫あるみたいね、ふぅむ。

今のソースはverilogであってverilogにあらずw
回路図では無くなったのでとりあえず安心か。

Altera環境

2011-12-26 19:59:01 | FPGA

CPUベースを作り直した Mega644 抵抗はビデオ出力用のR-2Rラダー


DE0-nanoと合体


DE0-nanoにSRAMも合体


ライター(右)とビデオラインを繋いで Mega644にソフトを書き込み


AlteraでオリジナルVDPが動いた

オリジナルVDPのプロジェクトから回路図を全て排除して動いた。
次はCPUも中に納まるように。
現状自分のAVRソフトコアは回路図率が8割越えなので、
こっちからも回路図を排除してハンドリングを良くしたい。
(Latticeで痛い目を見たので、もうFPGA環境で回路図を用いないと決めた)


裏の配線

■2012 1/1
VDPのデモを作ろうと思ったらCPUのROMでは全く足りない。
AVRマイコンにMMCを増設しようと思ったらMMCもSPIを使ってる。
VDP側でMMCを抱く構想もあるのだけどCPUコアを内包させないと実装しにくいので、
当面はMCU側にMMCを管理してもらうしかないかぁ。

同一のSPIにMMCもぶら下げるならVDP側のSPIにもCS端子を設けないとね。

1chipMSX on DE0-nano

2011-12-15 20:51:22 | FPGA


まぁ動いて当然なんだけどねw
元々の基板だとFPGAに直接JTAG書き込みが出来ないので、
毎度コンフィグROMに焼いてからケーブルを抜いて電源オフ⇒電源オン
って感じで多少面倒だったのです。

でDE0-nano上で動かした方が楽じゃね?
と思い元のプロジェクトからchipをEP4CE22F17C6Nに変更してみた。
やっぱりうんともすんとも言わない。
何が悪いんだろう?と、自前のデバッグ画面を重ねてみた。
Z80全く動いてねーw

使用してるSDRAMが違うのか?
元々のはK4S561632E-TC75
DE0-nano上のはIS42S16160Bって全然違うやん!… と一応確かめてみる。
データーシートを見る限り動作は一緒かぁ、問題無いね。

あ、emsx_top.hexの位置が0x40000じゃコンフィグROMに焼けないじゃん。
(ゲート情報が0x47C1EもあるのでそのままではHEXと衝突、
勝手にゲート情報が先頭(0x00000)ではなく0x80000にマップされてしまうのでFPGAが起動できない)
ってことでEPCS4⇒EPCS16なので4倍の容量になってるので、
HEXのロケーションを0x40000⇒0x1C0000へ移動。
ロケーションの移動に伴いIPLの内容に変更を加える。
(IPLには何の説明も無いのでDISASMして1C0000から読むように変更した)

まだ動かない…
pSltClkに信号が来てない… 回路図を見ると144ピンと152ピンが短絡されてる。
pCpuClkと繋ぐ (以外とトラップでした orz 作者はワザとやったんかな?)

なんか不安定…
pSltWait_n,pSltInt_nがオープンドレインなので元ハード同様に1Kでプルアップ
動いたーーーーー(ノ゜∀゜)ノ

小一時間で動くと思いきや、丸一日掛かってしまいました。

と言う事でまとめると
①pll4x.vhdを変更、50MHzから21.47727MHzと85.909MHzを造るようにする
②asmiblock(U04)の配線をDE0-nanoに適応させる変更しなくても大丈夫でした
③emsx_top.hexのロケーションを移動(emsx_top.cofを変更(DE0-nanoでは.jicへ変換))
④iplrom.vhdへパッチして0x1C0000から読む様に変更
⑤pSltClkとpCpuClkを短絡
⑥pSltWait_n,pSltInt_nを外部抵抗にてプルアップ
で、DE0-nano上でも1chipMSXが動きました。

さて、ゲート規模的に倍の容量になったので色々これからです。
名刺サイズMSXとなりましたw


dipswを内部で固定した為、選択されない機能が削られ9,258LEとなってます。


物理的に全部のピンアサは出来ないですね。
出力が多いので、汎用IC等を使いシリパラさせるといいのかも。
MSX用のシールドでも作りますかw

カセットを吸い出して内蔵メモリー上で動かせばカセット用の配線は必要なくなりますが、
今度はバンクチップの回路を模倣しないとなりませんね。

なつかしの1chipMSX

2011-09-08 12:45:21 | FPGA

限定5000台の【1chipMSX】シリアル番号は05007  購入以来全く使っていなかったのを引っ張りだした。

購入当時はコンパイルも遅かったし、ほぼチップを使い切っていたので何かいじってみようとは思わなかった。
先日のAVRでZ80のエミュを見て、1chipMSXからZ80コアを追い出そうと考えた。 別にAVRマイコンでも良かったんだけど
どうせなら高速にZ80をエミュをしたいので雑誌付録のARMにご登場願います。 Z80を載せた方が無難?
CPUを追い出せば1/4程空きエリアとなるので何か遊べるようになるのかな。 TurboR!? 仕様分からんけどw

このARMは5Vトレラントなので気にせず使えそう、こいつにバスマスターになってもらえば
FPGAには周辺の役割だけの実装になる。 1chipMSXの開発を逆に辿ってる気もしなくもないけど、まぁいいか。

①FPGAの変更
②ファームROMをARMのフラッシュへ移動
③エミュの実装

どんだけ掛かるか分からんけどぼちぼちやってみるかー

■無料で1chipMSXのコンパイルができるバージョンが最後になってしまった。
"Quartus II Version 11.0 Build 157 04/27/2011 SJ Web Edition"

これ以上バージョンを上げるとCyclone(ノーマル)はサポート外となってしまう、
あぶねぇあぶねぇ。

■1366×768
  

そのままではBENQの安物モニター(¥6,800)には同期が合わず
ドットの縦横共に3倍の大きさにしないとならない。

(モードが10の低輝度だと表示されず、11の高輝度だと映った)
同期を確認する為テキトーな回路を生成してみたけど、
チップが意外と遅いw 安いグレードの品種でしたね。

■11/24
1ChipMSXのCPU追い出し改造をやってみましたが、一気に改変をしたら全く動かなかった orz
元がVHDLだったので慣れたverilogへtopだけでも移植したんだけど、
合成結果がかなり違ってしまった、何か意図しない移植ミスがあったのか。
原因を追いかけようにもトップの配線が混雑し過ぎていてRTL表示が全体を表示し切らない(途中で描画をやめてしまう)
ので追いかけようも無かった。

今更ながらページ切り替えのタブに気付く orz

仕方なく振り出しに戻って、1区分ずつ下の階層に下ろしながらVerilogへ変換しつつ
実機に焼いて動作を確認しながら進めているw 途方も無く手間と時間を取られるが仕方ない。
現状では検証する術が見つからないのだ orz
topのTRLがまともに表示されるまでこの反復は続くのです。(ひょっとして、まともな環境ってXilinxだけなのかな…)

■11/28
ようやく雑多なemsx_top.vhdを機能モジュールに分割してVerilogに置き換えが済んだ。
VHDLのソースだと大文字・小文字区別がないのか、かなりタイプミスが目立った。
Verilogでそのまま処理すると未結線となってしまいWarningが出るだけなので、気がつくと回路がごっそり抜け落ちてしまうw

AVRでZ80をエミュレート

2011-09-07 21:56:51 | FPGA
ゲームのプラットホームをFPGA上に構築するのに、
AVRマイコンの他にZ80コアも入れ込むのはなんとなく面倒に感じていたけど、
Z80をAVRマイコンでエミュレートする記事を見て真似ようと思ったw

http://spritesmods.com/?art=avrcpm ←CP/M on an AVR
ワークRAMに使うDRAMのリフレッシュまでソフト的にやるのかな? 色々凄いw

6502や6809もAVRコアでエミュレートしちゃえばいいかぁ
昔ファミコンエミュレーターをPC上で作った時はROR命令で符号フラグの変化を忘れて
グラディウスが正しく再現できず一ヶ月近く悩んだのも今では良い思い出w
(悪夢再来か?)

テキストVRAMを実装してみる

2011-07-26 18:57:47 | FPGA


AVRコアのデバッグの為ちょっとしたWinAVRライブラリを動かしてテスト!
計算ライブラリを実行しても結果の確認がしにくいのでテキストVRAMを実装してみた。
なんかMSXかAppleIIみたいだw

□フラグ管理
 やられたわ~、アトメルの公式資料w
 比較的新しい資料でしかも公式の方が安全だろうと思い、日本語化された資料を無視してわざわざ公式のHPから
 インストラクションコードを入手してフラグ管理の実装を行っていたけど裏目に出たwww
 公式資料だしまさか誤記が放置されているものとは夢にも思わず信じきって実装していたよ orz

 で、C言語でよく使われるstudioライブラリ内の"sprintf"がVRAMに対して文字列を吐き出さない。
 あれ~と思いつつも、しぶしぶステップ動作で動作確認。
 ちなみに一命令を4ステートに区切ってのデバッグモードなのでprintfの実行に数百回ボタンを押さなければならないw
 ブレークポイントが欲しいと思いつつもその機能を実装する手間を考えるとね…
 ボタンを連打し続けてやっと吐き出しルーチンへ到着、16ビットの比較を行い何もせずにreturn
 あれ? どーなってるんだと思った時には後の祭りw
 しぶしぶリセットボタンを押して再度数百回連打の後、ようやく問題の地点へ到着。ハァハァ

 お~、何かの変数を比較して'S'フラッグがゼロだと何もぜずに帰っちゃうのね。
 で、自分は滅多に使わなさそうな'S'フラグは何ぞやと公式資料を再度確認。
 変化する命令が'ADIW'と'SBIW'だけw? んん~~ そんな特殊なフラグある訳ねーよwww
 そもそも分岐命令の直前にそんな命令実行してないし~
 と思いAVRStudio内のシミュレータを実行すると普通のADDでも変化する事を確認
 公式ぃぃぃぃぃぃ orz

 と言うことで、ようやくVRAMに対してsprintfが動くようになりました。 疲れた~。

□ここへ来てちょっと動作が不安定に…
 命令デコードユニットからの即値情報(kやqと表記される値)がもたついている
 あ~MUX(選択回路)の多段が原因なのねw
 ん~、直列に積み重なってるからグループに分けるか…
 ああん?並列になって即値情報も安定したけどゲート数が増えたぁぁぁぁぁぁぁぁぁwww

 まぁ多分、デバッグ対応の引き出し線の多さで配置がぐじゃぐじゃになってるのでしょう。
 きっと、デバッグが終了して引き出し線を撤収すれば元に戻るかと。

AVRコア in DE0-nano

2011-07-21 18:43:45 | FPGA


全命令の動作が確認されたのでAVRISP対応のIPLローダーを組み入れています。
AVRコア(Mega328相当)のサイズは命令デコードで685(割り込み処理含む),アキュムレーター(掛け算含む)で122,その他82の合計779エレメントでした。
プログラム領域32KB,ワークRAM32KB(VRAM含む)の豪華仕様ですw
まだI/Oやタイマーが実装されていないですし、今後チューニングやバグとりで多少の増減はするでしょうけれど。
動作スピードの上限確認はまだ楽しみにとっておきますw、当面ビデオクロック(14.31818MHz)での動作です。




AVRコア in DE0-nano

2011-07-18 08:02:36 | FPGA


イッパツで動く訳もなく命令のデコード状況を確認する作業となりました。
どうやって検証するかがネックとなり、スーパーファミコンのコントローラーを接続して
ビデオ画面上でデコード状況の確認をシコシコすることに。

コントローラーでインストラクションコードの数値をいじる仕組みづくりに丸一日掛かりましたとさw

Lattice再開

2011-07-03 05:22:45 | FPGA
ほとんど挫折しかかっていたLatticeを再開、理由はPCを丸6年ぶりに買い換えたから。
消費電力は1/3に性能は6倍になった。『 べ、べつに節電に協力したい訳じゃないんだからねっ』
お陰で30分以上掛かっていたコンパイルも11分に短縮。 ん?
折角のクアッドコアも全く利用されていないwww Latticeってばシングルスレッドだったのねw
速度が増した理由はL1キャッシュ容量増大とFSB周波数の向上及びバス幅が倍になった程度か(泣

PCの新調でコンパイル環境はかなり改善されたけどレガシーデバイスが全滅で焼けないwww
パラレルカード差してもアドレスがA400(本来0378)で繋がらない orz
Latticeのダウンロードケーブルを買う余裕もないし・・・
と言う事で古いPCも一緒に稼動してもらう事となりましたw 消費電力倍増で部屋が暑いよ・・・

xp2jtagにC-SRAMモードを今更発見… 便利過ぎる
書き込み速度はあんま変わらないのだけれど、ダウンロード終了後に自動起動するのね。
今までは再起動の為にいちいちUSBを抜き差ししてたんだけどこれは嬉しい。

で、大きな発見。
今回はシンボルを作成しながらの回路図入力だったので回路図に貼り付けた後にも平気でシンボルを変更していたのだけれども
コレってクリーンコンパイルしても全く無駄だったのね。 orz
シンボルの中身を書き換えてもネットリストは一切更新されない事を発見! 回路図は全くもって信用ならないって事だ!!!
シンボルを変更したら部品をひっぺがして再度貼り付ける事でしかネットリストが更新されることは無いwww
ありえねぇぇぇぇぇぇぇぇぇぇぇぇぇぇ!!!  20個シンボルがあったら20個とも張り直しとかギャグでしかないぞw
やっぱり回路図ってオマケ程度の存在なのね。 通りで設計通りに全く動かない訳だわなぁ~ orz
回路図があっても信用ならんってことは二次ファイルのVHDLをその都度確認しないとならんのね…
RTLって配線描画がいい加減だから全く確認に使えないし、ホントひでぇ統合環境だよなぁ。


Q[2]の28MHzに接続したいのに

Q[1]の57MHzに接続されてしまう

未配線であっても、少しの配線を出さないとちゃんとした接続にならないwww
なんだこのクソ仕様はwww


■11/27
久しぶりに1.3.1.110のバージョンをダウンロードして合成に掛かる時間が速くなってるかを確認。
全然速くなってないなぁ。
しばらくはALTERAで慣らして、回路図を全て無くしてデバッグを終えたものをLatticeで動かすってだけかな。
Lattice上で開発ってのはもうありえないかな。
回路図だと不具合が出るのはどのメーカーも同じような感じ。
元々ディスクリートで回路を動かしていた感覚で設計してもFPGAでは全く動かない。
FPGA用に回路図を書き直すのも面倒、FPGAには言語の方が相性がいいみたいだ。

■12/26
Latticeで開発はもうやらない、回路図は全廃します。
Xilinx,Lattice,Alteraと開発ツールを触って来て、Latticeが最悪と実感。
元々回路図率が高くて移植性が悪かったのは反省して、回路図をゼロにする作業をしています。
それで分かってきたのは、Latticeの吐き出す回路図から吐き出す2次ファイルがいかにデタラメかという事。
前回、未結線があるとずれて結線されてしまうと書きましたが、それ以外にも
・バス結線で不足があると上位側に寄せられ、下位が未結線となるwww
・デコーダー入力にバス結線すると上下逆さまに接続されるwww
・見かけ上結線されているのに未結線となる
などがあり、回路図コンバーターの破壊力に完敗しました。
上記二つはRTLで追っていても気付きませんでした。

この有様では回路をデバッグしてるのか開発ツールのデバッグをしているのか分からない状況なのです。

ようやくFPGAで回路図という存在は意味が無い事に気付かされました。
FPGAではディスクリート部品で構成していた時のセオリーは通用しないからです。
ディスクリートで構成していた回路をFPGA上に持ってきても結局動かず、
FPGAのエレメントを見据えた回路構成にする必要があります。
用意されたライブラリも各社バラバラで、Latticeに限ってはセレクタのABが逆さまという嫌らしさです。
回路図で書いている限り移植性も正確さも全く無いということです。

PLL発振器以外を全てVerilogかVHDLにすればメーカーを問う必要もなくなるので、
開発はXilinxかAlteraで行い、Latticeはチップ実装が必要な時の最終段階以外は行わない事にしました。

色々と操作が分からない

2011-01-05 12:37:29 | FPGA


論理的に破損したHDDからようやくデータを復旧(手直しですが)させました。

LatticeのDiamondはイマイチ使い方が良く分からないままだ。
配置などの最適化はXilinx程頭が良くないようで完全にコンパイラ任せでは動く気配が全くない、
なによりデバッグ用で実装したモニターすら動作不安定で使い物にならない状態なのだ。

一歩も前に進めなくなったので、仕方なく配置の指示の方法を探すがLatticeサイトで
見つかるマニュアルは未だに古いままなので読んでみてもDiamondの操作が分からない。
しかしなんとか総当りの操作を繰り返しアプリケーションエラーで度々落ちつつも
何とか配置パラメータの設定ができました・・・ ?
が、しかし、エリアで縛ってみても全く関係なくセルが配置される、ええぇぇぇっ、どういうことなの? orz
クロックの条件とか優先される縛りがあったとしても、この結果には納得が行かない。

だいたい、設定パラメータが正常でもイリガル表示されて設定を拒むw
こんだけバグバグな統合環境も珍しい、ひょっとして誰も使っちゃいないのかな・・・
マイナーなチップに手を出すと情報が得られないので回避方法を見つけるのが非常に困難だw

うぅ、もう少しコンパイル速度や最適化が優秀ならいいんだけど、
時間が掛かる上に思うように動かない、Latticeそろそろ挫折しそうなんだけど・・・。

LatticeのFPGAへ持ってきた

2010-12-18 17:22:04 | FPGA


回路図の移植は物凄く疲れる、一応付録基板のLFXP2-5E用のコンパイルは通ったようだ。
回路規模的には50%くらいの消費のようなので、音源回路などの構築もできそう。

ただ、Xilinxの環境と比べるとコンパイルスピード等、Latticeの環境はちょっとやりにくい。

動くかどうかドキドキもんですが、SRAMの配線やダウンロードケーブルの製作はこれから
なので、もう少し時間が掛かります。

とりあえず工作

2010-12-16 13:30:04 | FPGA


なかなか手頃な価格のFPGA基板が無いので、とりあえず雑誌付録で行こうかなと。
http://www.amazon.co.jp/gp/product/4789849406

秋月部品
SRAM http://akizukidenshi.com/catalog/g/gI-02165/
変換基板  http://akizukidenshi.com/catalog/g/gP-02411/
水晶48M http://akizukidenshi.com/catalog/g/gP-01806/

LatticeのFPGA用にデザインを移植せねばならない。
Diamondツールをダウンロードして作業してみたものの、回路図エディタがとてつもなく使い辛いwww
ライブラリが薄いってか、必要に応じてIPジェネレータで作らねばならないんだけど面倒臭い。

さて、移植するにしてもコンフィギュ用ROMが載っていないので
(フラッシュベースなのでFPGA内部に持ってました)、どうしたもんか。
載っててもダウンロードケーブルを持ってる人も少ないだろうし、CPU側から
FPGAの設定をやるしかないかなぁ… 色々と課題は多い。

みなし動作完了(゜∀゜)

2010-12-13 17:45:30 | FPGA
やったー、オリジナルVDP完成だぁ、ひゃっほ~~~うぃ

・4重スクロール(サターンクラス)
・128枚スプライト(PCエンジンクラス)

途中10回ほど挫折しそうになりましたが、やっと完成したぁぁぁ。
シミュレーションとかチップスコープとか使わずにトライアンドエラーだけで乗り切ったぁ。

チップスコープは実装してみたんだけどステップ数が少ないのと、
実装すると配置が変わってしまって細かいアナライズが出来ないので全く意味なかった。

細かいハードバグはソフト的に回避しちゃうえば問題ないw
後はAVRマイコン側のソフト次第や。

とりあえず、当初の目的は液晶にAVRマイコンを使ってストレスなくゲームを映すことなので、
達成できましたということで。(現状テレビ画面ですが…)

今はスターターボード上での実装なので、ゲームソフトがある程度動いたら
電子工作に好適なFPGAボード上に構築しようと思います。

選定FPGAに余裕度があったらの話ですけども、次のステップは
・SDカードかUSBメモリーからCG領域への自動転送
・音源実装
ですかね。