I am using single AXI4 master to issue outstanding transaction with two AXI4 slave.
Can a single master issue outstanding transaction with more than one slave?
i.e. can master transfer data to slave0 with IDx followed by slave1 with IDy without waiting for transaction status of previous transfer.?
The various AXI channels operate mostly independently of each other, so there is no requirement that a master wait for the B channel response to one write transaction before starting a new AW or W channel transfer.
Where the transactions have different IDs, the B channel responses can come back in any order, but all the W channel transfers for the first tranaction IDx must complete before any of the W channel transfers for IDy (this is different to AXI3 where the protocol did support "interleaved" write data)
Thanks Colin :). This info cleared my doubt.!!!
Hi Colinwhat do you mean about( Where the transactions have different IDs, the B channel responses can come back in any order, but all the W channel transfers for the first tranaction IDx must complete before any of the W channel transfers for IDy) ?I am confuse about itWould you give the example?Thanks a lot
In AXI4 we don't have write data interleaving, so if your master is issuing multiple write transactions using different IDs, there is a strict ordering requirement that all the WDATA transfers for the first issued AW channel transfer must be completed before any of the WDATA transfers for the second issued AW channel transfer.
However the slave(s) being accessed could respond with B channel responses in a different order, so if the target slave(s) can respond to the second transaction before the first, they can do so, knowing that the master will know which transfer this B channel response refers to (because each transaction would have a different ID).
If the master has used the same ID for both transactions, the B channel responses must come back to the master in the same order they were issued by the master.
View all questions in SoC Design forum