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