Forum Discussion
sstrell
Super Contributor
2 years agoI answered this in your other post, but there's more detail here.
This is the whole point of arbitration: when a host is no longer accessing a shared agent (Nios is done initializing B), another host (X in this case) can get access. As I stated in the other post, if they both will be accessing B at the same time, you can adjust the number of arbitration shares to give one or the other priority (but it will still release B when it's done; hence the name "round-robin arbitration") or switch to fixed priority.
- anonimcs2 years ago
Contributor
Thanks for both responses. For the arbitration itself, it sounds like I only need to pick the scheme and the rest will be done by the Platform Designer.
In my case, the agent B will have control over an external ADC and will send SPI commands to it. Slave B also converts the received SPI signals into a Ready flag so that the host X can send further data to the ADC over the agent B.
So I would like the host X to keep listening that Ready signal generated from the agent B. But as X-B transition is on the Avalon bus and there is no definition of “X will be done with B”, I also would not like to prevent Nios to communicate with B when necessary. So this is the reason why I doubt if fixed priority arbitration is not the best choice. And for the Round robin case, I’m not exactly sure how it switches the hosts (based on time or on the amount of transactions with the agent B), but if it’s the latter, then Nios may not even communicate with the agent either, so the system will just stay idle. That’s why I’m not sure which option to use.