Todos los ejercicios
Difícil
Desde cero
5 pruebas
FSM de semáforo
Implementa un controlador de semáforo de 3 estados. En cada flanco ascendente avanza por el ciclo "00" (rojo) → "01" (verde) → "10" (amarillo) → de vuelta a "00".
Especificación
- Reset asíncrono:
if reset='1'llevastatea"00". - Un paso por reloj; sin divisores — el banco de pruebas avanza la FSM en cada flanco.
statees unSTD_LOGIC_VECTORde 2 bits.
Pista
Guarda el estado en un unsigned(1 downto 0) y selecciona el siguiente valor con if/elsif.
Caso de prueba visible
Reset 25 ns y luego ciclo rojo→verde→amarillo
| Puerto | Tiempo | Valor |
|---|---|---|
reset |
0 ns | 1 |
reset |
25 ns | 0 |
4 casos de prueba ocultos — resuélvelos para revelarlos.