Skip to question
asic.fyi
DesignVerificationSystemVerilogFirmwareArchitectureInterviews
asic.fyi/Interview questions/Four-requester round-robin arbiter

Hardware interview practice

Four-requester round-robin arbiter

MediumRTL DesignSystemVerilog

Four clients share a one-cycle service slot. Design a synthesizable combinational round-robin grant and sequential priority pointer with deterministic reset and idle behavior.

Try it in the question bankReason first. Then compare.

Keep this exact question selected while you check your answer and review the full solution.

Practice this question →
Starting point

Question code

input logic clk, rst_n;
input logic [3:0] req;
output logic [3:0] grant;
Reviewed example

Work through one case

Input
After reset, req=4'b0101 for two cycles
Expected output
First grant=0001; next grant=0100

The pointer starts at requester 0 and then advances to requester 1 after the first grant.

What to cover

Requirements

  1. grant is combinational, one-hot-or-zero, and selects the first asserted requester encountered from the current priority pointer with wraparound.
  2. On a rising edge with a nonzero grant, move the pointer to the requester immediately after the granted one.
  3. If req is zero, drive grant zero and leave the pointer unchanged.
  4. Whenever rst_n is 0, drive grant=0; on a rising edge with rst_n=0, set requester 0 as the first priority.
Continue practicing

Related questions

RTL DesignDesign and verify a round-robin arbiter→ArbitersArbitrate fairly between two requesters→
asic.fyi · Learn silicon end to end.info@asic.fyi