CPU実験室

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

バスイネーブル修正

80386のマニュアルを読み直していましたが
SRAMへのアクセス不良はどうもADS#の処理に問題があるようです。
タイミングチャートで見る限りアドレスとR/Wが同時期にVALIDになっており
メモリのセットアップ時間が確保されていなかったようです

イメージ 1


現状はCPUから出力される4本のバスイネーブル信号BE0#~BE3#を直接メモリに
接続していましたが、CPLDのロジック変更によってADS#で抜いてみました

イメージ 2


するとばっちりOKです。

マシン語レベルメモリチェックやのsprintf()を含むCによるプログラムでも完璧な動作が
できるようになりました。
一応あとで波形とって見てみようと思います。