2011年2月11日金曜日

粗動作確認

zumi32を下図の様な構成にし、simulationで粗動作確認を始めた。



programは下図の様に機能検査を行い結果が正常なら次の検査へ分岐する。
結果が期待通りでなければ、HALT命令を実行して停止する。


上図の部分の波形は以下のようになる。


ib_renはinstruction memoryのread strobe, ib_adrはaddress, ib_datはread dataだ。
fe_enはfetch unitからexec unitへのenable、ef_rdyはexec_unitからfetch_unitへの
ready信号でこの2信号でhand-shakeを行いながら動作する。
fe_pcはaddress tagで、ef_pcはPC (program counter)の値、fe_abrkはaddress tagと
PCの値が不一致になった場合にinstruction queueをclearするための信号だ。
上記のAssemble listの通りprogramは始めに0x100に分岐するが、波形のef_pcの値も
その通りの変化をしていることが判る。


上図はADD命令によるregister間のdata copy checkだ。
これの波形は以下の通りだ。

 

以下はload, store, swap命令だ。



ということで、これまでの動作は問題なさそうだ。
引き続きload, store系の8bit, 16bit accessや割込み動作等をみて
良ければ合成してみようと思う。


0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 25

まだ制御ソフトが完成していないので今まではスピンドルを移動するために一々簡単なプログラムを書いて移動させていたのだが、非常に面倒なのでCNCペンダント的なものを作ることにした。 右側の縦に2つ並んでいるスイッチ...