Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

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-frameframesDifferent 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.

...

NameDescription
MAX_NUMBER_SUB_FRAME_GMax. number of sub-frames in a super-frame
MAX_SUPER_FRAME_THRESHOLD_GSets the super-frame threshold (in units of bytes) to terminate the super-frame at the end of the current sub-frame
MAX_CLK_GAP_GSets the max. number of clocks cycle between sub-frame to terminate the current super-frame
AXIAXIS_CONFIG_GDefines the AXI stream configuration and used to determine the AXI stream width from AXI_CONFIG_G.TDATA_BYTES_C

...

BitsNameDescription
3:0VERSIONVersion info. Should always be 0x1
7:4WIDTHlog2( (AXI stream bit width) /16-bits)
  • 0x0: 16-bit AXI stream
  • 0x30x1: 32-bit AXI stream
  • 0x70x2: 64-bit AXI stream
  • 0xF0x3: 128-bit AXI stream
15:8SEQPacket sequence number of super-frame
OtherReservedAll 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.

...

Sub-Frame Tail

Each sub-frame within the super-frame is appended with a tail (no header) as follows:

BitsNameDescription
731:0SIZENumber of valid bytes in the sub-frame
39:32TDESTTDEST of AXI-Stream sub-frame
1547:840TUSER_FIRSTTUSER of the AXI-Stream sub-frame
2355:1648TUSER_LASTTUSER of last transaction of the AXI-Stream sub-frame.
2859:24LAST_BYTE_CNTNumber of valid bytes in last transaction of sub-frame
29MAX_NUMBER_SUB_FRAMEIndicates super-frame terminated due to MAX_NUMBER_SUB_FRAME_G
30SUPER_FRAME_THRESHOLDIndicates super-frame terminated due to SUPER_FRAME_THRESHOLD_G
31CLK_GAPIndicates super-frame terminated due to MAX_CLK_GAP_G
56WIDTHlog2( (AXI stream bit width) /16-bits)
  • 0x0: 16-bit AXI stream
  • 0x1: 32-bit AXI stream
  • 0x2: 64-bit AXI stream
  • 0x3: 128-bit AXI stream
63:32SIZENumber of valid bytes in the sub-frame
OtherReservedAll 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.

...

Contact

Larry Ruckman

...