Dominar la lógica secuencial: el latch D explicado y simulado
Un latch D convierte un núcleo SR habilitado en almacenamiento de una entrada. Deriva su ecuación, comprende la transparencia y aprende los límites temporales que oculta el símbolo.
En resumen: Un latch D almacena un bit y sigue . Cuando Enable está en HIGH, Q sigue a D tras el retardo de propagación; cuando Enable está en LOW, Q conserva su valor. El control de D y impide que la entrada de datos ordinaria active set y reset a la vez, pero un latch físico sigue teniendo requisitos de setup/hold y puede volverse metaestable cerca de su flanco de cierre.
La lógica secuencial suele comenzar con el latch SR. Sus dos controles independientes permiten una combinación activada no válida. Un latch D habilitado deriva esos controles de una única entrada de datos y su complemento, eliminando esa combinación durante el funcionamiento normal y añadiendo un momento explícito en el que pueden entrar datos nuevos.

Descomponer el D_LATCH: qué es y por qué importa
En esencia, un D_LATCH es un elemento de memoria sensible al nivel derivado de una estructura SR. Bajo el modelo booleano, su lógica de entrada mantiene Set y Reset mutuamente excluyentes. Se sitúa entre la lógica combinacional y el almacenamiento disparado por flanco: las puertas dependen de las entradas actuales, mientras que el latch puede retener un valor anterior.
El componente cuenta con dos entradas principales y dos salidas:
- D (Datos): Una única entrada que determina qué valor (0 o 1) debe almacenar el latch.
- E (Habilitación): A menudo etiquetada como “E” o “G” (Gate), esta entrada actúa como un interruptor de control. Determina cuándo el latch presta atención a la entrada D.
- Q: La salida principal, que refleja los datos almacenados.
- : La salida complementada (invertida) de los datos almacenados.
El comportamiento se define mediante dos modos de operación distintos según el estado de la señal Enable. Cuando , el latch está en modo transparente. La salida Q simplemente sigue el estado de la entrada D. Si D cambia, Q cambia con ella casi instantáneamente. Cuando , el latch entra en modo retenido. La salida Q ignora por completo la entrada D y conserva el último valor que tenía justo antes de que E pasara de 1 a 0.
Explorar el comportamiento de D_LATCH
Especificación técnica y tabla de verdad
Para dominar el D_LATCH, debes mirar más allá del símbolo y comprender la lógica que gobierna sus transiciones de estado. La tabla de verdad define claramente el siguiente estado de Q () según las entradas actuales. Observa que, cuando E es 0, la entrada D es irrelevante y se indica con una “X” de “No importa”.
| E (Habilitación) | D (Datos) | Acción | |
|---|---|---|---|
| 0 | X | Mantener (retenido) | |
| 1 | 0 | 0 | Resetear (transparente) |
| 1 | 1 | 1 | Establecer (transparente) |
La ecuación característica
Podemos expresar este comportamiento matemáticamente con la ecuación característica del D_LATCH. Esta ecuación es la definición formal de la operación del circuito y es esencial para la simplificación booleana en diseños secuenciales más grandes.
Derivémosla desde primeros principios. Internamente, el D_LATCH es un latch SR habilitado donde:
La ecuación característica del latch SR establece . Sustituyendo:
Al aplicar la ley de De Morgan: . Por tanto:
Como ya cubre el caso en que D y Q son relevantes, el término se absorbe mediante simplificación booleana (teorema del consenso), lo que deja el resultado limpio:
Desglosemos sus componentes lógicos:
- El término representa la transparencia: si Enable está alto, la salida adopta el valor de D.
- El término representa la memoria: si Enable está bajo, la salida mantiene su estado actual .
- La ecuación es un multiplexor disfrazado: la señal Enable selecciona entre datos nuevos y el valor almacenado.
La lógica interna: de SR a D
Puedes imaginar el D_LATCH como un “SR_LATCH habilitado” con un ingenioso giro. Si observas la estructura interna de puertas, alimentamos la entrada D directamente al lado “Set” y una entrada D invertida (mediante una puerta NOT) al lado “Reset”. Esto garantiza que S y R siempre sean opuestos cuando el circuito está habilitado.
Cuando , produce Set y produce Reset. Por ello, la ruta de datos ordinaria no puede ordenar ambos simultáneamente. Cuando , ambos controles se desactivan y el núcleo conserva su estado. Las puertas reales no conmutan simultáneamente: las transiciones de D y Enable cerca del cierre pueden infringir los requisitos temporales, así que el latch D evita el error de la tabla de verdad SR sin eliminar la metaestabilidad.

Error habitual: el peligro de la transparencia
La mayor fortaleza del D_LATCH —su transparencia— es también su debilidad más importante en sistemas complejos de alta velocidad. Este es el problema crítico que confunde a muchos estudiantes cuando pasan de circuitos sencillos al diseño de CPU.
Como la salida Q sigue a la entrada D durante toda la duración en que la señal Enable está alta, cualquier ruido, glitch o cambio de señal no intencionado en la línea D pasa directamente a la salida. Esto se conoce como comportamiento sensible al nivel.
Imagina que la señal Enable es una ventana. Cuando , la ventana está completamente abierta. Ves en tiempo real todo lo que sucede afuera (la entrada D), incluido un pájaro que pasa o una hoja que cae (los “glitches”). Cuando , la ventana se vuelve instantáneamente esmerilada y muestra una instantánea de lo último que viste.
Por qué la transparencia es peligrosa en la práctica: Considera un sistema en el que la salida de un D_LATCH atraviesa lógica combinacional y vuelve a la entrada del mismo latch o de otro. Mientras Enable está alto, cualquier cambio en la salida se propaga de inmediato por la lógica y aparece en la entrada, que a su vez vuelve a cambiar la salida. Esto crea una ruta de realimentación a través de la lógica combinacional que puede causar:
- Múltiples cambios de estado no intencionados dentro de una sola ventana de habilitación.
- Propagación de glitches, en la que un pico transitorio en la línea de datos pasa a Q y corrompe circuitos posteriores.
- Imprevisibilidad temporal, en la que el valor final retenido depende de cuándo exactamente cae Enable; una pesadilla para la verificación.
Muchos diseños síncronos usan biestables D, cuya captura visible externamente se asocia a un flanco de reloj. Otros diseños de alto rendimiento usan deliberadamente latches de dos fases para aprovechar el préstamo de tiempo. Ninguna opción elimina el análisis temporal; cada una define un conjunto distinto de restricciones de setup, hold, transparencia y reloj.
Verificación con osciloscopio: ver la señal
Para comprender de verdad la temporización de un D_LATCH, necesitas ver las formas de onda. En digisim.io, el OSCILLOSCOPE es tu mejor aliado para depurar estas relaciones temporales.
Cuando conectes un OSCILLOSCOPE a los pines E, D y Q, observarás algunos comportamientos críticos:
- Retardo de propagación (): Un modelo físico o consciente de retardos muestra tiempo entre el cambio de D y la respuesta de Q durante la transparencia. Un simulador lógico ideal puede no modelar este retardo.
- El momento de retención: Observa la línea Q exactamente cuando E baja de 1 a 0. El valor que D tenga en ese microsegundo preciso será el que Q conserve, sin importar lo que haga D después.
- Captura de glitches: Si alternas D rápidamente mientras E está alto, verás esos pulsos reflejados en Q. Si alternas D mientras E está bajo, la línea Q del OSCILLOSCOPE permanece como una línea horizontal plana y estable.
Abrir demostración del osciloscopio
Aplicaciones reales: más allá de la placa de pruebas
El D_LATCH no es solo un ejercicio académico; es un componente de trabajo que se encuentra en la arquitectura de los dispositivos que usas cada día.
1. Registros de canalización de CPU
Las canalizaciones sitúan estado entre etapas para que distintas instrucciones puedan ocupar diferentes etapas simultáneamente. Según la metodología de reloj, esos límites pueden usar biestables disparados por flanco o fases de latch alternas. Las canalizaciones basadas en latches pueden prestar tiempo a través de un límite, pero exigen un control cuidadoso de la transparencia, el no solapamiento y el tiempo de hold.
2. Demultiplexación de direcciones (el ejemplo del Intel 8086)
Para ahorrar pines físicos en los circuitos integrados, los primeros microprocesadores como el Intel 8085 y el 8086 usaban un bus multiplexado de dirección/datos. Durante parte de un ciclo de máquina, los pines llevaban una dirección de memoria; durante otra parte, llevaban datos.
Los ingenieros usaban un D_LATCH externo (como el famoso latch transparente octal 74LS373) para “demultiplexar” estas señales. El procesador colocaba la dirección en el bus y generaba un pulso llamado ALE (Address Latch Enable). El D_LATCH capturaba la dirección y la mantenía para los chips de memoria, liberando los pines del procesador para enviar o recibir datos. Sin el D_LATCH, habríamos necesitado el doble de pines en la CPU, haciéndola más grande y mucho más cara.

Construir el D_LATCH en digisim.io
La teoría es esencial, pero la intuición nace al cablearlo. El montaje siguiente usa dos puertas AND, dos puertas NOR y una puerta NOT.
Construcción paso a paso
- Coloca las puertas: Arrastra dos puertas AND, dos puertas NOR y una puerta NOT al lienzo.
- Configura las entradas: Añade dos componentes INPUT_SWITCH. Etiqueta uno como “Data” y el otro como “Enable”.
- La lógica de entrada:
- Conecta “Data” a la puerta AND superior.
- Conecta “Data” a la puerta NOT y, después, conecta la salida NOT a la puerta AND inferior.
- Conecta “Enable” a la segunda entrada de ambas puertas AND.
- El núcleo de memoria:
- Conecta la salida de la puerta AND superior a la entrada de una puerta NOR.
- Conecta la salida de la puerta AND inferior a la entrada de la segunda puerta NOR.
- El acoplamiento cruzado: Esta es la parte mágica. Conecta la salida de la puerta NOR superior a la entrada de la puerta NOR inferior. Conecta la salida de la puerta NOR inferior de vuelta a la entrada de la puerta NOR superior.
- Salida: Conecta un OUTPUT_LIGHT a la salida de la puerta NOR inferior. Esta es tu Q.
La experiencia SimCast
La función SimCast de digisim.io reproduce la propagación de señales a cámara lenta. Observa cómo la señal “Enable” actúa de guardiana: un HIGH en Data llega a las puertas AND de entrada, pero se detiene allí hasta que Enable también pasa a HIGH.
Temas relacionados en el currículo
Mientras sigues explorando la lógica digital en digisim.io, estos temas relacionados profundizarán tu comprensión:
El D_LATCH es un punto crucial en nuestra ruta de aprendizaje estructurada de digisim.io. Marca la transición de “lo que está sucediendo ahora” a “lo que sucedió antes”.
- El latch SR — la base y el problema del estado prohibido.
- El D_LATCH (este artículo) — memoria sensible al nivel.
- El biestable D — el paso de la sensibilidad al nivel al disparo por flanco.
- Modos de registros de desplazamiento SISO, SIPO, PISO y PIPO — componer almacenamiento de un bit para mover datos de varios bits.
- Setup, hold y metaestabilidad — las restricciones temporales detrás de cada circuito retenido.
Reflexiones finales: el primer paso hacia la memoria
El latch D transforma la realimentación biestable en almacenamiento controlado y sensible al nivel. Impide que la entrada D normal solicite set y reset simultáneamente, mientras que la transparencia y la temporización del flanco de cierre siguen siendo consideraciones de diseño centrales.
Continúa con el biestable D para ver cómo el almacenamiento disparado por flanco cambia la interfaz, o abre la referencia del componente latch D.



