Skip to question
asic.fyi
DesignVerificationSystemVerilogFirmwareArchitectureInterviews
asic.fyi/Interview questions/Schedule weighted round-robin service

Hardware interview practice

Schedule weighted round-robin service

HardArbitersSystemVerilog

Design an N-requester weighted round-robin arbiter. A requester with weight 3 should receive three service beats per round while continuously active, versus one beat for weight 1. Include checks suitable for saturated fairness testing.

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 →
Reviewed example

Work through one case

Input
N=2; weights=[3,1]; both requests stay asserted through eight accepted grants
Expected output
grants repeat [port0,port0,port0,port1] twice

Each saturated round consumes three units of port0's quantum and one of port1's, giving the configured 3:1 service ratio without starvation.

What to cover

Requirements

  1. Treat weight zero as disabled and produce at most one grant each cycle.
  2. Skip inactive requesters without consuming their quota.
  3. Avoid unsigned credit underflow, overflow-driven priority, and fixed-index tie bias.
  4. Under continuously asserted requests, measured grant ratios must converge to configured weight ratios.
  5. If a runtime weight change invalidates the current quantum, expire that quantum and resume from the rotating pointer.
asic.fyi · Learn silicon end to end.info@asic.fyi