これはどうやって検査するか。ここまで来たら楽しんでチェックもやるしかない^^)レジスタBの信号を取ると誤動作している。それともBで変なデータが生まれているのか。ROMをマイコンにしたことでのクロックタイミングの問題ではないかと思います。このCPUを作っていくうちに、内部の動作に深入りして動作原理がわかりましが、一つ、引っかかったのが各ブロックのクロックタイミングの問題。これは面倒なので深入りしなかったけど、結局、最後に考えさせられることになった。どのクロックタイミングでどんな動作をするのか。各命令は何クロック(何サイクル)か、などについて。これが原因でなかったとしても、調べることになる宿題のようです。ついでにCPUのクロックタイミングについて勉強するつもりで考えましょう。クロックを合図にプログラム行の読み込み命令が来て、ROMが行読み出し。CPUの実行時間にズレがあると正常には進まない。これも原因の1つに考えられます。この見当で進めてみることにします。完成したと思ってまたトラブルというのは疲れる。積み上げるように作ってきて、最後に動かないまま原因不明は、キジも犬も猿もそろえて最後の鬼退治で桃太郎が鬼に食べられるようなラストで後味が悪い。クロック検査とりあえず動くということで作ってきましたが、うすうす思っていたことがあります。最初のクロックが来てから、ROMのeeprom読み出しが間に合わないかも。これはマイコンROMとCPUの同期についてなので、LEDの確認ではどうしようもない。いうのは始める電子回路では反則技のように思いますが、飛び道具を出してきます(もはや何でも使うのじゃ)ロジアナ(ロジックアナライザ)でクロックを見てみました。思っていたように、完全にプログラムデータの読み出しが遅れていました。スイッチを入れてから、最初のプログラムアドレスを読み出すまでに4,5クロックあります。EEPROM読み出しのウエイト時間がかなり効いていたようです。他にも途中の伝達でもどっかでデータがずれそうに思います。近代的TD4ROMのAVRのプログラムから見直しになりました。作って、安定性を欠いていたところを見直して仕上げです。最後に仕上げの予定でしたが不具合対策になりました。なんだかよりCPUの内部にはいっていくようでおもしろくなりそうです。ここからはまたぼちぼちと進めたいと思います。始める電子工作メインページへ。