FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

自作CPUの命令発行ユニット変更作業

自作CPUの命令発行ユニットは、現時点であまり効率が良くないので改善したい。 通常命令発行ユニットは命令が発行して、オペランドの投機などが確定するとエントリを削除することができるのだが、それをやっていない。 つまり、命令が発行してからパイプラインを通過して、命令が完了するまでエントリから抜けない仕組みになっていた。 これは効率が悪いので、ステートマシンを書き換えている。

今のところ、単純なテストパタンは通るようになったが、結構なテストパタンがFailした状態になっている。これは要デバッグ

simple_add      : PASS
simple_lw       : PASS
simple_auipc    : PASS
simple_lbu      : PASS
simple_sb       : PASS
ldq_stq_flush   : PASS
rv64ui-p-slt    : ERROR
rv64ui-p-simple : PASS
rv64ui-p-jal    : PASS
rv64ui-p-srliw  : ERROR
rv64ui-p-srai   : UNKNOWN
rv64ui-p-bgeu   : UNKNOWN
rv64ui-p-lh     : UNKNOWN
serialdevice    : PASS
rv64ui-p-or     : PASS
rv64ui-p-and    : PASS
simple_lwu      : PASS
simple_sub      : PASS
simple_lui      : PASS
long_chain_addi : PASS
simple_branch   : PASS
ras_check       : PASS
rv64ui-p-slti   : UNKNOWN
rv64ui-p-sll    : UNKNOWN
rv64ui-p-sraiw  : UNKNOWN
simple_lh       : PASS
rv64ui-p-srlw   : UNKNOWN
rv64ui-p-jalr   : PASS
x0_rename       : PASS
simple_sd       : PASS