M_AXI channels implement a separate channel for each pointer argument mapped to a single AXI interface, rather than requiring a separate adapter.
Figure 1. Maxi Adapter
This enables the following benefits:
- The kernel uses fewer M_AXI adapters and consumes fewer hardware resources.
- Multiple pointer arguments mapped to a single AXI interface can be used inside a dataflow region.
- Using a unique AXI ID for each pointer argument enables burst interleaving which can result in higher utilization of the AXI bus bandwidth.
There are two methods to enable this feature in your design:
- Enable globally on
m_axi
interfaces using theconfig_interface –m_axi_auto_id_channel=true
command. The HLS tool automatically adds channels to them_axi
adapter when this is enabled. Refer to config_interface for more information - Enable on a specific
m_axi
interface using thechannel
option of the INTERFACE pragma or directive as described in pragma HLS interface