Español
Electrónica industrial

CDC

Siglas de clock domain crossing (cruce de dominio de reloj).

CDC: cuando las señales digitales saltan entre mundos de reloj

Un cruce de dominio de reloj ocurre cuando una señal digital se mueve de una parte de un circuito que funciona con una frecuencia de reloj a otra parte que funciona con una frecuencia de reloj diferente, o de una fuente asíncrona a un sistema síncrono. En la práctica, esto significa que una señal generada y utilizada dentro de un dominio de temporización debe de alguna manera entrar y ser utilizada de forma segura en otro. El problema es que el reloj receptor puede muestrear la señal entrante en un momento desafortunado, atrapándola a mitad de la transición, lo que causa metaestabilidad: el flip-flop receptor entra en un estado indefinido entre 0 y 1, lo que podría corromper los datos posteriores.

La metaestabilidad no es un fallo menor. Cuando un flip-flop entra en un estado metaestable, puede tardar un tiempo impredecible en resolverse a un nivel lógico válido, y a veces nunca se estabiliza completamente antes de que el siguiente flanco de reloj lo muestree de nuevo. Esto se propaga en errores lógicos, violaciones de temporización y fallos del sistema. Por esta razón, cruzar dominios de reloj es una de las operaciones más peligrosas en el diseño digital. Un diseño que pasa la simulación puede fallar silenciosamente en el campo porque la metaestabilidad es probabilística: puede ocurrir raramente, pero dado suficientes ciclos de reloj, ocurrirá.

Estrategias de sincronización

La solución estándar es un sincronizador: una cadena de dos o más flip-flops sincronizados por el dominio de destino, con la señal entrante aplicada al primer flip-flop. Incluso si el primer flip-flop se vuelve metaestable, el segundo flip-flop tiene tiempo para ver una salida estable y la muestrea limpiamente. Para señales de control de un solo bit, un sincronizador de dos etapas suele ser suficiente. El cruce de datos multibit requiere estructuras más complejas, como contadores de código Gray o protocolos de handshake, porque no se pueden sincronizar varios bits juntos sin riesgo de sesgo entre bits.

El cruce de dominio de reloj es común en sistemas reales. Un chip puede tener múltiples dominios de reloj internos para la gestión de energía, o las señales asíncronas externas (botones de reinicio, entradas de sensores, datos recibidos) deben sincronizarse con un reloj interno. Los FPGA y ASIC que manejan interfaces de alta velocidad cruzan frecuentemente entre el reloj de la interfaz y un reloj del sistema. La falta de un manejo adecuado de CDC es una de las principales fuentes de errores de silicio sutiles y difíciles de depurar, razón por la cual la verificación formal de CDC es una práctica cada vez más estándar en los flujos de diseño profesionales.

Fuentes

Entrada IG544124/04/2011

Más de Electrónica industrial

Ver todo

Reciba la palabra del día

Un término industrial cada día, con el oficio al que pertenece y por qué vale la pena conocerlo. Sin publicidad.