NATUを作る(パート37)
HARUは失敗に終わってしまった。
だが、その悔しさをバネに、新たにNATUを作ることになった。
今回は、CPUとGPUを接続していきたいと思います。
制作
レジスタからの読み出し
今設置したこの赤い回路が、GPUの命令を読み出したときに、レジスタの情報を読み出してくれます。
一回目が画像データの情報で、二回目が座標の情報です。
読み出しは、ちゃんと2rt以内に収めることで、他スレッドの邪魔をしないようにしています。
そして、読み出した情報をGPU・GRED II(ver.3)へ送ることで、GRED II(ver.3)が処理を行えるようになります。
配線、頑張らないと、、
GRED II(ver.2)の接続
CPUとGPUを接続する前に、GPU内の配線を繋げた方がいい気がしてきたので、先にこっちの配線をします。
でも、遅延調整はまだしなくて、配線のだけ先に通して、CPUとGPUの配線をどこに通すか決める感じです。
とりあえず、VROMのデータを描画回路に送る配線だけ通したいと思います。
なんと!?!?
リピーターが2rtになっているところがあるではありませんか、、
他にもこうなっているところがあったので、1rtに修正しておきました。
あと、0番地は封印しました。
常に0番地の情報を読み出されてしまうと、かなり厄介なので、、、
配線が完了しました!
あ、配線がまだ改良できそうなので、改良してきます。
改良しました。
これで、遅延が大幅に減ったはずです。
それでは、CPUとGPUを接続していきたいと思います。
CPUとGPUの接続
一番最初の赤の回路に、見落としがあったので、修正しました。
プログラム的には、14番地で画像の指定、15番地の下位4bitでX座標指定、15番地の上位4bitでY座標指定
といった感じになりそうです。
よし!
無事、座標とかを送る配線を繋げるのが終わりました!
それでは、制御関係の配線を繋げていきたいと思います。
制御関係の配線も繋ぎました!
テストしてみましたが、GPUに情報を送ることが出来ました!
それでは、次は、、、sushi memory architectureのクロックを作っていきたいと思います。
クロック回路で、疑似的にアドレスをループさせているので、周期の異なるクロック回路が必要です。
周期の異なる八つのクロックが完成しました!
これで、疑似的にアドレスをループさせられるはずです。
実際に動かしてみましたが、目で見た感じ、問題はなさそうでした。
それじゃぁ、とりあえず今回はこんな感じで終わりにしたいと思います。
結構進んだと思います!
CPUとGPUがつながったのだけでも、十分大きな進歩だと思っています!
それでは、次回は、GPUの配線と動作テストをしていきたいと思います。
今回は、約1時間20分の作業でした。
お疲れさまでした。
それじゃあ、次回、また会いましょう