Todos los ejercicios
Difícil
Corrige el error
5 pruebas
Árbitro de 4 vías — corrige la inanición
Cuatro agentes excitan req(3..0). El árbitro debe entregar un
único grant por ciclo, pero la implementación actual es un simple
codificador de prioridad fija: la petición activa de menor índice
siempre gana. Mientras req(0) esté activa, req(3) queda
en inanición permanente.
Especificación
- Reset síncrono activo-alto.
- En cada ciclo hay exactamente un bit de
granta'1'(o
0000sireq = 0000). - Si varias peticiones están activas, el árbitro debe rotar —
cada solicitante obtiene su turno en un máximo de 4 ciclos.
Pista
Un árbitro round-robin recuerda el último índice concedido y
escanea empezando por last_grant + 1 (mod 4). La primera petición
activa que encuentre en ese barrido es la ganadora.
Caso de prueba visible
Las cuatro peticiones activas — round-robin debe rotar
| Puerto | Tiempo | Valor |
|---|---|---|
reset |
0 ns | 1 |
reset |
25 ns | 0 |
req |
0 ns | 1111 |
4 casos de prueba ocultos — resuélvelos para revelarlos.