Build a combinational, parameterized priority arbiter for N requesters (default N = 4). Each cycle, at most one grant bit is asserted, chosen by fixed priority: request line 0 has the highest priority, request line N-1 has the lowest.
Interface
| Signal | Direction | Width | Description |
|---|---|---|---|
req |
input | N | One request bit per requester |
grant |
output | N | One-hot grant, or all-zero if no requester is asking |
Behavior
- If
req == 0,grant == 0. - Otherwise,
grantis one-hot, with the single1at the position of the lowest-indexed set bit ofreq.
Examples (N = 4)
| req | grant |
|---|---|
| 0000 | 0000 |
| 0001 | 0001 |
| 0110 | 0010 |
| 1010 | 0010 |
| 1111 | 0001 |
This is a fixed-priority arbiter, not round-robin: requester 0 always wins whenever it asks, regardless of grant history.