
NATUを作る(パート27)
HARUは失敗に終わってしまった。
だが、その悔しさをバネに、新たにNATUを作ることになった。
今回は、動作テストをしてから、I/Oポートの配線を繋げて、またテストしたいと思います。
テスト
テスト用仮回路
今回は、主にテスト回です。
テストの様子を動画などでみなさんに伝えるのが出来ないのは残念ですが、しっかりテストしていきたいと思います。
ですが、そのためにはこれまで使ってきたこの回路では限界があります。

上の画像の回路では、1つの命令を繰り返すしかできませんでした。
そこで、下の画像の回路を作りました。

この回路なら、三つの命令を繰り返し実行させられるので、前の演算結果が重要な場合など、いろんな場面を再現可能になり、一気にテストの幅が広がります。
テスト
それでは、まずは実行ユニットが正常に動作しているか、テストしていきたいと思います。
ちなみに、NX RED VIII(ver.1)の命令セットは下の画像の予定です。

(1/2Byte、2/2Byte、3/2Byte、4/2Byteの順番)
まずは、1 1 0 1と1 0 1 1を実行させたいと思います。
あら!?
1 0 1 1の時に誤作動しました!
調べてみたら、前勝手に変えちゃってたアキュムレータの制御回路の遅延が間違えていたみたいです。
修正しておきました。
それじゃぁ、次は、、2 1 0 1と2 1 0 1を実行させたいと思います。
この二つは問題なさそうです。
それでは、次はXNORとXORとANDとOR、全て一気に調べます。
ついでに加算と論理右シフト、右ローテートもやっちゃいました()
でも、問題はなさそうです。
ALUとアキュムレータはおそらく正常なので、今度はレジスタのテストをしていきます。
(アキュムレータは、まだ未完成のため、可能なところだけテスト)
全てのレジスタに0000 0000を保存して中身を確認し、そのあとに15番地を1111 1111にして中身を確認、14番地を1111 1111にして中身を確認、13番地を1111 1111にして中身を確認、、、、、そのあと1番地を0000 0000にもう一度書き換えて中身を確認、2番地を0000 0000に書き換えて中身を確認、、、、
こんな感じのテストを行いたいと思います。
テストの結果、問題ありませんでした。
ヨシッ!!
問題はありませんでしたが、この作業をやっているうちにだんだんと自信がついてきました。
それじゃぁ、I/Oポートの配線をしていきたいと思います。
I/Oポート
I/Oポートに命令を伝える配線を通していきたいと思います。
ですが、命令セットの画像をよーく見ると、I/Oポートの命令を読み出したときは、レジスタアドレスを指定していたところがレジスタアドレスではなくなり、I/Oポートのアドレスになります。
ここをしっかり切り替えられるように制御用の配線もしていきます。
そして、事件は起こった、、、
アレ!?無い!?

そう、レジスタデリートの配線が無かったのだ、、、

完成済みの実行ユニットの方を確認したら、既に取り付けられていた、、
I/Oポートもなかったし、きっとまだ未完成のI/Oポートをコピーしていしまっていたのだろう、、
ここは、お手本の画像を見ながら、手作業で修正しました。

カンペキ。
それじゃぁ、話を戻して、、
I/Oポートの配線をしていきます。
、、、、あれ、チカラが出ない、、、
気づいたら、1時間半やっていました。
活動限界です!()
今回はテストで終わってしまいました。
それでは、次回はI/Oポートを繋げたいと思います。
今回は、約1時間半の作業でした。
お疲れさまでした。
それじゃあ、次回、また会いましょう