You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Overview

The AxiStreamBatcher firmware module takes incoming AXI stream and combines multiple sub-frames (packets) into a larger super-frame.

The batching protocol includes the some of the AXI-Stream's sideband data (TDEST and TUSER) information into the sub-frame tail.

The batching protocol is intended for use in firmware only and expects the debatching to be done in the software. Debatching not done in firmware due to the caching requirements at the sub-frame tail.

The batching protocol does not support interleaved AXI streams, which means the same continuous TDEST must be asserted for the entire sub-frame.  Different sub-frames can have different TDEST values.

Together these features are very useful for sending high rate (>1MHz), small AXI-Stream frame into a CPU.

Details


Firmware Generics

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
AXI_CONFIG_GDefines the AXI stream configuration and used to determine the AXI stream width from AXI_CONFIG_G.TDATA_BYTES_C

Super-Frame Header

The firmware batcher combines sub-frames in to larger super-frame. The super-frame has only 1 header per super-frame (no tail) as follows:

BitsNameDescription
3:0VERSIONVersion info. Should always be 0x1
7:4WIDTH
  • 0x0: 16-bit AXI stream
  • 0x3: 32-bit AXI stream
  • 0x7: 64-bit AXI stream
  • 0xF: 128-bit AXI stream
15:8SEQPacket sequence number of super-frame
OtherReservedAll reserved bits (undefined) bit set to zero

Notes

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


Sub-Frame Tail

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

BitsNameDescription
31:0SIZENumber of valid bytes in the sub-frame
39:32TDESTTDEST of AXI-Stream sub-frame
47:40TUSER_FIRSTTUSER of the AXI-Stream sub-frame
55:48TUSER_LASTTUSER of last transaction of the AXI-Stream sub-frame.
60:56LAST_BYTE_CNTNumber of valid bytes in last transaction of sub-frame
61MAX_NUMBER_SUB_FRAMEIndicates super-frame terminated due to MAX_NUMBER_SUB_FRAME_G
62SUPER_FRAME_THRESHOLDIndicates super-frame terminated due to SUPER_FRAME_THRESHOLD_G
63CLK_GAPIndicates super-frame terminated due to MAX_CLK_GAP_G
OtherReservedAll reserved bits (undefined) bit set to zero

Notes

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


Contact

Larry Ruckman

ruckman@slac.stanford.edu

  • No labels