Description
Specifies the default interface options used to implement the RTL ports of each function during interface synthesis.
Syntax
config_interface [OPTIONS]
Options
-
-ap_memory_io: [=bus | port]
- The default is set to port.. Specifies how ap_memory interfaces will be modeled in RTL and IP.
-
-clock_enable[=true|false]
- Adds a clock-enable port (
ap_ce
) to the design. The default is false.The clock enable prevents all clock operations when it is active-Low. It disables all sequential operations
-
-default_slave_interface [none | s_axilite]
- Enables the default for the slave interface as either
none
, which is the default for the Vivado IP flow, or ass_axilite
which is the default for the Vitis Kernel flow, as described in Target Flow Overview. -
-m_axi_addr64[=true|false]
- Globally enables 64-bit addressing for all
m_axi
ports in the design. By default, this is enabled for the Vitis flow, and otherwise disabled. -
-m_axi_alignment_byte_size <size>
- Specifies the memory alignment boundary for
m_axi
interfaces provided as bitwidth. The<size>
value must be a valid power of 2. A value of 0 is an invalid value. The default value is 64 whenopen_solution -flow_target vitis
, and 1 when the-flow_target=vivado
, aligning to a single byte.Important: Burst behavior will be incorrect if pointers are not aligned at runtime. -
-m_axi_auto_id_channel[=true|false]
- Enable automatic assignment of channel IDs for
m_axi
interfaces. Refer to M_AXI Channels for more information. -
-m_axi_auto_max_ports[=true|false]
- If the option is
true
, all them_axi
interfaces that are not explicitly bundled, with INTERFACE pragmas or directives, will be mapped into individual interfaces, thus increasing the resource utilization (multiple adapters). The default isfalse
andm_axi
ports are bundled into a single interface. -
-m_axi_buffer_impl [auto | lutram | uram | bram]
- Select the implementation for all
m_axi
internal buffers. The choices areauto
,lutram
,bram
,uram
. The default isbram
. -
-m_axi_cache_impl [auto | lutram | uram | bram]
-
Specify the implementation resource for cache added to the
m_axi
adapters. The choices areauto
,lutram
,bram
,uram
. The default isauto
. -
-m_axi_conservative_mode=<true|false>
- This mode tells the
m_axi
not to issue a write request until the associated write data is entirely available (typically, buffered into the adapter or already emitted). It uses a buffer inside the MAXI adapter to store all the data for a burst (both in case of reading and in case of writing). This is enabled (true
) by default, and could slightly increase write latency but can resolve deadlock due to concurrent requests (read or write) on the memory subsystem. This feature can be disabled by setting it tofalse
. -
-m_axi_flush_mode
- Configure the
m_axi
adapter to be flushable, writing or reading garbage data if a burst is interrupted due to pipeline blocking, missing data inputs when not in conservative mode, or missing output space. The default isfalse
. This is enabled when the option is specified. -
-m_axi_latency <latency>
- Globally specifies the expected latency of the
m_axi
interface, allowing the design to initiate a bus request a number of cycles (latency) before the read or write is expected. The default value is 64 whenopen_solution -flow_target vitis
, and 0 when-flow_target vivado
. -
-m_axi_max_bitwidth <size>
- Specifies the maximum bitwidth for the
m_axi
interfaces data channel. The default is 1024 bits. The specified value must be a power-of-two, between 8 and 1024. Note that this decreases throughput if the actual accesses are bigger than the required interface, as they will be split into a multi-cycle burst of accesses. -
-m_axi_max_read_buffer_size <size>
- Overrides the size of the buffers for read data in the MAXI adapter, currently computed as the read burst size times the number of pending read bursts, in case the MAXI fabric provides some buffering already.
-
-m_axi_max_read_burst_length <size>
- Specifies a global maximum number of data values read
during a burst transfer for all
m_axi
interfaces. The default is 16. -
-m_axi_max_widen_bitwidth <size>
- Automatic port width resizing to widen bursts for the
m_axi
interface, up to the chosen bitwidth. The specified value must be a power of 2 between 8 and 1024, and must align with the-m_axi_alignment_size
. The default value is 512 whenopen_solution -flow_target vitis
, and 0 when the-flow_target vivado
. -
-m_axi_max_write_buffer_size <size>
- The option allows the designer to override the size of the buffers for write data in the MAXI adapter, currently computed as the write burst size times the number of pending write bursts, in case the MAXI fabric provides some buffering already.
-
-m_axi_max_write_burst_length <size>
- Specifies a global maximum number of data values written
during a burst transfer for all
m_axi
interfaces. The default is 16. -
-m_axi_min_bitwidth <size>
- Specifies the minimum bitwidth for the
m_axi
interfaces data channel. The default is 8 bits. The value must be a power of 2, between 8 and 1024. This does not necessarily increase throughput if the actual accesses are smaller than the required interface. -
-m_axi_num_read_outstanding <size>
- Specifies how many read requests can be made to the
m_axi
interface without a response, before the design stalls. The default value is 16. This implies internal storage in the design, and a FIFO of size:num_read_outstanding*max_read_burst_length*word_size
-
-m_axi_num_write_outstanding <size>
- Specifies how many write requests can be made to the
m_axi
interface without a response, before the design stalls. The default value is 16. This implies internal storage in the design, and a FIFO of size:num_write_outstanding*max_write_burst_length*word_size
-
-m_axi_offset [off | direct | slave]
- Globally controls the offset ports for all
m_axi
interfaces in the design.-
off
- No offset port is generated. This is the default value in the Vivado IP flow.
-
direct
- Generates a scalar input offset port for directly passing the address offset into the IP through the offset port.
-
slave
- Generates an offset port and automatically maps it to an AXI4-Lite slave. This is the default value.
-
-
-register_io [off | scalar_in | scalar_out | scalar_all]
- Globally enables registers for all inputs, all outputs, or
all ports on the top function. The default is
off
. -
-s_axilite_auto_restart_counter [ 0 | 1 ]
- Enables the auto-restart behavior for kernels. Use 0 to
disable the auto-restart feature, which is the default, or use 1 to enable
the feature. When enabled, the tool establishes the auto-restart bit in the
ap_ctrl_chain
control protocol for thes_axilite
interface. For more information refer to Continuously Running Kernels in Vitis Unified Software Platform Documentation: Application Acceleration Development (UG1393). -
-s_axilite_data64[=true|false]
- Set the data width for the
s_axilite
interface to 64 bits. -
-s_axilite_interrupt_mode[=cor|tow]
- Specify the interrupt mode for
s_axilite
interface to be Clear on Read (cor
) or Toggle on Write (tow
). Clear on Read interrupt can be completed in a single transaction, whiletow
requires two.Tow
is the default interrupt mode. -
-s_axilite_mailbox [both | in | out]
- Enables the creation of a mailboxes for non-stream
non-stable
s_axilite
arguments. The mailbox feature is used in the setting and management of never-ending kernels as described in Continuously Running Kernels in Vitis Unified Software Platform Documentation: Application Acceleration Development (UG1393). -
-s_axilite_status_regs [ecc | off]
-
Enables exposure of ECC error bits in the
s_axilite
register map via two clear-on-read (COR) counters per BRAM or URAM with ECC enabled.- off
- No status registers generated. This is the default setting.
- ecc
- Enable counters for ECC errors for BRAMs and URAMs
-
-s_axilite_sw_reset[=false|true]
- Enable the software reset of a kernel in the
s_axilite
adapter.
Examples
The following example adds a clock enable port to the IP:
config_interface -clock_enable