Figure 1. RTL Kernel Wizard Global Memory Page
Global memory is accessed by the kernel through AXI4 master interfaces. Each AXI4 interface operates independently of each other, and 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. For recommendations on how to design these interfaces for optimal performance, see Memory Performance Optimizations for AXI4 Interface.
Tip: For each interface, the RTL Kernel wizard generates example AXI master logic in the top-level wrapper to provide a starting point that can be discarded if not needed.
- Number of AXI master interfaces
- Specify the number of interfaces present on the kernel. The maximum is 16 interfaces. For
each interface, you can customize an interface name, data width, and the number of associated
arguments. Each interface contains all read and write channels. The default names proposed by
the RTL kernel wizard are
m01_axi. If not changed, these names will have to be used when assigning an interface to global memory as described in Mapping Kernel Ports to Memory.
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 (in bytes)
- Specifies the data width of the AXI data channels. Xilinx recommends matching 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.
- Specifies the name of the AXI Interface. This value is copied from the interface name defined in the table, and cannot be modified here.
- Argument name
- Specifies the name of the pointer argument as it appears on the function prototype signature. Each argument is assigned an ID value. This ID value is used to access the argument from the host software as described in Host Programming. 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. The argument name is used in the generated RTL kernel control register module as an output signal.