The AxiStreamBatcher firmware module takes incoming AXI stream and combines multiple sub-frames (packets) into a larger super-frame.
...
The batching protocol does not support interleaved AXI streams, which means the same continuous TDEST must be asserted partial frame interleaving for the entire sub-frameframes. Different A sub-frames can have different TDEST valuesframe must be an entire AXI stream frame.
Together these features are very useful for sending high rate (>1MHz), small AXI-Stream frame into a CPU.
...
Name | Description |
---|---|
MAX_NUMBER_SUB_FRAME_G | Max. number of sub-frames in a super-frame |
MAX_SUPER_FRAME_THRESHOLD_G | Sets the super-frame threshold (in units of bytes) to terminate the super-frame at the end of the current sub-frame |
MAX_CLK_GAP_G | Sets the max. number of clocks cycle between sub-frame to terminate the current super-frame |
AXIAXIS_CONFIG_G | Defines the AXI stream configuration and used to determine the AXI stream width from AXI_CONFIG_G.TDATA_BYTES_C |
...
Bits | Name | Description |
---|---|---|
3:0 | VERSION | Version info. Should always be 0x1 |
7:4 | WIDTH | log2( (AXI stream bit width) /16-bits)
|
15:8 | SEQ | Packet sequence number of super-frame |
Other | Reserved | All reserved bits (undefined) bit set to zero |
...
If TYPE = 16-bit AXI stream, then appended header is 2 bytes.
If TYPE = 32-bit AXI stream, then appended header is 4 bytes.
If TYPE = 64-bit AXI stream, then appended header is 8 bytes.
If TYPE = 128-bit AXI stream, then appended header is 16 bytes.
If TYPE = 256-bit AXI stream, then appended header is 32 bytes.
If TYPE = 512-bit AXI stream, then appended header is 64 bytes.
...
Each sub-frame within the super-frame is appended with a tail (no header) as follows:
Bits | Name | Description | ||
---|---|---|---|---|
31:0 | SIZE | Number of valid bytes in the sub-frame | ||
39:32 | TDEST | TDEST of AXI-Stream sub-frame | ||
47:40 | TUSER_FIRST | TUSER of the AXI-Stream sub-frame | ||
55:48 | TUSER_LAST | TUSER of last transaction of the AXI-Stream sub-frame. | ||
6059:56 | LAST_BYTE_CNT | Number of valid bytes in last transaction of sub-frame | ||
61 | MAX_NUMBER_SUB_FRAME | Indicates super-frame terminated due to MAX_NUMBER_SUB_FRAME_G | ||
62 | SUPER_FRAME_THRESHOLD | Indicates super-frame terminated due to SUPER_FRAME_THRESHOLD_G | ||
WIDTH | log2( (AXI stream bit width) /16-bits)
| 63 | CLK_GAP | Indicates super-frame terminated due to MAX_CLK_GAP_G |
Other | Reserved | All reserved bits (undefined) bit set to zero |
...
If TYPE = 16-bit AXI stream, then appended tail is 8 bytes.
If TYPE = 32-bit AXI stream, then appended tail is 8 bytes.
If TYPE = 64-bit AXI stream, then appended tail is 8 bytes.
If TYPE = 128-bit AXI stream, then appended tail is 16 bytes.
If TYPE = 256-bit AXI stream, then appended header is 32 bytes.
If TYPE = 512-bit AXI stream, then appended header is 64 bytes.
...
Larry Ruckman
...