2015年11月23日月曜日

告知の結果と次のテーマ

FPGAボードプレゼントへの応募者はゼロでした。
このテーマはこれで一旦終了して、次は中途半端に中断していたZYBOでI2S IPを利用したスクラッチ音生成を再開しようと思う。


2015年11月7日土曜日

世界最小クラスかも知れないFPGAボード 15 (ブロック崩しゲームの実装 2)

現在実装中のブロック崩しゲームだがゲームとして遊べるレベルにはなった。

バーの操作はロータリーエンコーダで行うことにした。エンコーダの左側にある基板上の部品は押しボタンスイッチでゲーム開始の操作に使用する。

また、画像だけだとつまらないので音も発生するようにした。
このままだと操作しづらいので以下のように段ボール箱を筐体代わりにして組み上げた。

箱の内部はエンコーダのケーブルがとぐろを巻いているだけだ。


電源を入れると、以下の画面表示になる。

ここで押しボタンスイッチを押すとボールが下方に動き始めゲームが開始される。

プレイしている様子
プレイしてみて、自分の反射神経の衰えを実感してしまった。orz
が、中々楽しい。なんじゃこりゃーおもしろいぞー!ってな感じだ。


アーキテクチャと最上位のRTLは以下のようになっていて結構シンプルだ。


syncgenで同期信号と描画座標を生成してbreakoutモジュールに渡す。
breakoutモジュールは描画座標とボールや各ブロックの座標とを比較して衝突判定して処理をおこなっている。


回路規模はこんな感じ



タイミングもMetしている。


2015年11月1日日曜日

世界最小クラスかも知れないFPGAボード 14 (ブロック崩しゲームの実装 1)

ブロック崩しゲームを実装中だ。

ボールを打ち返す部分はまだ実装していない。
video
残りは、ボールの加速度を縦方向と横方向別個に設定できるようにするのと、ラケットの部分の実装だ。ラケットの操作はロータリーエンコーダにしようか押しボタンにしようか思案中だ。ボードの改造(ポートの追加)もしなければ。

リソースのusageはこんな感じで、前回のカラーバー+αの回路と大差ない。

今のところ、思ったよりも小規模で済んでいる。


TE0720 No.4 (BNN-PYNQを動かしてみる 2)

TE0720でBNN-PYNQを動かすことが出来た。 以下は前回に続いてBNN-PYNQが動くまでの記録。 gdb (GNU debugger)で例外が出る原因を調べてみた。 例外が発生しているのはシェアードライブラリ(python_hw-cnv-pynq.so)の中であ...