diff --git a/src/cache_subsystem/wt_axi_adapter.sv b/src/cache_subsystem/wt_axi_adapter.sv index 20c638d66ddc9ababcd3ac1f30e1236ad237aeaf..eb095f58a3431187c26915c9d480814921f04211 100644 --- a/src/cache_subsystem/wt_axi_adapter.sv +++ b/src/cache_subsystem/wt_axi_adapter.sv @@ -84,6 +84,11 @@ module wt_axi_adapter import ariane_pkg::*; import wt_cache_pkg::*; #( logic dcache_rd_full, dcache_rd_empty; logic dcache_wr_full, dcache_wr_empty; + logic dcache_awaits_loads; + logic dcache_has_no_loads; + + assign dcache_awaits_loads = ~dcache_has_no_loads; + assign icache_data_ack_o = icache_data_req_i & ~icache_data_full; assign dcache_data_ack_o = dcache_data_req_i & ~dcache_data_full; @@ -263,6 +268,23 @@ module wt_axi_adapter import ariane_pkg::*; import wt_cache_pkg::*; #( .pop_i ( arb_ack[1] ) ); + fifo_v3 #( + .dtype (logic), + .DEPTH (ReqFifoDepth) + ) i_dcache_load_fifo ( + .clk_i (clk_i), + .rst_ni (rst_ni), + .flush_i (1'b0), + .testmode_i (1'b0), + .full_o (), + .empty_o (dcache_has_no_loads), + .usage_o (), + .data_i (1'b1), + .push_i (dcache_data_ack_o & (dcache_data_i.rtype == wt_cache_pkg::DCACHE_LOAD_REQ)), + .data_o (), + .pop_i (arb_ack[1] & (dcache_data.rtype == wt_cache_pkg::DCACHE_LOAD_REQ)) + ); + /////////////////////////////////////////////////////// // meta info feedback fifos ///////////////////////////////////////////////////////