The streaming interfaces page allows configuration of AXI4-Stream interfaces on the kernel. Streaming interfaces are only available on select platforms and if the chosen platform does not support streaming, then the page does not appear. Streaming interfaces are used for direct host-to-kernel and kernel-to-host communication, as well as continuously operating kernels as described in Streaming Data Transfers.
Figure 1. RTL Kernel Wizard Streaming Interfaces Page
- Number of AXI4-Stream interfaces
- Specifies the number of AXI4-Stream interfaces that exist on the kernel. A maximum of 32 interfaces can be enabled per kernel. Xilinx recommends keeping the number of interfaces as low as possible to reduce the amount of area consumed.
- Name
- Specifies the name of the interface. To ensure maximum compatibility, the argument name follows the same identifier rules as the kernel name.
- Mode
- Specifies whether the interface is a master or slave interface. An AXI4-Stream slave interface is a read-only
interface, and the RTL kernel can be sent data with the
clWriteStream
API from the host program. An AXI4-Stream master interface is a write-only interface, and the host program can receive data through the interface with theclReadStream
API.
- Width (bytes)
- Specifies the
TDATA
width (in bytes) of the AXI4-Stream interface. This interface width is limited to 1 to 64 bytes in powers of 2.
The streaming interface uses the TDATA/TKEEP/TLAST
signals of
the AXI4-Stream protocol. Stream transactions consists
of a series of transfers where the final transfer is terminated with the assertion of
the TLAST
signal. Stream transfers must adhere to the following:
-
AXI4-Stream transfer occurs when
TVALID/TREADY
are both asserted. -
TDATA
must be 8, 16, 32, 64, 128, 256, or 512 bits wide. -
TKEEP
(per byte) must be all 1s whenTLAST
is 0. -
TKEEP
can be used to signal a ragged tail whenTLAST
is 1. For example, on a 4-byte interface,TKEEP
can only be0b0001
,0b0011
,0b0111
, or0b1111
to specify the last transfer is 1-byte, 2 bytes, 3 bytes, or 4 bytes in size, respectively. -
TKEEP
cannot be all zeros (even ifTLAST
is 1). -
TLAST
must be asserted at the end of a packet. -
TREADY
input/TVALID
output should be low if kernel is not started to avoid lost transfers.