@@ -46,7 +46,11 @@ module vortex_afu import ccip_if_pkg::*; import local_mem_cfg_pkg::*; import VX_
46
46
);
47
47
localparam LMEM_DATA_WIDTH = $bits (t_local_mem_data);
48
48
localparam LMEM_DATA_SIZE = LMEM_DATA_WIDTH / 8 ;
49
- localparam LMEM_ADDR_WIDTH = `VX_MEM_ADDR_WIDTH + ($clog2 (`VX_MEM_DATA_WIDTH ) - $clog2 (LMEM_DATA_WIDTH ));
49
+ localparam LMEM_ADDR_WIDTH = $bits (t_local_mem_addr);
50
+
51
+ localparam LMEM_BYTE_ADDR_WIDTH = LMEM_ADDR_WIDTH + $clog2 (LMEM_DATA_SIZE );
52
+ localparam CCI_VX_ADDR_WIDTH = `VX_MEM_ADDR_WIDTH + ($clog2 (`VX_MEM_DATA_WIDTH ) - $clog2 (LMEM_DATA_WIDTH ));
53
+
50
54
localparam LMEM_BURST_CTRW = $bits (t_local_mem_burst_cnt);
51
55
52
56
localparam CCI_DATA_WIDTH = $bits (t_ccip_clData);
@@ -103,8 +107,8 @@ module vortex_afu import ccip_if_pkg::*; import local_mem_cfg_pkg::*; import VX_
103
107
wire [127 : 0 ] afu_id = `AFU_ACCEL_UUID ;
104
108
105
109
wire [63 : 0 ] dev_caps = { 8'b0 ,
106
- 5 '(`PLATFORM_MEMORY_ADDR_WIDTH - 20 ),
107
- 3 '(`CLOG2 (`PLATFORM_MEMORY_BANKS )),
110
+ 5 '(LMEM_BYTE_ADDR_WIDTH - 20 ),
111
+ 3 '(`CLOG2 (NUM_LOCAL_MEM_BANKS )),
108
112
8 '(`LMEM_ENABLED ? `LMEM_LOG_SIZE : 0 ),
109
113
16 '(`NUM_CORES * `NUM_CLUSTERS ),
110
114
8 '(`NUM_WARPS ),
@@ -480,15 +484,15 @@ module vortex_afu import ccip_if_pkg::*; import local_mem_cfg_pkg::*; import VX_
480
484
481
485
VX_mem_bus_if # (
482
486
.DATA_SIZE (LMEM_DATA_SIZE ),
483
- .ADDR_WIDTH (LMEM_ADDR_WIDTH ),
487
+ .ADDR_WIDTH (CCI_VX_ADDR_WIDTH ),
484
488
.TAG_WIDTH (AVS_REQ_TAGW )
485
489
) cci_vx_mem_bus_if[2 ]();
486
490
487
491
VX_mem_adapter # (
488
492
.SRC_DATA_WIDTH (CCI_DATA_WIDTH ),
489
493
.DST_DATA_WIDTH (LMEM_DATA_WIDTH ),
490
494
.SRC_ADDR_WIDTH (CCI_ADDR_WIDTH ),
491
- .DST_ADDR_WIDTH (LMEM_ADDR_WIDTH ),
495
+ .DST_ADDR_WIDTH (CCI_VX_ADDR_WIDTH ),
492
496
.SRC_TAG_WIDTH (CCI_ADDR_WIDTH ),
493
497
.DST_TAG_WIDTH (AVS_REQ_TAGW ),
494
498
.REQ_OUT_BUF (0 ),
@@ -538,7 +542,7 @@ module vortex_afu import ccip_if_pkg::*; import local_mem_cfg_pkg::*; import VX_
538
542
.SRC_DATA_WIDTH (`VX_MEM_DATA_WIDTH ),
539
543
.DST_DATA_WIDTH (LMEM_DATA_WIDTH ),
540
544
.SRC_ADDR_WIDTH (`VX_MEM_ADDR_WIDTH ),
541
- .DST_ADDR_WIDTH (LMEM_ADDR_WIDTH ),
545
+ .DST_ADDR_WIDTH (CCI_VX_ADDR_WIDTH ),
542
546
.SRC_TAG_WIDTH (`VX_MEM_TAG_WIDTH ),
543
547
.DST_TAG_WIDTH (AVS_REQ_TAGW ),
544
548
.REQ_OUT_BUF (0 ),
@@ -579,14 +583,14 @@ module vortex_afu import ccip_if_pkg::*; import local_mem_cfg_pkg::*; import VX_
579
583
// --
580
584
VX_mem_bus_if # (
581
585
.DATA_SIZE (LMEM_DATA_SIZE ),
582
- .ADDR_WIDTH (LMEM_ADDR_WIDTH ),
586
+ .ADDR_WIDTH (CCI_VX_ADDR_WIDTH ),
583
587
.TAG_WIDTH (AVS_REQ_TAGW + 1 )
584
588
) mem_bus_if[1 ]();
585
589
586
590
VX_mem_arb # (
587
591
.NUM_INPUTS (2 ),
588
592
.DATA_SIZE (LMEM_DATA_SIZE ),
589
- .ADDR_WIDTH (LMEM_ADDR_WIDTH ),
593
+ .ADDR_WIDTH (CCI_VX_ADDR_WIDTH ),
590
594
.TAG_WIDTH (AVS_REQ_TAGW ),
591
595
.ARBITER (" P" ), // prioritize VX requests
592
596
.REQ_OUT_BUF (0 ),
@@ -602,8 +606,8 @@ module vortex_afu import ccip_if_pkg::*; import local_mem_cfg_pkg::*; import VX_
602
606
603
607
VX_avs_adapter # (
604
608
.DATA_WIDTH (LMEM_DATA_WIDTH ),
605
- .ADDR_WIDTH_IN (LMEM_ADDR_WIDTH ),
606
- .ADDR_WIDTH_OUT ($bits (t_local_mem_addr) ),
609
+ .ADDR_WIDTH_IN (CCI_VX_ADDR_WIDTH ),
610
+ .ADDR_WIDTH_OUT (LMEM_ADDR_WIDTH ),
607
611
.BURST_WIDTH (LMEM_BURST_CTRW ),
608
612
.NUM_BANKS (NUM_LOCAL_MEM_BANKS ),
609
613
.TAG_WIDTH (AVS_REQ_TAGW + 1 ),
0 commit comments