
NATUを作る(パート25)
HARUは失敗に終わってしまった。
だが、その悔しさをバネに、新たにNATUを作ることになった。
今回は、一階と二階を繋げていきたいと思います。
制作
上から見た64×64は無事達成できそうですが、高さも出来れば64に収めたい、、
だけど、一階と二階を足した高さは48
ディスプレイの解像度は16×16、つまりサイズは32×32になるので、高さは64に収めることが出来ませんでした、、、
コピペ
まずは、一階をコピーしました!

それでは、次は二階をコピーします。
どの辺にしたりいいかな、、
あ、思い出した
実は、下の画像の青線で囲ったところが、一階からはみ出るように設置したかったんです。

その理由は、一階と二階を繋ぐ配線をしやすくするためです。
なので、それに合わせて位置を決めていきたいと思います。
二階も召喚しました!

実行ユニットとROMの間には大きなスペースが生まれていますが、、
ここに制御回路などを配置する予定です。
配線
それでは、配線をしていきたいと思います。
まずは、NX RED VIIIの実行ユニットとROMを接続していきたいと思います。

一応、beforeの画像も撮っておきます。
どのレジスタから出力させるのか指定する配線は、こんな感じでつなげば良さそう!

これで一応つながったけど、、、

ここは、あれを使った方がよさそうだ。
うん!
いい感じ!

この配線法を使うことで、一気に遅延を減らすことが出来ます。
この配線の遅延を減らすのは、条件分岐の高速化に貢献します。
この配線にも、各所にこだわりポイントがあるので、全て紹介していきます。
まず、ここ

この赤石ブロックは、負荷軽減用のものですが、このように設置することで、パウダーの形をリピーターの所と同じにできています。
また、二つ目の所も同じように赤石ブロックを置くことで、統一しています。

さらに、二つ目の所はあえて一段下にすることで、統一感を演出しています。
また、ここを繋ぐコンパレータも、出来る限り遅延を減らせるように配置されています。
また、全体で見た配線の形もこだわっています。
制作中は、赤の線の形にしようと思っていましたが、青の形の方がいいと思い、途中で変更しました。

このように、配線にもこだわりが詰まっているのでした。
それでは、ALUの命令を伝達する配線と、どのレジスタに保存するかを指定する配線も通していきます。
全ての配線を繋げましたが、、、
ここで問題が

なぜか1しか保存されないんです、、
インクリメント命令を繰り返しても、なぜか1しか保存されない、、
調べてみたら、アキュムレータの遅延がずれていたみたいなので、1遅延減らしたら、動きました!
ですが、、、今衝撃の事実が、、、、
I/Oポートが無いじゃないですか!?!?

すごく困りました。
これまでの努力が水の泡、、、
仕方ないので、I/Oポートだけコピーして貼り付けたいと思います、、、
それでは、次回はI/Oポートのコピーをしたいと思います。
今回は、約1時間の作業でした。
お疲れさまでした。
それじゃあ、次回、また会いましょう