bitGateLab Digital · Aprende Abrir el simulador

Aprende › Tema 9

Latches y flip-flops: SR, D, JK y T paso a paso

Lectura de 7 min · Equipo bitGateLab

Hasta ahora las salidas de tus circuitos dependían solo de las entradas del momento. Para contar, guardar un dato o recordar en qué paso va un proceso necesitas memoria, y la celda de memoria más pequeña es el latch. Aquí vas a construir un latch con dos compuertas, a convertirlo en flip-flop disparado por flanco y a usar las tablas que necesitarás para diseñar contadores y máquinas de estados.

El latch SR

Dos compuertas NOR con las salidas cruzadas hacia las entradas forman un latch SR. La realimentación es lo que crea la memoria: una vez que la salida toma un valor, se sostiene sola.

≥1 ≥1 R S Q Q̄
Latch SR con compuertas NOR: Q = NOR(R, Q) y Q = NOR(S, Q). El cruce sin punto no es conexión.
SRQ siguienteAcción
00QMantener
010Reset
101Set
11—Prohibido

Con S = R = 1 ambas NOR entregan 0, así que Q y Q dejan de ser complementarias. Peor aún: si después las dos entradas bajan a 0 al mismo tiempo, el estado final depende de cuál compuerta es más rápida. Por eso esa combinación se prohíbe. Su ecuación característica, válida con la condición S·R = 0, es Q+ = S + R·Q.

Con compuertas NAND se obtiene el latch SR, de entradas activas en bajo: 11 mantiene, 01 pone Q = 1, 10 pone Q = 0 y 00 es la combinación prohibida (ambas salidas en 1).

El latch D: transparente mientras está habilitado

Para eliminar la combinación prohibida se agrega una entrada de habilitación EN y se generan S = D·EN y R = D·EN. Como S y R nunca valen 1 a la vez, el problema desaparece. El comportamiento es simple:

La transparencia es la debilidad del latch. Si conectas la salida de un latch, a través de lógica, a su propia entrada, mientras EN = 1 la señal puede dar varias vueltas y el resultado es impredecible. Para circuitos secuenciales síncronos se necesita algo que capture el dato en un solo instante.

Flip-flops disparados por flanco

Un flip-flop D disparado por flanco de subida copia D en Q únicamente en el instante en que el reloj pasa de 0 a 1. El resto del tiempo ignora D. Se construye con dos latches D en cascada (maestro y esclavo) con habilitaciones opuestas: mientras el reloj está en 0 el maestro sigue a D y el esclavo está cerrado; al subir el reloj el maestro se cierra y el esclavo pasa a la salida el valor capturado. Su ecuación es la más sencilla: Q+ = D.

A partir del flip-flop básico se definen otros dos tipos muy usados en diseño:

JKQ+Acción
00QMantener
010Reset
101Set
11QConmutar

Ejemplo: un flip-flop JK parte de Q = 0 y recibe cinco flancos con (J, K) = (1,0), (0,0), (1,1), (0,1), (1,1). Aplica Q+ = J·Q + K·Q en cada uno:

  1. (1,0), Q = 0: 1·1 + 1·0 = 1.
  2. (0,0), Q = 1: 0·0 + 1·1 = 1 (mantiene).
  3. (1,1), Q = 1: 1·0 + 0·1 = 0 (conmuta).
  4. (0,1), Q = 0: 0·1 + 0·0 = 0.
  5. (1,1), Q = 0: 1·1 + 0·0 = 1 (conmuta).

Secuencia de Q después de cada flanco: 1, 1, 0, 0, 1.

Tablas de excitación

La tabla característica responde "dadas las entradas, ¿a dónde va Q?". Para diseñar se necesita la pregunta inversa: "quiero que Q pase de este valor a este otro, ¿qué entradas pongo?". Esa es la tabla de excitación, y la vas a usar en cada contador y máquina de estados.

Q → Q+DTJ KS R
0 → 0000 X0 X
0 → 1111 X1 0
1 → 001X 10 1
1 → 110X 0X 0

Las X del JK son la razón por la que este flip-flop suele dar ecuaciones más cortas: para pasar de 0 a 1 da igual si K vale 0 (set) o 1 (conmutar), y esa libertad se aprovecha en el mapa de Karnaugh.

Tiempos de setup, hold y frecuencia máxima

Un flip-flop real necesita que D esté estable un tiempo antes del flanco, el tiempo de setup (tsu), y que siga estable un tiempo después, el tiempo de hold (th). Si D cambia dentro de esa ventana, la salida puede quedar un rato en un nivel intermedio antes de decidirse: es la metaestabilidad. Además, la salida tarda un retardo tCQ en cambiar después del flanco.

En un circuito síncrono la señal sale de un flip-flop, cruza lógica combinacional y llega al siguiente. El periodo mínimo del reloj es:

Tmin = tCQ + tlógica + tsu

Ejemplo: tCQ = 15 ns, el camino combinacional más largo tarda 20 ns y tsu = 5 ns.

Tmin = 15 + 20 + 5 = 40 ns, así que fmax = 1 / 40 ns = 25 MHz.

Para el hold se usa el camino más corto: si el tCQ mínimo es 5 ns y no hay lógica entre dos flip-flops, el dato nuevo llega 5 ns después del flanco. Con th = 3 ns se cumple, porque 5 ns ≥ 3 ns.

El setup limita la frecuencia y se arregla bajando el reloj. El hold no depende de la frecuencia: si no se cumple, el circuito falla incluso a velocidad muy baja.

Errores comunes

Pruébalo en el simulador

La diferencia entre latch y flip-flop se ve de inmediato en un diagrama de tiempos. Arma los dos y aliméntalos con la misma señal.

  1. Coloca dos compuertas NOR y conecta la salida de cada una a una entrada de la otra; agrega entradas S y R y dos indicadores.
  2. Cambia S y R para comprobar las cuatro filas de la tabla, incluida la prohibida, y observa que Q y Q valen 0 a la vez.
  3. Coloca un latch D y un flip-flop D, conecta a ambos la misma entrada de dato y la misma señal de reloj o habilitación.
  4. Abre el cronograma y cambia D varias veces mientras el reloj está en 1: el latch sigue los cambios y el flip-flop solo toma el valor del flanco de subida.
  5. Repite con un flip-flop JK con J = K = 1 y observa cómo su salida tiene la mitad de la frecuencia del reloj.

Ejercicios

  1. Un flip-flop T parte de Q = 1 y recibe T = 1, 1, 0, 1 en cuatro flancos. ¿Qué valores toma Q?
    Respuesta

    Q+ = T ⊕ Q: 1⊕1 = 0, 1⊕0 = 1, 0⊕1 = 1, 1⊕1 = 0. Secuencia: 0, 1, 1, 0.

  2. ¿Qué valores de J y K necesitas para que un flip-flop pase de Q = 1 a Q = 0?
    Respuesta

    J = X, K = 1. Con K = 1 y J = 0 se hace reset; con J = K = 1 se conmuta. Ambas opciones llevan Q a 0.

  3. Con tCQ = 12 ns, tsu = 4 ns y una frecuencia deseada de 40 MHz, ¿cuánto puede tardar como máximo la lógica entre flip-flops?
    Respuesta

    T = 1 / 40 MHz = 25 ns. tlógica ≤ 25 − 12 − 4 = 9 ns.

  4. Escribe la ecuación de D para que un flip-flop D se comporte como un JK.
    Respuesta

    D = J·Q + K·Q, que es la ecuación característica del JK.

Con estas piezas ya puedes pasar a los contadores y registros y después a las máquinas de estados.