徒然なる日々を送るソフトウェアデベロッパーの記録(2)

技術上思ったことや感じたことを気ままに記録していくブログです。さくらから移設しました。

何とか VGA ディスプレイを作成

前回、AXI4 の仕様に悪戦苦闘していましたが、
AXI4バスの仕様に悪戦苦闘中 - 徒然なる日々を送るソフトウェアデベロッパーの記録(2)
何とか表示できるようになりました。

お手本

FPGAプログラミング大全 Xilinx編

FPGAプログラミング大全 Xilinx編

に答えは書いてあるのですが、一応仕様だけ参照させてもらって
中身は自分の頭で考えてみました。

無駄な回路がまだ残っていますが、結果は
https://github.com/minosys-jp/FPGA
にあります。

当初、Vivado のシミュレータでは問題なかったのに実際に表示させて
みると数秒に1回画面が振動するという問題に遭遇しました。
原因は出力の最終段を FF で受けていなかったためで、グリッチ
出ていてディプレイが誤動作したものと推測されます。

参照した本では AR と READ を交互に発行していますが、本実装では
発行可能な限り AR を発行し続けるようになっています。
READ 後に AR を待たないので、読み込みがだいぶ効率化しているはず。
ただし、4K バイト境界の問題を回避するため、AR を1回行うごとに
ARVALID をデアサートしています。ここは今後の課題かも。

VGA 画面にはカラーバーと Mandelbrot 集合を描画するようにしました。
32768色しかでないけどそこそこ様になったようです。