This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AXI4 ID from interconnect in a single master multi slave system

I have an AXI4 system with single master and multiple slaves. The master sends first read transaction to slave A and second read transaction to slave B. The same ID is used by master for both transactions to interconnect.

My question is - does interconnect need to alter the IDs when it route to slave A and B? It is possible that B's response comes to interconnect before A's. But the responses to master should be sent back in order A, B. Interconnect has to reorder the responses if the responses come out of order. So I am thinking if interconnect sends read request to slave A with ID = 0 and slave B with ID = 1, it would be able to identify that the responses came out of order. 

Parents
  • The interconnect only needs to add ID bits to identify which AXI manager the transaction originated from, so where there is only one manager source there is no need to expand or change the IDs.

    Where the AXI manager addresses two different target subordinates, the interconnect must ensure the transaction responses are returned in the correct order, so all of the read data from target A would need to be passed back to the manager before any data from target B. The interconnect doesn't need to generate different IDs to accomplish this.

    If target B is able to respond first, the interconnect would need to stall that data, either by holding RREADY low to target B, or perhaps by buffering the target B read data. Only once all the target A data has been returned can the interconnect allow any target B read data to be sent to the manager,

Reply
  • The interconnect only needs to add ID bits to identify which AXI manager the transaction originated from, so where there is only one manager source there is no need to expand or change the IDs.

    Where the AXI manager addresses two different target subordinates, the interconnect must ensure the transaction responses are returned in the correct order, so all of the read data from target A would need to be passed back to the manager before any data from target B. The interconnect doesn't need to generate different IDs to accomplish this.

    If target B is able to respond first, the interconnect would need to stall that data, either by holding RREADY low to target B, or perhaps by buffering the target B read data. Only once all the target A data has been returned can the interconnect allow any target B read data to be sent to the manager,

Children
No data