Skip to content

Commit 3f729a0

Browse files
micprogda-gazzi
andcommitted
Multistream register frontend: Fix ctrl response handshake and dim
Co-authored-by: Georg Rutishauser <[email protected]>
1 parent b68a4f7 commit 3f729a0

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/frontend/reg/tpl/idma_reg.sv.tpl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,16 @@ module idma_${identifier} #(
8787
.devmode_i ( 1'b1 )
8888
);
8989

90+
logic read_happens;
9091
// DMA backpressure
9192
always_comb begin : proc_dma_backpressure
9293
// ready signal
9394
dma_ctrl_rsp_o[i] = dma_ctrl_rsp[i];
94-
dma_ctrl_rsp_o[i].ready = arb_ready[i];
95+
dma_ctrl_rsp_o[i].ready = read_happens ? arb_ready[i] : dma_ctrl_rsp[i];
9596
end
9697

9798
// valid signals
98-
logic read_happens;
99+
99100
always_comb begin : proc_launch
100101
read_happens = 1'b0;
101102
for (int c = 0; c < NumStreams; c++) begin
@@ -159,13 +160,13 @@ module idma_${identifier} #(
159160
// Disable higher dimensions
160161
if ( dma_reg2hw[i].conf.enable_nd.q == 0) begin
161162
% for nd in range(0, num_dim-1):
162-
arb_dma_req[i].d_req[${nd}].reps = '0;
163+
arb_dma_req[i].d_req[${nd}].reps = ${"'0" if nd != num_dim-2 else "'d1"};
163164
% endfor
164165
end
165166
% for nd in range(1, num_dim-1):
166167
else if ( dma_reg2hw[i].conf.enable_nd.q == ${nd}) begin
167168
% for snd in range(nd, num_dim-1):
168-
arb_dma_req[i].d_req[${snd}].reps = '0;
169+
arb_dma_req[i].d_req[${snd}].reps = 'd1;
169170
% endfor
170171
end
171172
% endfor

0 commit comments

Comments
 (0)