FPGA でゲーム機を作ろう(その3)

今年ももう年末です。いろいろとやらなくてはいけないことがあって,時間が取れないのですが,少しずつ進めていきます。

前回は,画面表示制御信号を生成し,モニターに表示するところまで作りました。

FPGA でゲーム機を作ろう(その2)

今回は,BG 画面の出力部分を作ります。

基本は,回路をそのまま HDL に落とします

BG 画面の表示の仕組みは以前の記事をご覧ください。

Z80 ゲーム機を作ろう(その6)

基本的には,以前作った回路をほぼそのまま HDL で書き直します。

水平カウンタと垂直カウンタから VRAM のアドレスを生成し,VRAM から読みだしたデータからさらに,CGROM のアドレスを生成します。

そして,CGROM から読みだしたデータを 1bit ずつモニターに出力してやればBG 画面が表示できます。

回路の使い回し

ロジック IC で作った時は,2 面ある BG は,物理的に 2 つ分の回路として基板を作りました。ほぼ同じ回路を 2 つ作る必要があったわけです。

HDL で書く場合は,当然,似たような回路は使い回しができます。ソフトウェアで言うところの,クラスとインスタンスのような感じです。

Mr.DO! には,固定 BG と,スクロール BG がありますが,その違いは表示開始位置を指定するスクロールレジスタがあるかないかです。

固定 BG は,スクロールレジスタをゼロ固定にしても表現することができるので,今回は,スクロール BG を 2 つ実装して,片方はスクロールレジスタの値を固定するようにしました。

スクロール BG の表示

まだ,画面の重ねあわせができないので,スクロール BG のみを表示してみます。

CPU も接続していないので,とりあえず,垂直カウンタをスクロールレジスタに接続して,縦横スクロールするようにしています。

さて,次回は,Z80 の IP コアを接続してみたいと思いますが,今年も残りあと僅かですので,次回は年明けになりそうですね。

それでは,良いお年を!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA