Saltar al contenido principal
Un semáforo, una máquina expendedora, el protocolo de un puerto serie o el control de un ascensor no responden solo a lo que pasa ahora, sino también a lo que ha pasado antes. Esa memoria se organiza en estados: “verde”, “ámbar”, “rojo”; “esperando moneda”, “dando cambio”. Una máquina de estados finitos describe un sistema así con un número finito de estados y unas reglas para pasar de uno a otro, y se implementa con biestables y lógica combinacional.

Lo que vas a aprender

  • Qué es una máquina de estados y cómo se representa.
  • La diferencia entre máquinas de Moore y de Mealy.
  • Cómo pasar del diagrama a la tabla de estados.
  • Cómo codificar los estados y obtener las ecuaciones con biestables D.
  • El diseño completo de un detector de secuencia y de un semáforo.

Fundamentos teóricos

Elementos

  • Estados: las situaciones posibles del sistema. Con nn biestables se pueden codificar hasta 2n2^n.
  • Entradas y salidas.
  • Función de transición: el estado siguiente según el estado actual y las entradas.
  • Función de salida: las salidas según el estado (y quizá las entradas).
  • Estado inicial, al que se llega con el reset.
En una máquina síncrona, el cambio de estado ocurre solo en el flanco del reloj.

Moore y Mealy

Estructura

Pasos de diseño

  1. Diagrama de estados a partir del enunciado.
  2. Tabla de estados: estado actual, entrada, estado siguiente y salida.
  3. Minimizar estados, si hay estados equivalentes (mismas salidas y mismos siguientes).
  4. Codificar cada estado en binario.
  5. Tabla de transición con los códigos: con biestables D, la entrada DD de cada biestable es el bit correspondiente del estado siguiente.
  6. Simplificar las ecuaciones con mapas de Karnaugh.
  7. Dibujar el circuito.

Codificación de estados

Ejemplos resueltos

Ejemplo 1 · Detector de la secuencia 11 (Moore)

Una entrada xx en serie; la salida z=1z = 1 cuando se han recibido dos unos seguidos.Estados: A (el último bit no fue 1), B (se ha recibido un 1), C (se han recibido dos o más unos seguidos; z=1z = 1).Codificación A = 00, B = 01, C = 10, con biestables Q1Q0Q_1Q_0:D1=x (Q1+Q0)D_1 = x\,(Q_1 + Q_0), D0=x Q1‾ Q0‾D_0 = x\,\overline{Q_1}\,\overline{Q_0}, z=Q1z = Q_1.(El código 11 no se usa y se puede tomar como indiferente al simplificar.)
Solo hacen falta dos estados: A (el último bit fue 0) y B (el último bit fue 1).Con A = 0 y B = 1: D=xD = x y z=x Qz = x\,Q. Un solo biestable, y la salida se activa en el mismo ciclo en que llega el segundo 1.
Estados: S0 (nada útil), S1 (llegó 1), S2 (llegó 10).Al detectar 101 vuelve a S1, porque ese último 1 puede ser el principio de otra secuencia: con 10101 da dos detecciones.
Un semáforo con sensor de coches cc en la calle secundaria. La principal está en verde hasta que llega un coche.Con codificación Gray (00, 01, 11, 10), cada transición cambia un solo bit. En la práctica, cada estado dura varios ciclos, con un contador que marca el tiempo.

Errores frecuentes

  • Olvidar alguna transición. Desde cada estado tiene que haber una flecha para cada combinación de entradas.
  • No definir el estado inicial ni el reset. Al encender, los biestables pueden arrancar en cualquier código.
  • Dejar códigos sin usar sin pensar adónde van. Si por una interferencia la máquina cae en uno, debe volver a un estado válido.
  • Mezclar Moore y Mealy en la misma tabla. Decide al principio dónde van las salidas.
  • No contemplar el solapamiento en los detectores de secuencia.

Preguntas frecuentes

En FPGA y ASIC se describen en un lenguaje de descripción de hardware (VHDL o Verilog) con una sentencia case sobre el estado, y la herramienta de síntesis elige la codificación y genera la lógica. En un microcontrolador se programan igual, con una variable de estado y un switch.
Son la misma idea. En teoría de la computación, un autómata finito reconoce lenguajes regulares (los de las expresiones regulares). Las máquinas de Moore y Mealy son autómatas con salida.

Temas relacionados

Biestables

La memoria de la máquina.

Contadores y registros

Una máquina de estados especial.

Mapas de Karnaugh

Simplificar las ecuaciones.
Última modificación el 12 de octubre de 2026