DescriptionQ793
Q793DesignASIC interview problem
Schedule weighted round-robin service
TechniquesWeighted round robinFairnessQuotaStatistics
DifficultyHard
TopicArbiters
LanguageSystemVerilog
Requirements5 checkpoints
01
Problem
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.
Example input and output
Use this case to check your interpretationInput
N=2; weights=[3,1]; both requests stay asserted through eight accepted grantsOutput
grants repeat [port0,port0,port0,port1] twiceExplanation
Each saturated round consumes three units of port0's quantum and one of port1's, giving the configured 3:1 service ratio without starvation.
02
Requirements (5)
- Treat weight zero as disabled and produce at most one grant each cycle.
- Skip inactive requesters without consuming their quota.
- Avoid unsigned credit underflow, overflow-driven priority, and fixed-index tie bias.
- Under continuously asserted requests, measured grant ratios must converge to configured weight ratios.
- If a runtime weight change invalidates the current quantum, expire that quantum and resume from the rotating pointer.
