Todos los ejercicios
Difícil
Corrige el error
5 pruebas
Pila — corrige el desfase de un ciclo en empty
Una pila simple informa de su estado empty con un ciclo de
retraso. Tras un push, empty permanece a '1' un ciclo de más;
tras el último pop, empty vuelve a '1' un ciclo después de
que count ya valga 0. El bloque consumidor ve una bandera
desfasada y o se pierde el primer elemento válido o lee de una
pila vacía.
Especificación
- Reset síncrono activo-alto.
countincrementa enpush(y nopop), decrementa enpop
(y nopush, mientrascount > 0).empty = '1'exactamente cuandocount = 0, sin un ciclo de
retraso.
Pista
No registres la comparación: empty debe ser una salida
combinacional sobre count.
Caso de prueba visible
Push y luego pop — empty debe volver a 1 justo cuando count vuelve a 0
| Puerto | Tiempo | Valor |
|---|---|---|
reset |
0 ns | 1 |
reset |
25 ns | 0 |
push |
0 ns | 0 |
push |
100 ns | 1 |
push |
130 ns | 0 |
pop |
0 ns | 0 |
pop |
300 ns | 1 |
pop |
330 ns | 0 |
4 casos de prueba ocultos — resuélvelos para revelarlos.