@@ -198,10 +198,13 @@ localparam BEATS_PER_BURST_WIDTH_DEST = BYTES_PER_BURST_WIDTH - BYTES_PER_BEAT_W
198
198
199
199
localparam BURSTS_PER_TRANSFER_WIDTH = DMA_LENGTH_WIDTH - BYTES_PER_BURST_WIDTH;
200
200
201
- reg eot_mem[0 :2 ** ID_WIDTH- 1 ];
201
+ reg eot_mem_src[0 :2 ** ID_WIDTH- 1 ];
202
+ reg eot_mem_dest[0 :2 ** ID_WIDTH- 1 ];
202
203
wire request_eot;
204
+ wire source_eot;
203
205
204
206
wire [ID_WIDTH- 1 :0 ] request_id;
207
+ wire [ID_WIDTH- 1 :0 ] source_id;
205
208
wire [ID_WIDTH- 1 :0 ] response_id;
206
209
207
210
wire enabled_src;
@@ -288,7 +291,12 @@ assign dbg_src_response_id = src_response_id;
288
291
289
292
always @(posedge req_clk)
290
293
begin
291
- eot_mem[request_id] <= request_eot;
294
+ eot_mem_src[request_id] <= request_eot;
295
+ end
296
+
297
+ always @(posedge src_clk)
298
+ begin
299
+ eot_mem_dest[source_id] <= source_eot;
292
300
end
293
301
294
302
always @(posedge req_clk)
@@ -311,8 +319,8 @@ assign dest_clk = m_dest_axi_aclk;
311
319
assign dest_ext_resetn = m_dest_axi_aresetn;
312
320
313
321
wire [ID_WIDTH- 1 :0 ] dest_address_id;
314
- wire dest_address_eot = eot_mem [dest_address_id];
315
- wire dest_response_eot = eot_mem [dest_response_id];
322
+ wire dest_address_eot = eot_mem_dest [dest_address_id];
323
+ wire dest_response_eot = eot_mem_dest [dest_response_id];
316
324
317
325
assign dbg_dest_address_id = dest_address_id;
318
326
assign dbg_dest_data_id = dest_data_response_id;
@@ -442,8 +450,8 @@ assign dest_ext_resetn = 1'b1;
442
450
443
451
wire [ID_WIDTH- 1 :0 ] data_id;
444
452
445
- wire data_eot = eot_mem [data_id];
446
- wire response_eot = eot_mem [dest_response_id];
453
+ wire data_eot = eot_mem_dest [data_id];
454
+ wire response_eot = eot_mem_dest [dest_response_id];
447
455
448
456
assign dest_data_request_id = dest_request_id;
449
457
@@ -504,8 +512,8 @@ assign dest_ext_resetn = 1'b1;
504
512
505
513
wire [ID_WIDTH- 1 :0 ] data_id;
506
514
507
- wire data_eot = eot_mem [data_id];
508
- wire response_eot = eot_mem [dest_response_id];
515
+ wire data_eot = eot_mem_dest [data_id];
516
+ wire response_eot = eot_mem_dest [dest_response_id];
509
517
510
518
assign dest_data_request_id = dest_request_id;
511
519
@@ -560,12 +568,15 @@ end endgenerate
560
568
561
569
generate if (DMA_TYPE_SRC == DMA_TYPE_MM_AXI) begin
562
570
571
+ assign source_id = src_address_id;
572
+ assign source_eot = src_address_eot;
573
+
563
574
assign src_clk = m_src_axi_aclk;
564
575
assign src_ext_resetn = m_src_axi_aresetn;
565
576
566
577
wire [ID_WIDTH- 1 :0 ] src_data_id;
567
578
wire [ID_WIDTH- 1 :0 ] src_address_id;
568
- wire src_address_eot = eot_mem [src_address_id];
579
+ wire src_address_eot = eot_mem_src [src_address_id];
569
580
570
581
assign dbg_src_address_id = src_address_id;
571
582
assign dbg_src_data_id = src_data_id;
@@ -644,7 +655,7 @@ if (DMA_TYPE_SRC == DMA_TYPE_STREAM_AXI) begin
644
655
assign src_clk = s_axis_aclk;
645
656
assign src_ext_resetn = 1'b1 ;
646
657
647
- wire src_eot = eot_mem [src_response_id];
658
+ wire src_eot = eot_mem_src [src_response_id];
648
659
649
660
assign dbg_src_address_id = 'h00;
650
661
assign dbg_src_data_id = 'h00;
@@ -680,6 +691,9 @@ dmac_src_axi_stream #(
680
691
.bl_ready(src_bl_ready),
681
692
.measured_last_burst_length(src_burst_length),
682
693
694
+ .source_id(source_id),
695
+ .source_eot(source_eot),
696
+
683
697
.fifo_valid(src_valid),
684
698
.fifo_data(src_data),
685
699
.fifo_last(src_last),
@@ -701,10 +715,13 @@ end
701
715
702
716
if (DMA_TYPE_SRC == DMA_TYPE_FIFO) begin
703
717
718
+ assign source_id = src_response_id;
719
+ assign source_eot = src_eot;
720
+
704
721
assign src_clk = fifo_wr_clk;
705
722
assign src_ext_resetn = 1'b1 ;
706
723
707
- wire src_eot = eot_mem [src_response_id];
724
+ wire src_eot = eot_mem_src [src_response_id];
708
725
709
726
assign dbg_src_address_id = 'h00;
710
727
assign dbg_src_data_id = 'h00;
0 commit comments