"testadd.asm" のアセンブル後の実行イメージである "testadd.hex" を KITE シミュレータ("kitesim")にかけると以下のような情報を得ることができます。
% kitesim testadd.hex Start address = 000 ---- acc=0000 ixr=000 sp=000 out=0000 pc=000 c108 ld #0x08 ---- acc=0008 ixr=000 sp=000 out=0000 pc=001 bc00 swp ---- acc=0800 ixr=000 sp=000 out=0000 pc=002 9100 or #0x00 ---- acc=0800 ixr=000 sp=000 out=0000 pc=003 f004 mv sp, acc ---- acc=0800 ixr=000 sp=800 out=0000 pc=004 c800 in 0x00 中略 ---- acc=0037 ixr=7fd sp=800 out=0000 pc=008 cc00 out 0x00 ---- acc=0037 ixr=7fd sp=800 out=0037 pc=009 f800 halt ---- acc=0037 ixr=7fd sp=800 out=0037 pc=00a f009 mv ixr, sp
"kite_test.v" の記述の中には、この期待値と同じ書式で実行結果を出力できる ように記述されています。シミュレーションを行うと、シミュレー ション時のログである "verilog.log" の中に以下のようなログが出力されます。
中略 ---- acc=0008 ixr=000 sp=000 out=0000 pc=001 bc00 ---- acc=0800 ixr=000 sp=000 out=0000 pc=002 9100 ---- acc=0800 ixr=000 sp=000 out=0000 pc=003 f004 中略 ---- acc=0037 ixr=7fd sp=800 out=0037 pc=009 f800 ---- acc=0037 ixr=7fd sp=800 out=0037 pc=00a f009 中略
したがって、KITE シミュレータの出力からアセンブリ記述を省いた部分のファ イルを期待値ファイルとして用意し、また、"verilog.log" ファイルから期待 値に対応する部分だけをコピーして一つのファイルにしておきます。あとは、 この二つのファイルを比較するだけです。
期待値のファイルを作成するには、リダイレクトを使って画面への出力をファ イルへ保存すれば可能です。(途中 IN 命令の入力値を要求してきますが、シ ミュレーションで使用する同じ値を入力します。シミュレーションでは “000a”(10進数での10)としています。 )
% kitesim testadd.hex > testadd.sim
期待値のファイル名を "testadd.sim"、論理シミュレータのファイル名を "simout.tmp" としたとき、"diff" コマンドの実行結果は、
[panther]~/work/cadence/4bit[1413]% diff testadd.sim simout.tmp [panther]~/work/cadence/4bit[1414]%
以上で、KITE-1マイクロプロセッサの記述は完成です。
次は、論理合成を行います。
My mail address is
kuga@cs.kumamoto-u.ac.jp .
Last modified on