You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dxa: size smem address datapath to LMEM byte-address width
The DXA shared-memory (LMEM) byte address was carried as
VX_CFG_MEM_ADDR_WIDTH (48b on XLEN=64) — the global-memory width — even
though it only ever indexes one core's LMEM. Introduce
DXA_SMEM_ADDR_W = VX_CFG_LMEM_LOG_SIZE (the LMEM byte-address width, same
as VX_local_mem's ADDR_WIDTH) and use it across the whole smem datapath:
dxa_req_data_t.smem_addr, dxa_setup_params_t.initial_smem_base, setup's
r_/s_initial_smem_base, addr_gen's smem_byte_addr_r/km_row_base_r and
out_smem_byte_addr, worker's ag_/sw_smem_byte_addr and the gmem_req
SMEM_ADDR_W param, and smem_wr's pend_/defer_/fb_byte_addr_r and
fb_load_smem_byte_addr. The unit producer slices the LMEM-relative
address to DXA_SMEM_ADDR_W; UNUSED_VAR covers the LMEM-bounded upper bits
of km_step_in_row and per_lane_stride_bytes. GMEM addresses and the
already-tight LMEM word-address internals are unchanged. Elaborates clean
on build64.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments