Global Memory

Global memory is accessed by the kernel through AXI4 master interfaces. Each AXI4 interface operates independently of each other. Each AXI4 interface can be connected to one or more memory controllers to off-chip memory such as DDR4. Global memory is primarily used to pass large data sets to and from the kernel from the host. It can also be used to pass data between kernels. See the Memory Performance Optimizations for AXI4 Interface section for recommendations on how to design these interfaces for optimal performance. For each interface, example AXI master logic is generated in the RTL kernel to provide a starting point and can be discarded if not used.

  • Number of AXI master interfaces:Specifies the number of AXI master interfaces present on the Kernel. You can specify a maximum of 16 interfaces. For each interface, you can customize an interface name, data width, and number of associated arguments. Each interface contains all read and write channels.

AXI Master Definition (table columns)

Interface Name: Specifies the name of the interface. To ensure maximum compatibility, the argument name follows the same identifier rules as the Kernel name.

Width (bytes): Specifies the data width of the AXI data channels. It is recommended this is matched to the native data width of the memory controller AXI4 slave interface. The memory controller slave interface is typically 64 bytes (512 bits) wide.

Number of Arguments: Specifies the number of arguments to associate with this interface. Each argument represents a data pointer to global memory that the kernel can access.The data type of the pointer is generic and can be anything as long as it is allocated correctly in the host code.

Argument Definition

Interface:Specifies the name of the AXI Interface that the corresponding columns in the current row are associated to. This value is not directly modifiable, it is copied from the interface name defined in the previous table.

Argument name: The argument name is used in the generated Verilog control register module as an output signal. Each argument is assigned an ID value. This ID value is used to access the argument from the host software. The ID value assignments can be found on the summary page of this wizard. To ensure maximum compatibility, the argument name follows the same identifier rules as the Kernel name.