CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

メモリマップ

アドレスデコーダ設計に当たりDSP56001から見えるメモリマップを決めておきます。まずプログラムメモリ空間ですがDSPモード3(64kbyte全て外部に開放)で起動するものとして、リセットベクタ0000Hを含む前半32kbyteにROM、後半32kbyteにRAMを配置することでデコードは非常に簡単です

一方データメモリ空間ですがこれのデコードは少し面倒です。まずデータメモリはXDATAYDATAの2系統ありそれを1個のRAMにまとめることと、それぞれの空間の先頭に内蔵ROM、最後に内蔵I/Oが割り付けられているのでこれを避けるようにメモリのアドレスデコードをしてやる必要があります。といってもこれはいつも悩みがちなんですが内蔵デバイスと外付けデバイスのアドレスがオーバーライドしているときどちらが優先されるのかということです。内蔵優先であればアドレスデコーダは単純化できます。

 

これらのメモリのチップセレクトを発生するGALロジックをWinCuplでコーディングしました。GALにはアドレス上位8bit(A15~A8)を引き込んであるので最小100H単位でアドレス決めができますがあまり細かく刻むとGAL内のOR項が足らなくなりフィッティングで失敗します