@@ -40,6 +40,14 @@ module snitch_cc #(
40
40
parameter type axi_aw_chan_t = logic ,
41
41
parameter type axi_req_t = logic ,
42
42
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 ,
43
51
parameter type hive_req_t = logic ,
44
52
parameter type hive_rsp_t = logic ,
45
53
parameter type acc_req_t = logic ,
@@ -115,7 +123,8 @@ module snitch_cc #(
115
123
// / Derived parameter *Do not override*
116
124
parameter int unsigned TCDMPorts = (NumSsrs > 1 ? NumSsrs : 1 ),
117
125
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
119
128
) (
120
129
input logic clk_i,
121
130
input logic clk_d2_i,
@@ -136,14 +145,18 @@ module snitch_cc #(
136
145
// DMA ports
137
146
output axi_req_t [DMANumChannels- 1 : 0 ] axi_dma_req_o,
138
147
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,
139
150
output logic [DMANumChannels- 1 : 0 ] axi_dma_busy_o,
140
151
output dma_events_t [DMANumChannels- 1 : 0 ] axi_dma_events_o,
141
152
// Core event strobes
142
153
output snitch_pkg :: core_events_t core_events_o,
143
154
input addr_t tcdm_addr_base_i,
144
155
// Cluster HW barrier
145
156
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
147
160
);
148
161
149
162
// FMA architecture is "merged" -> mulexp and macexp instructions are supported
@@ -390,20 +403,32 @@ module snitch_cc #(
390
403
.NumAxInFlight (DMANumAxInFlight),
391
404
.DMAReqFifoDepth (DMAReqFifoDepth),
392
405
.NumChannels (DMANumChannels),
406
+ .TCDMAliasEnable (TCDMAliasEnable),
393
407
.DMATracing (1 ),
394
408
.axi_ar_chan_t (axi_ar_chan_t),
395
409
.axi_aw_chan_t (axi_aw_chan_t),
396
410
.axi_req_t (axi_req_t),
397
411
.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),
398
420
.acc_req_t (acc_req_t),
399
421
.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)
401
424
) i_idma_inst64_top (
402
425
.clk_i,
403
426
.rst_ni,
404
427
.testmode_i ( 1'b0 ),
405
428
.axi_req_o ( axi_dma_req_o ),
406
429
.axi_res_i ( axi_dma_res_i ),
430
+ .obi_req_o ( obi_dma_req_o ),
431
+ .obi_res_i ( obi_dma_res_i ),
407
432
.busy_o ( axi_dma_busy_o ),
408
433
.acc_req_i ( acc_snitch_req ),
409
434
.acc_req_valid_i ( dma_qvalid ),
@@ -412,7 +437,8 @@ module snitch_cc #(
412
437
.acc_res_valid_o ( dma_pvalid ),
413
438
.acc_res_ready_i ( dma_pready ),
414
439
.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 )
416
442
);
417
443
418
444
// no DMA instanciated
0 commit comments