
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 件のコメント:
コメントを投稿