Clock treeIl clock tree (rete di distribuzione del clock in italiano) viene utilizzato in un circuito digitale sincrono per definire il tempo di riferimento per il movimento dei dati all'interno del sistema. Distribuisce infatti il segnale di temporizzazione (o i segnali di temporizzazione a partire da un punto comune, detta "radice del clock") a tutti gli elementi che ne hanno bisogno. Questi elementi, in generale, sono gli elementi sequenziali. MotivazioniOgni macchina a stati cambia il suo stato in base a due elementi: il suo stato attuale e lo stato dei suoi ingressi. All'interno degli automi a stati finiti, ed in particolare degli automi sincroni, gli elementi sopraelencati modificano i propri stati soltanto in istanti predefiniti. Quegli istanti sono definiti da un segnale speciale, il clock. Affinché ogni parte del circuito commuti insieme alle altre, il segnale di clock deve giungere contemporaneamente ad ogni elemento che ne necessita. Per ottenere questo risultato, che implica la contemporaneità nel campionamento, è necessario introdurre delle strutture che garantiscano una uniforme propagazione del segnale di clock. Infatti due elementi sequenziali (per esempio due flip-flop) possono trovarsi a distanze diverse dal punto in cui viene originato il segnale; i diversi tempi di propagazione che si avrebbero vanno quindi compensati mediante l'inserimento di specifici circuiti chiamati buffer non invertenti. ImplementazioneLa realizzazione del clock tree è una materia molto critica dal punto di vista industriale. Il CTS (ossia "clock tree synthesis", "inserimento del clock tree" in italiano) può determinare variazioni grandi nelle prestazioni di un circuito digitale. Vengono utilizzati a questo scopo strumenti di progettazione assistita dal computer (CAD) che si avvalgono di algoritmi complessi per la realizzazione di "alberi bilanciati", ossia alberi costituiti da interconnessioni metalliche a da buffer mediante i quali le "foglie" risultano essere sincronizzate. Nel risolvere questo tipo di problemi si devono sviluppare algoritmi che permettano di massimizzare in velocità e contemporaneamente equalizzare tutti i rami. Varianti
Strutture avanzate
Bibliografia
Voci correlateCollegamenti esterni |