Dans la conception électronique numérique, un croisement de domaine d’horloge (CDC), ou simplement croisement d’horloge, est la traversée d’un signal dans un circuit numérique synchrone d’un domaine d’horloge à un autre. Si un signal ne s’affirme pas assez longtemps et n’est pas enregistré, il peut apparaître asynchrone sur la limite d’horloge entrante.
Un système synchrone est composé d’un seul oscillateur électronique qui génère un signal d’horloge, et de son domaine d’horloge — les éléments de mémoire directement cadencés par ce signal de cet oscillateur, et la logique combinatoire attachée aux sorties de ces éléments de mémoire.
En raison des retards de vitesse de la lumière, de l’inclinaison du timing, etc., la taille d’un domaine d’horloge dans un tel système synchrone est inversement proportionnelle à la fréquence de l’horloge. Dans les premiers ordinateurs, toute la logique numérique fonctionnait généralement dans un seul domaine d’horloge. En raison de la perte et de la distorsion de la ligne de transmission, il est difficile de transporter des signaux numériques supérieurs à 66 MHz sur des traces de circuits imprimés standard (le signal d’horloge est la fréquence la plus élevée dans un système numérique synchrone), les PROCESSEURS qui fonctionnent plus vite que cette vitesse sont invariablement des processeurs à puce unique avec une boucle à verrouillage de phase (PLL) ou un autre oscillateur sur puce, gardant les signaux les plus rapides sur puce. Au début, chaque puce CPU fonctionnait dans son propre domaine d’horloge unique, et le reste de la logique numérique de l’ordinateur fonctionnait dans un autre domaine d’horloge plus lent. Quelques PROCESSEURS modernes ont une horloge à une telle vitesse que les concepteurs sont obligés de créer plusieurs domaines d’horloge différents sur une seule puce CPU.
Différents domaines d’horloge ont des horloges qui ont une fréquence différente, une phase différente (en raison soit d’une latence d’horloge différente, soit d’une source d’horloge différente), ou les deux. De toute façon, la relation entre les fronts d’horloge dans les deux domaines ne peut pas être invoquée.
La synchronisation d’un signal à un seul bit avec un domaine d’horloge avec une fréquence plus élevée peut être réalisée en enregistrant le signal via une bascule qui est cadencée par le domaine source, maintenant ainsi le signal suffisamment longtemps pour être détecté par le domaine de destination cadencé à fréquence plus élevée.
Pour éviter les problèmes de métastabilité dans le domaine de destination, un minimum de 2 étapes de bascule de resynchronisation sont incluses dans le domaine de destination.
La synchronisation d’un signal à un seul bit traversant le domaine d’horloge avec une fréquence plus lente est plus lourde. Cela nécessite généralement un registre dans chaque domaine d’horloge avec une forme de rétroaction du domaine de destination vers le domaine source, indiquant que le signal a été détecté.
Dans certains cas, le déclenchement d’horloge peut entraîner deux domaines d’horloge où le domaine « plus lent » change d’une seconde à l’autre.