A generalized implementation of generic n-way roundrobin arbiter.
More...
#include <Arbiter.h>
|
typedef | NVUINTW (size_) Mask |
|
void | reset () |
|
Mask | pick (const Mask &valid) |
|
|
enum | _ { UNROLLED_SIZE = 2 * size_ - 1
, log_unrolled_size = nvhls::log2_ceil<UNROLLED_SIZE>::val
, log_size = nvhls::log2_ceil<size_>::val
} |
|
|
typedef | NVUINTW (UNROLLED_SIZE) UnrolledMask |
|
template<unsigned int size_, arbiter_type ArbiterType = Roundrobin>
class Arbiter< size_, ArbiterType >
A generalized implementation of generic n-way roundrobin arbiter.
- Template Parameters
-
size_ | Number of elements to be arbitrated. |
ArbiterType | Selecting arbitration method. Current class implements Roundrobin, and a dedicated class implements Static. (default: Roundrobin). |
- Overview
- Given a vector indicating which elements are currently valid for selection, and previous selection, a new selection will be made.
- Once a selection is made internal state is updated.
- Selection is returned in form of a one-hot bitmask.
- In case no entry is valid a zero selection mask will be returned.
- A Simple Example
#include <Arbiter.h>
...
Arbiter<4> arbiter;
arbiter.reset();
while (1) {
...
...
};
A generalized implementation of generic n-way roundrobin arbiter.
Definition at line 61 of file Arbiter.h.
The documentation for this class was generated from the following file: