I have an AXI master and AXI slave in my design. The master can send up to 32 outstanding transactions with different IDs. (Both master and slave have 5 bit ID ports)
What kind of logic is to be implemented in the AXI slave, to have capability to accept 32 outstanding requests? Does it require a FIFO of depth 5 that determines the arready/awready?
Thanks in advance.
It depends on the complexity of your slave and what your slave wishes to do. The important thing is that your slave ensures that it completes these transactions in a protocol compliant manner. This would primarily mean:
- Ensuring that it gives the correct number of responses for each request
- Ensuring that ID ordering rules are maintained. For example, ensuring that same ID transactions are responded to in the correct order.
In the simplest implementation, a FIFO with 32 entries that stores the incoming transactions would work if the slave responded to each transaction in the order they were received. A more complicated system would have a transaction tracker that could respond to transactions in the most performant order, while still obeying AXI ordering rules.
View all questions in SoC Design forum