Nella progettazione elettronica digitale un clock domain crossing (CDC), o semplicemente clock crossing, è l’attraversamento di un segnale in un circuito digitale sincrono da un dominio di clock a un altro. Se un segnale non si afferma abbastanza a lungo e non è registrato, potrebbe apparire asincrono sul confine dell’orologio in entrata.
Un sistema sincrono è composto da un singolo oscillatore elettronico che genera un segnale di clock e il suo dominio di clock—gli elementi di memoria direttamente cronometrati da quel segnale da quell’oscillatore e la logica combinatoria collegata alle uscite di quegli elementi di memoria.
A causa di velocità-di-luce ritardi, timing skew, ecc., la dimensione di un dominio di orologio in un tale sistema sincrono è inversamente proporzionale alla frequenza dell’orologio. Nei primi computer, in genere tutta la logica digitale correva in un singolo dominio di clock. A causa della perdita della linea di trasmissione e della distorsione è difficile trasportare segnali digitali superiori a 66 MHz su tracce PCB standard (il segnale di clock è la frequenza più alta in un sistema digitale sincrono), le CPU che funzionano più velocemente di quella velocità sono invariabilmente CPU single-chip con un ciclo bloccato in fase (PLL) o altro oscillatore su chip, mantenendo All’inizio, ogni chip della CPU correva nel proprio dominio di clock singolo, e il resto della logica digitale del computer correva in un altro dominio di clock più lento. Alcune CPU moderne hanno un clock così ad alta velocità, che i progettisti sono costretti a creare diversi domini di clock diversi su un singolo chip della CPU.
Diversi domini di clock hanno orologi che hanno una frequenza diversa, una fase diversa (a causa della diversa latenza di clock o di una diversa sorgente di clock) o entrambi. In entrambi i casi la relazione tra i bordi dell’orologio nei due domini non può essere invocata.
La sincronizzazione di un singolo segnale bit a un dominio di clock con una frequenza più alta può essere effettuata registrando il segnale attraverso un flip-flop che viene cronometrato dal dominio sorgente, mantenendo così il segnale abbastanza a lungo da essere rilevato dal dominio di destinazione con clock a frequenza più alta.
Per evitare problemi di metastabilità nel dominio di destinazione, nel dominio di destinazione sono inclusi almeno 2 stadi di flip-flop di ri-sincronizzazione.
La sincronizzazione di un singolo segnale di bit che attraversa il dominio di clock con una frequenza più lenta è più ingombrante. Ciò richiede in genere un registro in ogni dominio di clock con una forma di feedback dal dominio di destinazione al dominio di origine, che indica che il segnale è stato rilevato.
In alcuni casi, il gating dell’orologio può comportare due domini di clock in cui il dominio “più lento” cambia da un secondo all’altro.