Skip to content

Commit

Permalink
update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
mkorbel1 committed Dec 26, 2023
1 parent 3267c8c commit 6e624a5
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion doc/components/arbiter.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

ROHD HCL implements a generic `abstract` [`Arbiter`](https://intel.github.io/rohd-hcl/rohd_hcl/Arbiter-class.html) class that other arbiters can extend. It accepts a `List` of `requests`, where each request is a `1-bit` signal indicating that there is a request for a resource. The output `grants` is a `List` where each element corresponds to the request with the same index. The arbiter implementation decides how to select which request receives a grant.

## Stateful Arbiter

A `StatefulArbiter` is an `Arbiter` which can hold state, and thus requires a `clk` and `reset`.

## Priority Arbiter

The [`PriorityArbiter`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityArbiter-class.html) is a combinational (stateless) arbiter that always grants to the lowest-indexed request.
Expand All @@ -10,4 +14,7 @@ The [`PriorityArbiter`](https://intel.github.io/rohd-hcl/rohd_hcl/PriorityArbite

## Round Robin Arbiter

The Round Robin Arbiter is a sequential (stateful) arbiter which grants requests same ways as Priority Arbiter, but keeps track of last request granted allowing each requestor to be granted "fairly".
The `RoundRobinArbiter` is a `StatefulArbiter` which grants requests in a "fair" way so that all requestors get equal access to grants. There are two implementations available for `RoundRobinArbiter`:

- `MaskRoundRobinArbiter` is the default implementation if you create a `RoundRobinArbiter`. It uses internal request and grant masks to store state for fair arbitration.
- `RotateRoundRobinArbiter` is an alternative implementation which uses a `PriorityArbiter` and two rotators controlled by a last-granted state.

0 comments on commit 6e624a5

Please sign in to comment.