Todos los ejercicios
Difícil
Corrige el error
5 pruebas
FIFO — corrige el envoltorio del puntero
Una FIFO de profundidad 4 pierde datos cuando el buffer da la vuelta.
La lógica de count/full/empty parece correcta, pero los
punteros de lectura y escritura se envuelven una posición demasiado
tarde, así que la FIFO se comporta como si tuviera cinco entradas
cuando solo tiene cuatro.
Especificación
- FIFO síncrona de profundidad 4 con reset activo-alto.
- Los punteros toman valores
0..3y deben volver a 0 tras el 3. full = '1'cuandocount = 4,empty = '1'cuandocount = 0.- Los push se ignoran si está llena; los pop si está vacía.
Pista
Si DEPTH = 4, el rango legal del puntero es 0..DEPTH-1. Envolver
al comparar con DEPTH (o peor, con DEPTH+1) introduce un hueco
fantasma.
Caso de prueba visible
Push 4 y seguir empujando — full debe activarse en 4
| Puerto | Tiempo | Valor |
|---|---|---|
reset |
0 ns | 1 |
reset |
25 ns | 0 |
push |
0 ns | 0 |
push |
50 ns | 1 |
push |
1500 ns | 0 |
pop |
0 ns | 0 |
4 casos de prueba ocultos — resuélvelos para revelarlos.