@@ -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 ,
@@ -115,7 +123,8 @@ module snitch_cc #(
115123 // / Derived parameter *Do not override*
116124 parameter int unsigned TCDMPorts = (NumSsrs > 1 ? NumSsrs : 1 ),
117125 parameter type addr_t = logic [AddrWidth- 1 : 0 ],
118- parameter type data_t = logic [DataWidth- 1 : 0 ]
126+ parameter type data_t = logic [DataWidth- 1 : 0 ],
127+ parameter type addr_rule_t = axi_pkg :: xbar_rule_64_t
119128) (
120129 input logic clk_i,
121130 input logic clk_d2_i,
@@ -136,14 +145,18 @@ module snitch_cc #(
136145 // DMA ports
137146 output axi_req_t [DMANumChannels- 1 : 0 ] axi_dma_req_o,
138147 input axi_rsp_t [DMANumChannels- 1 : 0 ] axi_dma_res_i,
148+ output obi_req_t [DMANumChannels- 1 : 0 ] obi_dma_req_o,
149+ input obi_rsp_t [DMANumChannels- 1 : 0 ] obi_dma_res_i,
139150 output logic [DMANumChannels- 1 : 0 ] axi_dma_busy_o,
140151 output dma_events_t [DMANumChannels- 1 : 0 ] axi_dma_events_o,
141152 // Core event strobes
142153 output snitch_pkg :: core_events_t core_events_o,
143154 input addr_t tcdm_addr_base_i,
144155 // Cluster HW barrier
145156 output logic barrier_o,
146- input logic barrier_i
157+ input logic barrier_i,
158+ // address decode map
159+ input addr_rule_t [TCDMAliasEnable: 0 ] dma_addr_rule_i
147160);
148161
149162 // FMA architecture is "merged" -> mulexp and macexp instructions are supported
@@ -390,20 +403,32 @@ module snitch_cc #(
390403 .NumAxInFlight (DMANumAxInFlight),
391404 .DMAReqFifoDepth (DMAReqFifoDepth),
392405 .NumChannels (DMANumChannels),
406+ .TCDMAliasEnable (TCDMAliasEnable),
393407 .DMATracing (1 ),
394408 .axi_ar_chan_t (axi_ar_chan_t),
395409 .axi_aw_chan_t (axi_aw_chan_t),
396410 .axi_req_t (axi_req_t),
397411 .axi_res_t (axi_rsp_t),
412+ .init_req_chan_t (init_req_chan_t),
413+ .init_rsp_chan_t (init_rsp_chan_t),
414+ .init_req_t (init_req_t),
415+ .init_rsp_t (init_rsp_t),
416+ .obi_a_chan_t (obi_a_chan_t),
417+ .obi_r_chan_t (obi_r_chan_t),
418+ .obi_req_t (obi_req_t),
419+ .obi_res_t (obi_rsp_t),
398420 .acc_req_t (acc_req_t),
399421 .acc_res_t (acc_resp_t),
400- .dma_events_t (dma_events_t)
422+ .dma_events_t (dma_events_t),
423+ .addr_rule_t (addr_rule_t)
401424 ) i_idma_inst64_top (
402425 .clk_i,
403426 .rst_ni,
404427 .testmode_i ( 1'b0 ),
405428 .axi_req_o ( axi_dma_req_o ),
406429 .axi_res_i ( axi_dma_res_i ),
430+ .obi_req_o ( obi_dma_req_o ),
431+ .obi_res_i ( obi_dma_res_i ),
407432 .busy_o ( axi_dma_busy_o ),
408433 .acc_req_i ( acc_snitch_req ),
409434 .acc_req_valid_i ( dma_qvalid ),
@@ -412,7 +437,8 @@ module snitch_cc #(
412437 .acc_res_valid_o ( dma_pvalid ),
413438 .acc_res_ready_i ( dma_pready ),
414439 .hart_id_i ( hart_id_i ),
415- .events_o ( axi_dma_events_o )
440+ .events_o ( axi_dma_events_o ),
441+ .addr_map_i ( dma_addr_rule_i )
416442 );
417443
418444 // no DMA instanciated
0 commit comments