CHI: How to detect last flit of a multi-flit response

Hi all,

In CHI, I send a request on the TXREQ channel that expects a four-flit response.

Since CHI does not provide a LAST signal like AXI, I would like to understand how the transmitter determines when the final response flit has been received.

Specifically:

  • Is the expected number of response flits known in advance, such that the TX must maintain a decrementing flit counter?

  • Or is there a response opcode or response field within the response flits that indicates the final flit?

  • Are there any other standard CHI mechanisms used to determine completion of a multi-flit response?

Thank you for your time and guidance.

  • Hi Firoz,

    In CHI there is no equivalent of AXI xLAST.

    In many cases, the number of response flits can be determined from the request, but more generally the responder and requester share protocol knowledge of the transaction structure. Some transactions can evolve as responses are returned (for example, later responses refining how the transaction completes), but at any point the receiver knows how many flits remain for that transaction.

    There is no response opcode or field that marks a final flit. Instead, completion is determined by tracking the transaction by TxnID and counting response flits according to the protocol rules.

    This ties into the fact that CHI is an unordered transport: responses and their flits may return out of order relative to request issue order, and different transactions can be interleaved. Because ordering is not guaranteed, a LAST signal would not provide useful information - the receiver must already manage completion per transaction rather than per beat sequence.

    Hope that helps.

    Ben