2026.05 and AXI4Memory
Problem and Solution
In 2026.05, AXI4 Memory is now AXI word width where previously it was byte width. This impacts indirect accesses to the memory using NewID.
Use case for older releases (2026.01 and before):
vMemID := NewID(
Name => MEMORY_NAME,
AddrWidth => AXI_ADDR_WIDTH,
DataWidth => 8,
ParentID => ParentID,
Search => NAME
) ;
With 2026.05, the call to NewID needs to be updated as follows:
vMemID := NewID(
Name => MEMORY_NAME,
AddrWidth => AXI_ADDR_WIDTH - AXI_BYTE_ADDR_WIDTH, -- was AXI_ADDR_WIDTH
DataWidth => AXI_DATA_WIDTH, -- was 8
ParentID => ParentID,
Search => NAME
) ;
What happened behind the scenes
AXI4 Memory is now AXI word width where previously it was byte width. This update plus updates to MemoryGenericPkg done in 2022.08, reduce the amount of memory used by the AXI4 Memory VC.
This is particularly true with implementations that implement integer as 64 bits. Note that this release also updated the MemoryGenericPkg support to automatically detect an implementation have 32 bit or 64 bit integers.
Thanks to Patrick Lehmann
Thanks to Patrick for reporting this.