ROM /RAM イメージモデル

いままでは ROM や RAM のデータは case(address) と大量のラベルによって動かしていたのだが、C++ で書いたようなメモリとして組み込んだことがなかったので対照実験になってないと気づいた。なんでいままで気づかなかったのか。2年間ぐらい不思議にも思ってなかった。

というわけで reg [15:0] data [0:7'h3f]; みたいなものを用意して readmemh で読めるデータを渡してシミュレーションする方式に変更してみる。 readmemh のデータは特定のアドレスだけ初期化できるので、3か月ぐらい前に来んだ VRAM を解析して画面表示に使うデータだけを渡すということが簡単に実装できた。

readmemh をいれてシミュレーションしてみたら実行時間は全く変わらなかった。今まで無駄な待ち時間はほぼ同じだったということがわかって恥ずかしい気分を味わっただけで終わった。