Verilogでゲーム機をつくる本を買った
最近は仕事でFPGAを触ることが無くなったが、趣味で何かつくることは続けたいと思っている。何かネタ無いかな~と考えて、ゲームと絡めてなんか作れたら面白いかも…と思って「FPGA ゲーム」とググってみたら発見したのがこの洋書(ちなみに日本語で同じようなテーマの本は今のところなさそうだった)。
内容としてはverilogでゲームを作ろう、というコンセプト。ゲームといってもあまり複雑なものではなく、ブロック崩しとか弾除けゲームみたいな簡単なもののつくり方が紹介されている。
Zyboに組み込んで動かすまでの軌跡を日記に残してみる
とても面白い本なのだが、RTLを実際にFPGAに組み込んで動かす部分はあまり(というかほとんど)書かれてない。私は多少なりともFPGAの経験はあるので、サンプルコードを元に、私の手持ちのZybo(Xilinx社のFPGA・Zynqを搭載したボード)でpin制約など設定し、非同期の記述を同期に書き換えるなどして何となく動かせてはいる。以下は最初に出力してみたVGAのテストパターン。
FPGAでゲーム機をつくるってなかなか面白いと思うし、やりたい人も多いのではないかという気がするので、FPGAでゲーム機をつくるまでの軌跡を日記にしてまとめたいと思う。
当然、この本の内容を和訳してそのまま貼り付けるような書き方は著作権的に問題があるので、本のどの部分をやったかと、私の理解でzyboで実装するときのポイントだけ書いていく。詳しく理解したい人は本を買ってみてください。ゲーム機の歴史も知ることができて読みものとしても結構面白い。
ただし、サンプルとして公開されているverilogコードについてはCC0ライセンスと著者のgithubのprojectで名言されているため、zybo用にカスタマイズしたverilogコードは公開したいと思う。
できる限り他の人の参考になるように書きたいとは思うが、チュートリアルではなく日記として書くつもりなので、あまり細部までは解説してないのでご了承ください。
日記は以下にまとめています。
Zyboに初めて触る人は
また、Zyboに触ること自体が初めてな人は、まずはLチカ(LED点滅)からやってみると良いかも。参考までに、以下で私がLチカをやってみたときの日記を公開してます。