[hardware] Handle corner case of a single superbank per tile
@@ -259,7 +259,15 @@ module mempool_tile
tcdm_dma_req_t tcdm_dma_req_i_struct;
assign tcdm_dma_req_i_struct = tcdm_dma_req_i;
- // TODO: Handle special case of 1 superbank
+ if (NumSuperbanks == 1) begin : gen_dma_interco_bypass
+ assign tcdm_dma_req = tcdm_dma_req_i_struct;
+ assign tcdm_dma_req_valid = tcdm_dma_req_valid_i;
+ assign tcdm_dma_req_ready_o = tcdm_dma_req_ready;
+
+ assign tcdm_dma_resp_o = tcdm_dma_resp;
+ assign tcdm_dma_resp_valid_o = tcdm_dma_resp_valid;
+ assign tcdm_dma_resp_ready = tcdm_dma_resp_ready_i;
+ end else begin : gen_dma_interco
stream_xbar #(
.NumInp (1 ),
.NumOut (NumSuperbanks ),
@@ -303,6 +311,7 @@ module mempool_tile
.ready_i(tcdm_dma_resp_ready_i ),
.idx_o (/* Unused */ )
);
+ end
assign bank_req_ini_addr = superbank_req_ini_addr;
assign superbank_resp_ini_addr = bank_resp_ini_addr;
