2048 on FPGA高橋光輝(@hakatashi)
FPGA講習
( ˘⊖˘) 。o(何を作ろうかな… )
用件● プログラミング
● やっぱりゲームが作りたい– 面白いゲーム
● FPGA● リソースが限られている
– シンプルなゲーム● 時間がない
● 短期開発– 適当に作ってもそれっぽく遊べるゲーム
( ˘⊖˘) 。o(ゲーム… )
_人人人人_> 2048 <
 ̄Y^Y^Y ̄
製作
苦労した点
数字の表示● 画面表示はVGAのピン出力までベタ書き● 当然APIやフォントなんてない● レジスタに数字の形を保存して描画処理も手打
ち● 座標計算をミスると…
_人人人人人人_> 読めない < ̄Y^Y^Y^Y^Y ̄
FPGA固有の問題● FPGAに記憶可能な命令の量は限られている
● 論理回路の気持ちを考えてシビアに記述しないといけない
● 数値を5で割っただけで容量爆発– 乗算、除算、剰余はめんどくさい– 5による除算から8による除算(3ビットシフト)に置き換
えることで解決– スコア表示は断念…(10除算が必須)
● Blocking assignmentとNon-blocking assignment
改善したい点
改善したい(したかった)点● 新規ブロックの出現位置が固定されている
● 乱数むずかしい…● 6色しか使えないのでブロックの色がダブって
いる● アナログ放送も驚きの3ビットカラー
– ピクセル単位のブレンド● その他雑多なバグ
● 左方向に動かしたときの挙動がおかしい
感想
感想● プログラミング言語にはいろいろ触ってきた
が、ハードウェア記述言語に触れたのは初めてで、いろいろ悩まされた
● 記述したことが機械にすぐ反映できる楽しさ● 初日欠席してごめんなさいorz
ありがとうございました