Catto / Mapa de Temas · Técnicas Digitales I 3er nivel
Técnicas Digitales I · 96 h · Contenido 2 de 4

Lógica secuencial: máquinas de estado y temporización

Un equipo que se cuelga una vez por día sin causa aparente puede tener un flip-flop que lee un pulsador sin sincronizar. Agregarle un segundo flip-flop lleva esa falla a una vez cada decenas de miles de años.

Moore y Mealy Diseño sincrónico Camino crítico Metaestabilidad Sincronizador

01El diseño sincrónico

Flip-flops, contadores y registros de desplazamiento están desarrollados en la página de lógica secuencial de la tecnicatura. Esta unidad sube un nivel: cómo se diseña un sistema secuencial cualquiera y qué lo limita.

Casi toda la lógica digital moderna es sincrónica: un único reloj marca los instantes en que todos los flip-flops toman su nuevo valor, y entre flanco y flanco la lógica combinacional tiene tiempo de asentarse. Esa disciplina resuelve de un golpe el problema de los riesgos de la unidad anterior: los glitches pasan, pero el flip-flop solo mira su entrada justo en el flanco, cuando ya se asentó.

\[ \text{estado siguiente} = f(\text{estado actual},\ \text{entradas}) \] Un registro guarda el estado; una lógica combinacional calcula el próximo. Todo circuito sincrónico, del contador más simple al procesador, tiene esta forma.

02Máquinas de estado: Moore y Mealy

Una máquina de estados finitos describe un circuito secuencial como un conjunto de estados y de transiciones entre ellos. Hay dos maneras de sacar las salidas, y la diferencia importa:

MooreMealy
La salida depende deSolo del estadoDel estado y de la entrada actual
En el diagrama, la salida vaAdentro del estadoSobre la transición
Cuándo respondeUn ciclo despuésEn el mismo ciclo
Estados necesariosSuele necesitar alguno másMenos
La salida puede tener glitchesNo: sale de flip-flopsSí: pasa por la lógica de entrada
Laboratorio · un detector de la secuencia 1011

La máquina recibe un bit por ciclo de reloj y pone la salida en 1 cuando los últimos cuatro bits fueron 1011 (las secuencias se pueden superponer). Elegís Moore o Mealy y le das bits de a uno; el estado activo se resalta en el diagrama y la tabla guarda los últimos ciclos.

03Del diagrama al circuito

El diagrama se traduce en una tabla de estados, y cada estado recibe un código binario. La elección de ese código —la asignación de estados— cambia el circuito resultante:

CodificaciónFlip-flops para N estadosCuándo conviene
Binaria\( \lceil \log_2 N \rceil \)Cuando los flip-flops son caros, como en lógica discreta
Gray\( \lceil \log_2 N \rceil \)Si las transiciones siguen una secuencia: cambia un bit por vez
One-hot\( N \)En FPGA: sobran flip-flops y la lógica de próximo estado queda mínima y rápida

Con la codificación elegida, cada bit del estado siguiente y cada salida son funciones combinacionales de los bits de estado y de las entradas, y se minimizan exactamente como en la unidad anterior.

04Temporización: la frecuencia máxima

Entre dos flancos de reloj, el dato tiene que salir del primer flip-flop, atravesar la lógica y llegar al segundo con tiempo de sobra para que este lo capture. Esa carrera fija la frecuencia máxima de todo el sistema.

\[ T_{clk} \geq t_{cq} + t_{\text{lógica}} + t_{su} \] \[ f_{max} = \frac{1}{t_{cq} + t_{\text{lógica},\,max} + t_{su}} \] \( t_{cq} \) es el retardo de reloj a salida del flip-flop; \( t_{su} \), el tiempo de preparación (setup) que el dato tiene que estar quieto antes del flanco. Con 1 ns, 6 ns y 0,5 ns el período mínimo es 7,5 ns: 133 MHz. Acelerar el sistema es acortar el camino crítico.

Además hay una condición en sentido contrario: el dato no puede cambiar demasiado pronto después del flanco, durante el tiempo de retención (hold). Y si el reloj no llega a todos los flip-flops al mismo tiempo —la diferencia se llama skew— los dos márgenes se achican.

05Metaestabilidad: cuando la entrada no respeta al reloj

Una señal que viene de afuera —un pulsador, otro circuito con su propio reloj— puede cambiar justo durante la ventana de preparación y retención. El flip-flop queda entonces en un estado metaestable: ni 0 ni 1, como una pelota en equilibrio sobre una loma, y tarda un tiempo aleatorio en caer a un lado. Si la lógica siguiente lo lee antes, puede leerlo distinto en dos lugares del circuito y el sistema falla de manera imposible de reproducir.

La probabilidad de que siga indeciso decae exponencialmente con el tiempo que se le da para resolverse. De ahí sale el tiempo medio entre fallas:

\[ MTBF = \frac{e^{\,t_r/\tau}}{T_0\, f_{clk}\, f_{dato}} \] \( t_r \) es el tiempo de resolución disponible; \( \tau \) y \( T_0 \), constantes de la tecnología del flip-flop. La exponencial es la clave: cada \( \tau \) extra de tiempo multiplica el MTBF por \( e \).
Laboratorio · el sincronizador de dos flip-flops

Una entrada asincrónica que cambia en promedio un millón de veces por segundo entra a un sistema de 100 MHz, con flip-flops de \( \tau = 50 \) ps y \( T_0 = 1 \) ns (valores ilustrativos, del orden de una lógica rápida). Elegís cuántos flip-flops en cadena usa el sincronizador y cuánto tiempo de resolución deja cada uno.

Por eso ninguna señal asincrónica entra a un diseño sincrónico sin pasar antes por un sincronizador de al menos dos flip-flops. No hace imposible la falla —ningún circuito puede—: la vuelve tan improbable que deja de importar.

06Dónde aparece en la electrónica

CasoQué se usa de esta unidad
Controlador de un protocolo serie (UART, I²C)Una máquina de estados que recorre los bits de cada trama
Pulsador de un equipoSincronizador de dos flip-flops más antirrebote antes de entrar a la lógica
Informe de síntesis de una FPGALa herramienta calcula el camino crítico y la frecuencia máxima alcanzada
Paso de datos entre dos dominios de relojSincronizadores y memorias FIFO con punteros en código Gray

07En el laboratorio

Actividad 1 · Diseñar el detector

Llevar la máquina de Moore del laboratorio a una tabla de estados, codificarla en binario y en one-hot, y comparar cuántos flip-flops y compuertas necesita cada versión.

Actividad 2 · Moore contra Mealy en el osciloscopio

Implementar las dos versiones en una placa de desarrollo y observar con dos canales cuándo sube la salida de cada una respecto del flanco de reloj en que entra el último 1.

Actividad 3 · Frecuencia máxima

Con los tiempos del informe de síntesis de un diseño propio, verificar a mano la frecuencia máxima con la fórmula del camino crítico.

08Errores frecuentes

  • Usar una salida de Mealy como reloj o habilitación. Puede tener glitches: pasa por la lógica de entrada.
  • Olvidar el estado inicial. Toda máquina necesita un reset que la lleve a un estado conocido.
  • Leer una entrada asincrónica directamente. Sin sincronizador, la metaestabilidad es cuestión de tiempo.
  • Creer que un sincronizador elimina la metaestabilidad. La hace improbable, no imposible.
  • Sumar solo retardos de lógica. El período mínimo incluye \( t_{cq} \) y \( t_{su} \).

09Autoevaluación

¿Qué diferencia a una máquina de Moore de una de Mealy?

En Moore la salida depende solo del estado; en Mealy, del estado y de la entrada actual, por lo que responde un ciclo antes.

¿Por qué se usa codificación one-hot en las FPGA?

Porque tienen flip-flops de sobra y así la lógica de próximo estado queda mínima y rápida.

¿Qué limita la frecuencia máxima de un circuito sincrónico?

El camino crítico: \( t_{cq} + t_{\text{lógica}} + t_{su} \) entre dos flip-flops.

¿Qué es la metaestabilidad?

El estado indefinido en que queda un flip-flop cuando su entrada cambia durante la ventana de preparación y retención; se resuelve en un tiempo aleatorio.

¿Por qué un segundo flip-flop mejora tanto el MTBF?

Porque le da al primero un período más para resolverse, y el MTBF crece exponencialmente con ese tiempo.

10Para ampliar

  • John F. Wakerly. Digital Design: Principles and Practices. 5.ª ed., Pearson, 2018. Máquinas de estado, temporización y el mejor capítulo introductorio sobre metaestabilidad y sincronizadores.
  • William J. Dally y R. Curtis Harting. Digital Design: A Systems Approach. Cambridge University Press, 2012. El diseño sincrónico desde la mirada de quien diseña procesadores, con los márgenes de tiempo en detalle.
  • Clifford E. Cummings. Clock Domain Crossing (CDC) Design & Verification Techniques Using SystemVerilog. SNUG Boston, 2008. El artículo de referencia de la industria sobre cómo pasar señales entre dominios de reloj.
Desarrollo del contenido «Lógica secuencial: máquinas de estado y temporización» de Técnicas Digitales I (tercer nivel), según el diseño curricular de Ingeniería Electrónica, Plan 2023 — Ordenanza N° 1849 del Consejo Superior de la UTN. Volver al Mapa de Temas · catto.ar