-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Labels
Description
Took a while to realize, but it finally came to me when I was looking at the tests…
| Part | arbiter_out | arbiter_in | |
|---|---|---|---|
| ✓ | Requests | X_N_Y, X_E_Y, X_W_Y, X_S_Y, X_L_Y |
req_X_N, req_X_E, req_X_W, req_X_S, req_X_L |
| ✓ | Grants | grant_Y_N, grant_Y_E, grant_Y_W, grant_Y_S, grant_Y_L |
X_N, X_E, X_W, X_S, X_L |
| ✓ | States | IDLE, North, East, West, South, Local |
IDLE, North, East, West, South, Local |
| ✓ | Credit input | credit |
Always 1 (constant) |
| ? | “Default” state | IDLE |
Same as before (sticky) |
| ✗ | Grant is given | When preserving the state | Always (unless no requests) |
So everything except last two points can be done with arbiter_out, and of course last two points can be implemented in arbiter_out using parameterization. In fact, I'm not sure if the default state matters at all, but I don't understand that part of the behavior fully.
I think arbiter_in should be removed and arbiter_out can be renamed to just arbiter.
Somewhat related issue: #12
Reactions are currently unavailable