Flip-flop D

El flip-flop D (de datos) es el elemento de memoria fundamental del diseño digital síncrono. En cada flanco de subida del reloj muestrea la entrada D y la almacena en la salida Q, manteniendo ese valor hasta el siguiente flanco. Las entradas asíncronas PRE (preset) y CLR (clear) fuerzan Q a 1 o a 0 de inmediato sin importar el reloj, y CLR gana si ambas se activan. Como captura el dato solo en un instante bien definido, el flip-flop D es el bloque estándar para registros, pipelines y máquinas de estados.

Básico

Capturar un bit en el flanco de reloj

Conecta un Switch a D y un Clock a CLK, y coloca un LED en Q. El nivel que tenga D en el instante del flanco de subida se copia a Q y permanece durante todo el período de reloj, aunque después muevas el interruptor. Este comportamiento de «muestrear y retener» es lo que convierte un valor combinacional en estado almacenado.

CLKDQ(t+1)
rising00
rising11
no edgeXQ(t) (hold)
Intermedio

Leer la tabla de excitación

La tabla de excitación responde el problema de diseño al revés: dada la transición que quieres que haga Q, ¿cuánto debe valer D? En el flip-flop D es trivial, D siempre es igual al próximo estado deseado, y por eso los flip-flops D son tan cómodos para máquinas de estados. Usa PRE y CLR solo para la inicialización asíncrona al encender, nunca como parte del camino de datos síncrono normal.

Q(t)Q(t+1)D
000
011
100
111
Avanzado

Construir un contador asíncrono

Conecta el Q' (salida invertida) de cada flip-flop a su propia D y lleva Q' al reloj de la siguiente etapa. Así cada etapa conmuta a la mitad de la frecuencia de la anterior y una cadena de flip-flops D cuenta en binario. Este contador «ripple» o asíncrono es simple, pero las etapas se estabilizan una tras otra; cuando necesites que todos los bits cambien en el mismo instante, usa un contador síncrono con un reloj común.

Construir un contador asíncrono

Citas

  • Eccles, W. H., & Jordan, F. W. (1919). A trigger relay utilising three-electrode thermionic vacuum tubes. Radio Review, 1(3), 143-146.. Referencia 1
  • Shannon, C. E. (1938). A symbolic analysis of relay and switching circuits. Transactions of the American Institute of Electrical Engineers, 57(12), 713-723.. Referencia 2
  • Mano, M. M., & Ciletti, M. D. (2018). Digital design: With an introduction to the Verilog HDL, VHDL, and SystemVerilog (6th ed.). Pearson.. Referencia 3