When to use it
When several masters want the same thing, a bus, a port, a DSP block, an arbiter picks one. A fixed-priority arbiter always favours the same requester and can starve the others; a round-robin arbiter rotates who goes first, so everyone eventually wins.
How it works
Keep a pointer to where the last grant landed. Each cycle, scan the request lines starting just after the pointer and grant the first one that's asserted (one-hot), then move the pointer past it. Watch the demo: with all four requesting, the grant walks 0 → 1 → 2 → 3 and repeats.
Gotchas
grantis one-hot: at most one bit set. Downstream logic can rely on that.- This grants combinationally from registered state each cycle; if a master must hold the resource for several cycles, add a "locked" input.