= Solution
Store \b[three state bits]: a two-bit index $L\in\{0,1,2,3\}$ identifying the most recent recipient, and a valid bit $V$ indicating whether that recipient is receiving service in the current cycle. Then
$$
g_i=V\land[L=i].
$$
When no requests are present at a decision edge, clear $V$ but preserve $L$. Preserving $L$ implements <round-robin arbitration with idle memory>. Four possible last recipients each have an active and an idle state, giving eight states. The four idle states have equal outputs but different future priorities, so they cannot all be merged. One valid reset is $L=3,V=0$, which gives requester zero first priority at startup.
Back to article page