CPU実験室

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

ロジック修正

CPLDの不要、冗長な信号を削除してピン数を確保しなければなりません

まず以下のバスセレクト回路は既存ボードのロジックからそっくり持ってきたのですがこれは明らかに冗長な回路でした。最初のボード設計時に自信が無く4個のROM、4個のRAMのチップセレクトを全てCPLDで生成したのですが、実際はパラに接続したメモリは同時にアクティブにすればよく、バイトイネーブル信号BEn#はRAMのBHE#/BLE#に直接接続しバイト幅単位で書込み制御できれば良いことになります。

なのでこの回路はそっくり削除、一気に12ピン減りました

 

次に手を入れるのはメモリ空間のアドレスデコーダです

アドレス線を何本も引き込み細かくアドレスデコードをしていたのですが、ボードの中だけでメモリ空間が完結しているならばなにもreserved領域を確保する必要はありませんでした。このボードは外部にメモリ拡張する予定はないし拡張バスコネクタを置くスペースもありません。

一番単純なのはアドレス最上位A31でROMとRAMを切り分けてしまうことです

これで引き込みアドレス線を一気に減らせます。広大なアドレス空間を持つ32bitCPUにこんな8085Z80みたいなアドレスデコードでいいのか・・というのもありますけど

これでメモリマップを書くとこうなります。4GBのメモリ空間に配置された実メモリは1.25MB(フロッピ1枚分)。0.03%しか使ってなく膨大なイメージが発生します

i486のリセットベクタは他のx86系CPUと同じく物理アドレス最後の16byte、0xFFFFFFF0にありますがここにはROMのイメージが配置されるのでOKです