@@ -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