NaxRiscvのVerilogコードだが、やっぱり何が書いてあるのかさっぱりわからない。
とりあえず、FetchPCプラグインのモジュールを切り出して、何が起きているのかを確認したい。
多分FetchPCをモジュールとして切り出すと、界面のインタフェースは以下のようになると思う:
module pcplugin ( input logic clk, input logic reset, output logic fetchPc_output_valid, input logic fetchPc_output_ready, output logic [39: 0] fetchPc_output_payload, input logic FetchPlugin_stages_0_ready, input logic jump_pcLoad_valid, input logic [39: 0] jump_pcLoad_payload_pc, );
FetchPCの出力を今度はFetchPluignに渡して、それがキャッシュに渡される、という感じかな。
//FETCH plugins += new FetchPlugin() plugins += new PcPlugin(resetVector) plugins += new FetchCachePlugin( ...
問題は、この界面がVerilogファイル生成時にごちゃまぜにされており、モジュールの切り分けがうまくいかないところだ。
FetchCachePlugin
はキャッシュに相当するところなのでこれはちゃんと切り分けたいのだが...