Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Feature: Implement AXI completion queue per ID to ensure ordering rules #9

Open
dpretet opened this issue May 15, 2024 · 0 comments
Open
Labels
enhancement New feature or request

Comments

@dpretet
Copy link
Owner

dpretet commented May 15, 2024

The core currently doesn't support correctly AMBA completion ordering rules if a master issues multiples outstanding requests with the same ID among different slaves.

To address the limitation, an axicb_slv_switch must embed multiple FIFOs (queues) to store incoming read/write completions and a FIFO to store the AID order transmitted to the slaves, used to follow the correct order when emptying the queues and serving the completions.

In order to save area, this new feature should be deactivatable if a system doesn't need this strong ordering. In some situation, solution may be to use a different ID or ID mask per slave and manage the ordering inside the master issuing the request.

For AXI4 read completion, the completion queues should store RLAST along RDATA to detect the end of packet and switch to the next completion routing. This will consume 1 bit along each data, but another solution could be to store ARLEN along ARID and use a counter to track the completion until the last data phase.

@dpretet dpretet added the enhancement New feature or request label May 15, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant