こうなると怪しいのはメモリのリード信号を生成している部分なのでCPLDの確認です。
以下の部分はCPUから出力されるバスサイクル:M/IO#,D/C#,W/R#をデコードして
バス制御信号を生成している部分ですが、
外部に出力されるMEMRD,MEMWRを負論理にするのを忘れていました!
赤丸のところにインバータを挿入
バス制御信号を生成している部分ですが、
外部に出力されるMEMRD,MEMWRを負論理にするのを忘れていました!
赤丸のところにインバータを挿入
メモリリードが#4と#6のORになっているのは命令フェッチとメモリデータ読取サイクルが
区別されているためです
区別されているためです
これでシングルステップ回路を取り去りフリーランさせると無事きれいにループするようになりました。
あとループが遅いのはCPUclockが1.25MHzまで分周されていたためでした。
あとループが遅いのはCPUclockが1.25MHzまで分周されていたためでした。
ch1:データD0、ch2:アドレスA2
また駆動されなくてもいいはずのA2が変化しているのはプリフェッチのためかもしれません