@@ -40,6 +40,14 @@ module snitch_cc #(
4040 parameter type axi_aw_chan_t = logic ,
4141 parameter type axi_req_t = logic ,
4242 parameter type axi_rsp_t = logic ,
43+ parameter type init_req_chan_t = logic ,
44+ parameter type init_rsp_chan_t = logic ,
45+ parameter type init_req_t = logic ,
46+ parameter type init_rsp_t = logic ,
47+ parameter type obi_a_chan_t = logic ,
48+ parameter type obi_r_chan_t = logic ,
49+ parameter type obi_req_t = logic ,
50+ parameter type obi_rsp_t = logic ,
4351 parameter type hive_req_t = logic ,
4452 parameter type hive_rsp_t = logic ,
4553 parameter type acc_req_t = logic ,
@@ -116,7 +124,8 @@ module snitch_cc #(
116124 // / Derived parameter *Do not override*
117125 parameter int unsigned TCDMPorts = (NumSsrs > 1 ? NumSsrs : 1 ),
118126 parameter type addr_t = logic [AddrWidth- 1 : 0 ],
119- parameter type data_t = logic [DataWidth- 1 : 0 ]
127+ parameter type data_t = logic [DataWidth- 1 : 0 ],
128+ parameter type addr_rule_t = axi_pkg :: xbar_rule_64_t
120129) (
121130 input logic clk_i,
122131 input logic clk_d2_i,
@@ -137,14 +146,18 @@ module snitch_cc #(
137146 // DMA ports
138147 output axi_req_t [DMANumChannels- 1 : 0 ] axi_dma_req_o,
139148 input axi_rsp_t [DMANumChannels- 1 : 0 ] axi_dma_res_i,
149+ output obi_req_t [DMANumChannels- 1 : 0 ] obi_dma_req_o,
150+ input obi_rsp_t [DMANumChannels- 1 : 0 ] obi_dma_res_i,
140151 output logic [DMANumChannels- 1 : 0 ] axi_dma_busy_o,
141152 output dma_events_t [DMANumChannels- 1 : 0 ] axi_dma_events_o,
142153 // Core event strobes
143154 output snitch_pkg :: core_events_t core_events_o,
144155 input addr_t tcdm_addr_base_i,
145156 // Cluster HW barrier
146157 output logic barrier_o,
147- input logic barrier_i
158+ input logic barrier_i,
159+ // address decode map
160+ input addr_rule_t [TCDMAliasEnable: 0 ] dma_addr_rule_i
148161);
149162
150163 // FMA architecture is "merged" -> mulexp and macexp instructions are supported
@@ -391,20 +404,32 @@ module snitch_cc #(
391404 .NumAxInFlight (DMANumAxInFlight),
392405 .DMAReqFifoDepth (DMAReqFifoDepth),
393406 .NumChannels (DMANumChannels),
407+ .TCDMAliasEnable (TCDMAliasEnable),
394408 .DMATracing (1 ),
395409 .axi_ar_chan_t (axi_ar_chan_t),
396410 .axi_aw_chan_t (axi_aw_chan_t),
397411 .axi_req_t (axi_req_t),
398412 .axi_res_t (axi_rsp_t),
413+ .init_req_chan_t (init_req_chan_t),
414+ .init_rsp_chan_t (init_rsp_chan_t),
415+ .init_req_t (init_req_t),
416+ .init_rsp_t (init_rsp_t),
417+ .obi_a_chan_t (obi_a_chan_t),
418+ .obi_r_chan_t (obi_r_chan_t),
419+ .obi_req_t (obi_req_t),
420+ .obi_res_t (obi_rsp_t),
399421 .acc_req_t (acc_req_t),
400422 .acc_res_t (acc_resp_t),
401- .dma_events_t (dma_events_t)
423+ .dma_events_t (dma_events_t),
424+ .addr_rule_t (addr_rule_t)
402425 ) i_idma_inst64_top (
403426 .clk_i,
404427 .rst_ni,
405428 .testmode_i ( 1'b0 ),
406429 .axi_req_o ( axi_dma_req_o ),
407430 .axi_res_i ( axi_dma_res_i ),
431+ .obi_req_o ( obi_dma_req_o ),
432+ .obi_res_i ( obi_dma_res_i ),
408433 .busy_o ( axi_dma_busy_o ),
409434 .acc_req_i ( acc_snitch_req ),
410435 .acc_req_valid_i ( dma_qvalid ),
@@ -413,7 +438,8 @@ module snitch_cc #(
413438 .acc_res_valid_o ( dma_pvalid ),
414439 .acc_res_ready_i ( dma_pready ),
415440 .hart_id_i ( hart_id_i ),
416- .events_o ( axi_dma_events_o )
441+ .events_o ( axi_dma_events_o ),
442+ .addr_map_i ( dma_addr_rule_i )
417443 );
418444
419445 // no DMA instanciated
0 commit comments