CPU実験室

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

書込みデータ修正

GALへの書込みデータや読出しデータのダンプを見ているうちに原因に気付きました
 
ISP LEVERが出力するJEDECファイルは論理ヒューズの変更があるブロックのデータしか出力されません。転送されなかったブロックの論理ヒューズは「F0*」でデフォルト値「0」が示されていることを忘れていました
 
 
イメージ 1
 
 
 
書込み前にGALの内容をイレーズすると論理ヒューズは全て「1」にセットされ、ライタ内のバッファもオール「1」で初期化していました。
JEDECファイルの論理ヒューズブロックだけ転送すると指定されなかった部分は「1」が残ってしまい全く違ったロジックが書き込まれてしまうというわけです
とりあえず既存の機能であるDataFill-00でバッファをオール0クリアしてからJEDECファイルを読込みGALに書込むことでうまく行きました。
ブレッドボード上でGAL単体のロジックテストもOKです
 
こういう手作業はたぶん次回また忘れるので、デフォルト値をJEDECファイルから読んでクリアする処理をライタのプログラムに埋め込んでおこうと思います
 
イメージ 4
 
 
 
というわけで書込み成功したGALを基板に挿入。再び起動直後のバスの動きを観察してみました。リセット解除後にアドレスバスがリセットベクタ0xFFFF0(おそらく・・)にセットされ/ROMCSがアクティブになりました ←ここまで大成功
 
 
 
イメージ 2
 
 
このあとROM内でループするはずなのですが、見ているとROMからコードを4回フェッチしたあと大きくジャンプしてROMの外へ飛び出てしまっています。(/ROMCSがディセーブルになっている)
 
観測する時間軸を延ばしてみるとあらぬところ、おそらくSRAM上でループしています
・・・まだROMのコードがうまく読めてないようです
 
 
 
イメージ 3