Flip-Flop SR con Reloj: Operación, Tabla de Verdad y Esenciales de Diseño Síncrono

¿Qué es un Flip-Flop SR con Reloj?

Un flip-flop SR con reloj (también llamado latch con compuerta) añade una entrada de reloj (habilitación) a un latch SR básico, permitiendo cambios de estado solo cuando el reloj está activo. Esta sincronización es fundamental para construir lógica secuencial confiable—contadores, registros, máquinas de estado—donde todas las transiciones se alinean a un borde de reloj común.

Estructura Interna

  • Latch principal: Dos compuertas NOR acopladas cruzadamente (activas en alto) o NAND (activas en bajo).
  • Compuerta de reloj: Dos compuertas adicionales (AND para latch NOR, OR para latch NAND) que pasan S y R al núcleo solo cuando CLK = 1 (o borde ascendente para versiones disparadas por borde).
  • Entradas: S (Set), R (Reset), CLK (Reloj/Habilitación).
  • Salidas: Q (estado), Q̅ (complemento).

Operación Sensible al Nivel (Latch con Compuerta)

CLKSRQnextQ̅nextAcción
0XXQprevQ̅prevMantener (en latch)
100QprevQ̅prevMantener
11010Set
10101Reset
111??Prohibido (metaestable/indefinido)

X = no importa. El estado prohibido (S=R=1) debe prevenirse por diseño.

Variantes Disparadas por Borde

Las versiones maestro-esclavo o verdaderamente disparadas por borde (derivadas de tipo D) muestrean S/R solo en el borde ascendente (o descendente) del reloj, eliminando la ventana de transparencia y las condiciones de carrera. Estas son preferidas en sistemas síncronos de alta velocidad.

¿Por qué Usar un Flip-Flop SR con Reloj?

  • Sincronización: Todas las actualizaciones de estado ocurren en tiempos de reloj conocidos, habilitando el análisis de tiempo y la gestión de metaestabilidad.
  • Retención de estado: Las salidas se mantienen indefinidamente mientras CLK=0, independientemente del ruido en S/R.
  • Bloque de construcción: Base para flip-flops JK, T y D; registros de desplazamiento; contadores binarios.

Notas Prácticas de Diseño

  • Nunca permita S=R=1 simultáneamente—agregue lógica de dirección si es necesario.
  • Respete los tiempos de configuración/mantenimiento respecto al borde del reloj (para versiones disparadas por borde).
  • Para ASIC/FPGA: infiera desde RTL (always_ff @(posedge clk) ...) en lugar de instanciación a nivel de compuerta.
  • Desencadene interruptores mecánicos que conduzcan las entradas S/R.

Ejemplo: Un contador síncrono ascendente de 4 bits usa cuatro flip-flops SR (o D) con reloj con lógica de estado siguiente combinacional. Cada flip-flop conmuta cuando todos los bits inferiores son 1—conteo limpio y sin fallos.