AC的に多分大丈夫な設計になったので、先に考えていたタイミングで論理設計を始めました。
...っと忘れてた。SDRAM は初期設定が必要なようなので、これも実装しました。
SDRAM の初期設定
1)電源投入直後は、SD_CKE = L、SD_LDQM = H、SD_UDQM = H、にする。
2)リセット後、SD_CKE = H、SD_LDQM = L、SD_UDQM = L にする。SD_CLK にクロックを出力する。
3)200 μs 待つ。
4)precharge - ALL を発行する。
5)Auto Refresh を8回以上行う。
6)初期コマンドを設定する。設定する値は、バースト長1、CASレーテンシ2とする
これだけ実装して、やっとSDRAM にアクセスが可能となります。
ついでに、PC-6001 で使用するRAM に関しては、ALL 0xFF の書き込みを行います。
ただし、リセット後にRAM に残っている値を使うソフトもあるので、書き込みを禁止するモードも設けます。
SDRAM の試験はどうしようかと考えました。
SDカードの時は、ロジアナで観測しましたが、SDRAM に関してはかなり面倒です。
結局、立ち上げ時にBASICROM をSDカードから読み込んで、SDRAM に書き込む動作を利用しました。
BASICROM のデータをグラフィックデータに変更して、VDG の参照アドレスを通常のRAMではなく、BASICROM空間を表示させました。
かなり手こずると思ったんですが、一発で動きました(当然、シミュレーションでの確認は行っていましたが)。
ちょっとびっくりです。
2011年10月09日
この記事へのコメント
コメントを書く

