CPU実験室

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

ロジックミス修正

こうなると怪しいのはメモリのリード信号を生成している部分なのでCPLDの確認です。

以下の部分はCPUから出力されるバスサイクル:M/IO#,D/C#,W/R#をデコードして
バス制御信号を生成している部分ですが、
外部に出力されるMEMRD,MEMWRを負論理にするのを忘れていました!
赤丸のところにインバータを挿入

イメージ 1


メモリリードが#4と#6のORになっているのは命令フェッチとメモリデータ読取サイクルが
区別されているためです

これでシングルステップ回路を取り去りフリーランさせると無事きれいにループするようになりました。
あとループが遅いのはCPUclockが1.25MHzまで分周されていたためでした。

イメージ 2

ch1:データD0、ch2:アドレスA2

また駆動されなくてもいいはずのA2が変化しているのはプリフェッチのためかもしれません