Diseñando Máquinas de Estados Finitos: De Concepto a Implementación
Hasta ahora nos hemos centrado en lógica combinacional, donde las salidas dependen únicamente de las entradas actuales. En muchas aplicaciones reales, los circuitos deben retener memoria de entradas pasadas y ajustar sus salidas en consecuencia. Tales circuitos se conocen como circuitos secuenciales.
Este artículo recorre el proceso completo de diseño de un circuito secuencial, ilustrado con un ejemplo práctico: un juego digital de preguntas que debe generar un pulso HIGH de un solo ciclo de reloj cada vez que un usuario presiona un botón.
Paso 1 – Definir el Requisito
Comience articulando el comportamiento deseado en lenguaje llano:
"Necesitamos un circuito secundario que emita un pulso HIGH único por un ciclo de reloj cuando se presiona el botón, e ignore pulsaciones adicionales hasta que el botón se suelte y presione de nuevo."
Paso 2 – Dibujar el Diagrama de Estados
El diagrama de estados visualiza la operación de la máquina. Cada círculo representa un estado, mientras flechas indican transiciones disparadas por la entrada cada ciclo de reloj. El diagrama abajo es una máquina de estados finitos Moore, donde la salida depende solo del estado actual.

Descripciones de estados:
- Stand-by – estado inicial de espera.
- Activate Pulse – genera la salida HIGH.
- Wait Loop – mantiene salida LOW hasta que el botón se suelte.
Las flechas están etiquetadas con el valor de entrada que dispara la transición. Por ejemplo, desde estado Stand-by una entrada '1' mueve la máquina a Activate Pulse; un '0' la mantiene en Stand-by.
Paso 3 – Codificar Estados en Binario
Asigne códigos binarios a cada estado, comenzando con 0 para el estado inicial. La codificación abajo usa dos bits, suficiente para los tres estados.

Paso 4 – Construir la Tabla de Estados
La tabla de estados lista todas las combinaciones de estado actual e entrada, junto con el siguiente estado y salida. Columnas corresponden a bits de estado actual, bits de entrada, bits de siguiente estado, y bits de salida. Para este ejemplo la tabla se muestra abajo.

Puntos clave:
- Cada fila cubre cada combinación binaria posible de estado e entrada.
- Filas correspondientes a estados inexistentes se marcan con don't-care (X).
- La columna de salida refleja la salida Moore, independiente de la entrada.
Paso 5a – Preparar para Implementación con Flip-Flop D
Para implementar la máquina típicamente usamos flip-flops. Para un flip-flop D, la entrada requerida para alcanzar el siguiente estado es simplemente el valor del siguiente estado mismo. Extienda la tabla de estados con una columna para cada entrada D.

Paso 5b – Preparar para Implementación con Flip-Flop JK
Si se elige flip-flop JK, se añaden dos columnas (J y K) por flip-flop. Sus valores derivan de la tabla de excitación JK:

Mapeo ejemplo: para transicionar de 0 a 1, ponga J=1 y K=X (don't-care).

Paso 6 – Derivar Funciones Booleanas via Mapas de Karnaugh
Use mapas de Karnaugh para simplificar las expresiones para cada entrada de flip-flop y para la salida. Los mapas abajo ilustran el proceso para implementaciones D y JK.
Entradas flip-flop D:

Entradas flip-flop JK:


Función de salida:


Paso 7 – Construir el Circuito Físico
Con las ecuaciones booleanas en mano, ensamble el circuito usando flip-flops y compuertas lógicas. Recuerde conectar el reloj a todos los flip-flops. El diseño completado con flip-flops D se muestra abajo.

La versión con flip-flops JK se ve así:

Una vez ensamblado, el circuito generará un pulso HIGH limpio de un ciclo de reloj para cada presión de botón, sin importar cuánto se mantenga presionado.
Conclusiones Clave
- La lógica secuencial retiene memoria de entradas pasadas, habilitando comportamiento dinámico.
- Máquinas de Estados Finitos proveen marco riguroso para modelar tal comportamiento.
- Flip-flops implementan la FSM en hardware, traduciendo transiciones de estado a salidas físicas.
- Un flujo de diseño sistemático —requisitos, diagrama, codificación, tabla, síntesis lógica, y ensamblaje— asegura circuitos fiables.
Tecnología Industrial
- Dominando las Máquinas de Mandrinar: Técnicas, Aplicaciones y Mecanizado de Precisión
- ¿Qué es una máquina? Guía completa
- Histéresis en Tiristores: Cómo la Realimentación Positiva Permite el Bloqueo
- Explora 15 tipos esenciales de fresadoras para metalurgia de precisión
- Actualizar máquinas heredadas para el éxito en Industria 4.0
- Guía completa de máquinas de rectificado de precisión
- Fresadoras Versátiles: Corte, Taladrado y Mucho Más
- La Evolución de las Máquinas CNC: Desde Orígenes del Siglo XVIII hasta Precisión Impulsada por IA
- Máquinas CNC: Impulsando Producción, Reduciendo Costos y Garantizando Precisión
- Máquinas de impresión offset: visión general y beneficios
- Máquinas de flexografía avanzadas: Soluciones versátiles y de alta calidad