En el 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 sincrónico desde un dominio de reloj a otro. Si una señal no permanece activa durante el tiempo suficiente y no se registra, puede aparecer asincrónica en el límite de reloj entrante. [1]
Un sistema sincrónico se compone de 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 asociada a las salidas de esos elementos de memoria.
Debido a los retrasos de la velocidad de la luz , el sesgo de tiempo , etc., el tamaño de un dominio de reloj en un sistema sincrónico de este tipo es inversamente proporcional a la frecuencia del reloj. [2] En las primeras computadoras, normalmente toda la lógica digital corría en un solo 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 los 66 MHz en trazas de PCB estándar (la señal de reloj es la frecuencia más alta en un sistema digital sincrónico), las CPU que funcionan más rápido que esa velocidad invariablemente son CPU de un solo chip con un bucle de enganche de fase (PLL) u otro oscilador en chip, manteniendo las señales más rápidas en el chip. Al principio, cada chip de CPU corría en su propio dominio de reloj único, y el resto de la lógica digital de la computadora corría en otro dominio de reloj más lento. Algunas CPU modernas tienen un reloj de velocidad tan alta, que los diseñadores se ven obligados a crear varios dominios de reloj diferentes en un solo chip de CPU. [ ¿cuándo? ] [ ¿cual? ]
Los 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 bordes 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 sincronizado con una frecuencia más alta.
Los problemas de metaestabilidad de CDC pueden ocurrir entre dominios de reloj asincrónicos; esto es en contraste con la metaestabilidad de cruce de dominio de reinicio, que puede ocurrir entre dominios de reloj sincrónicos y asincrónicos. [4] Para evitar problemas con la metaestabilidad de CDC en el dominio de 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 de reloj con una frecuencia más lenta es más engorroso. Esto generalmente requiere un registro en cada dominio de reloj con una forma de retroalimentación del dominio de destino al dominio de origen, indicando que se detectó la señal. [5] Otros posibles errores de diseño de cruce de dominio de reloj incluyen fallas y pérdida de datos. [6]
En algunos casos, la sincronización del reloj puede generar dos dominios de reloj donde el dominio "más lento" cambia de un segundo al siguiente.