学生と話をしていて、キャラクターディスプレイのことがよく伝わらなかったので、サンプルプログラムを作った。ビットマップディスプレイは直感的だけれど、キャラクターディスプレイは一度間接参照が入るので、初心者には分かりにくいのかも?
サンプルは、VGAの640x480画面にドットクロック25MHzで80桁x24行(程度)表示する。デバッグ用に、トップモジュールはsimという名前になっているので、FPGAベンダーのツールを使うときには注意が必要。(ファイル名!=トップモジュール)
フォントは、X11の8x16.bdfを同封し、これからキャラジェネのパターンを抽出するスクリプト、初期画面のデータを作成するスクリプトを用意して、合成可能なVerilogHDLファイルを生成するMakefileも入っている。
さくっと3時間ほどで作ったので、整理はされていないけれど、短いプログラムなので、じっくり読むと分かると思う。
ALTERAのDE0で動作確認済み。
DE0は、nCEとVGA出力ピンがぶつかっていて、そのままだとQuartusIIがエラーを出してコンパイルできない。設定から、nCEをユーザーIOに切り替える必要があるそうだ。