Todos los ejercicios
Difícil
Completa el hueco
5 pruebas
Pop de pila con guarda de vacío — completa el hueco
Un puntero de pila simple está casi listo. El reset, la
rama de push (sp <= sp + 1 cuando push = '1') y la
señal combinacional empty ('1' when sp = 0 else '0') ya
están cableados.
Tu tarea es escribir la rama de pop con la debida guarda
de underflow.
Especificación
- Dentro del
rising_edge(clk)existente, tras la rama de push,
decrementaspsólo si hay pop y la pila no está vacía:if pop = '1' and sp /= 0 then sp <= sp - 1; end if; - Los pop a pila vacía deben ignorarse en silencio.
- No toques la rama de push ni el flag empty.
Dónde escribir
Sólo las líneas entre -- BEGIN_EDIT y -- END_EDIT se
evalúan.
Caso de prueba visible
Reset, tres push, tres pop — empty conmuta
| Puerto | Tiempo | Valor |
|---|---|---|
reset |
0 ns | 1 |
reset |
25 ns | 0 |
push |
0 ns | 0 |
push |
100 ns | 1 |
push |
200 ns | 0 |
pop |
0 ns | 0 |
pop |
1000 ns | 1 |
pop |
1100 ns | 0 |
4 casos de prueba ocultos — resuélvelos para revelarlos.