En diseño electrónico digital, un cruce de dominio de reloj (CDC), o simplemente cruce de reloj , es el recorrido de una señal en un circuito digital síncrono de un dominio de reloj a otro. Si una señal no se afirma durante el tiempo suficiente y no se registra, puede aparecer asíncrona en el límite del reloj entrante. [1]
Un sistema síncrono está compuesto por un único oscilador electrónico que genera una señal de reloj y su dominio de reloj : los elementos de memoria sincronizados directamente por esa señal de ese oscilador y la lógica combinacional adjunta a las salidas de esos elementos de memoria.
Debido a retrasos en la velocidad de la luz , asimetría temporal , etc., el tamaño de un dominio de reloj en dicho sistema síncrono es inversamente proporcional a la frecuencia del reloj. [2] En las primeras computadoras, normalmente toda la lógica digital se ejecutaba en un único dominio de reloj. Debido a la pérdida y distorsión de la línea de transmisión , es difícil transportar señales digitales por encima de 66 MHz en trazas de PCB estándar (la señal de reloj es la frecuencia más alta en un sistema digital síncrono), las CPU que funcionan más rápido que esa velocidad invariablemente son CPU de un solo chip con un bucle de bloqueo de fase (PLL) u otro oscilador en el chip, manteniendo las señales más rápidas en el chip. Al principio, cada chip de CPU funcionaba en su propio dominio de reloj único, y el resto de la lógica digital de la computadora funcionaba en otro dominio de reloj más lento. Algunas CPU modernas tienen una velocidad de reloj tan alta que los diseñadores se ven obligados a crear varios dominios de reloj diferentes en un solo chip de CPU. [ ¿ cuando? ] [ ¿cual? ]
Diferentes dominios de reloj tienen relojes que tienen una frecuencia diferente , una fase diferente (debido a una latencia de reloj diferente o a una fuente de reloj diferente), o ambas. [3] De cualquier manera, no se puede confiar en la relación entre los flancos del reloj en los dos dominios.
La sincronización de una señal de un solo bit con un dominio de reloj con una frecuencia más alta se puede lograr registrando la señal a través de un flip-flop sincronizado por el dominio de origen, manteniendo así la señal el tiempo suficiente para ser detectada por el dominio de destino con frecuencia más alta.
Pueden ocurrir problemas de metaestabilidad de CDC entre dominios de reloj asíncronos; esto contrasta con el restablecimiento de la metaestabilidad del cruce de dominios, que puede ocurrir entre dominios de reloj sincrónicos y asincrónicos. [4] Para evitar problemas con la metaestabilidad de CDC en el dominio del reloj de destino, se incluyen un mínimo de 2 etapas de flip-flops de resincronización en el dominio de destino. Sincronizar una señal de un solo bit que atraviesa el dominio del reloj con una frecuencia más lenta es más engorroso. Por lo general, esto requiere un registro en cada dominio de reloj con una forma de retroalimentación desde el dominio de destino al dominio de origen, indicando que se detectó la señal. [5] Otros posibles errores de diseño de cruce de dominios de reloj incluyen fallas técnicas y pérdida de datos. [6]
En algunos casos, la activación del reloj puede dar como resultado dos dominios de reloj donde el dominio "más lento" cambia de un segundo al siguiente.