CPU実験室

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

ナローアクセス

ブート時にアクセスされるROMが1個というのは本当に助かります。モニタが乗るまでのデバッグ時は何度もROMを抜き差しして焼き直さないといけないのでそれが1個と4個では断然手間が違います。

ただ今回のブートROM部分の設計がほんとにこれでよいかがちょっと気になってます。Am29030ではバスサイジングできるとなっていますがこれはMC68020のようなダイナミックバスサイジング(DSACK0/1の返し方でバス幅8~32ビットが都度変えられる)ではなく初期化時の設定でナローアクセス幅は一意に決まってしまうようです。

このボードではROMアクセス時はナローアクセスで8ビット、RAMアクセス時はフルアクセス32ビット幅になることを期待して/ROMCSと/RDNを直結していますが/RDNの説明を見ると

f:id:O3I:20201028213701j:plain

 

8ビット幅にするにはリセット中に/RDNをHに保つ必要があるとなっています。タイミングチャートを見ても明示されてます。

f:id:O3I:20201028213057j:plain

 

ここでちょっと失敗だったのが/ROMCS(=/RDN)を生成するGALに/RESET信号を引き込んでなかったことです。RESETでROMCSをディセーブルしてやっていれば確実だったのですが・・現状の波形を見てみました。

上からMEMCLK(10MHz)、/RESET、/RDNで見た目/RESETがアサートの間は/RDNはHになっている(/REQでゲートしている為)ので大丈夫そうですが、問題は/RESETがディアサートされる前のMEMCLK4クロック間、/RDNがHになっているかです

f:id:O3I:20201028213221j:plain

 

時間軸を引き延ばしてみます。ワンショットなので暗いですが何しろ/RESET信号の立ち上がりが遅い・・TL7705のオープンコレクタそのままなのでそういう意味でもRESET信号はGALに通しておくべきでした

f:id:O3I:20201028220143j:plain

 

/RESETのスロープが緩やかなのでどこでディアサートされるかわかりませんがギリ大丈夫なようです。ナローアクセスに問題があるようであればGALにジャンパとなります