Clock tree: differenze tra le versioni
Revisione e riordino contenuti |
Nessun oggetto della modifica |
||
Riga 1: | Riga 1: | ||
{{da correggere|Voce scritta a mo di "lezione frontale". Urge eliminazione parti soggettive-discorsive|informatica}} |
|||
[[File:clock distrib.png|thumb|right|Descrizione ideale di come il clock debba raggiungere ogni cella sequenziale del circuito integrato a partire da una radice comune.]] |
[[File:clock distrib.png|thumb|right|Descrizione ideale di come il clock debba raggiungere ogni cella sequenziale del circuito integrato a partire da una radice comune.]] |
||
[[File:clock tree with buffers.png|thumb|right|Descrizione qualitativa di come un albero di clock tree possa essere realizzato.]] |
[[File:clock tree with buffers.png|thumb|right|Descrizione qualitativa di come un albero di clock tree possa essere realizzato.]] |
||
Riga 9: | Riga 7: | ||
=== Motivazioni === |
=== Motivazioni === |
||
Ogni macchina a stati cambia il suo stato in base a due elementi: lo stato attuale e i suoi ingressi. |
Ogni macchina a stati cambia il suo stato in base a due elementi: lo stato attuale e i suoi ingressi. All'interno degli [[automa a stati finiti|automi a stati finiti]], ed in particolare degli automi sincroni, gli elementi sopralencati modificano effettivamente gli accessi soltanto in istanti predefiniti. Questi istanti sono definiti dal nostro 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, la contemporaneità nel campionamento, è necessario introdurre delle strutture che garantiscano una uniforme propagazione del segnale. Infatti |
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, la contemporaneità nel campionamento, è necessario introdurre delle strutture che garantiscano una uniforme propagazione del segnale. 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 necessariamente compensati mediante l'inserimento di specifici circuiti chiamati [[buffer non invertente|buffer non invertenti]]. |
||
=== Implementazione === |
=== Implementazione === |
||
La realizzazione del clock tree è una materia molto critica dal punto di vista industriale. Il |
La 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 |
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 non invertente|buffer]] mediante i quali le "foglie" risultano essere sincronizzate. Nel risolvere questo tipo di problemi si devono sviluppare [[algoritmo|algoritmi]] che permettano di massimizzare in velocità e contemporaneamente equalizzare tutti i rami. |
||
==== Varianti ==== |
==== Varianti ==== |
||
* Clock tree realizzati tramite [[invertitore|invertitori]]: dal punto di vista logico, se il numero delle inversioni è pari allora il segnale non cambia. |
* ''Clock tree realizzati tramite [[invertitore|invertitori]]'': dal punto di vista logico, se il numero delle inversioni è pari allora il segnale non cambia. |
||
* |
* ''Clock mesh'': variante nella CTS che non si basa più su un albero di propagazione, ma sfrutta una rete di distribuzione uniforme dalla quale viene estratto localmente il segnale del clock. |
||
==== Strutture avanzate ==== |
==== Strutture avanzate ==== |
||
* |
* ''Domini di clock multipli'': si hanno nel caso di circuiti che ricevono più segnali di clock contemporaneamente: ogni singolo clock viene bilanciato separatamente dagli altri |
||
* |
* ''Clock gating'': struttura che permette lo spegnimento del clock quando il circuito non viene utilizzato |
||
== Bibliografia == |
== Bibliografia == |
||
Riga 29: | Riga 27: | ||
== Voci correlate == |
== Voci correlate == |
||
* [[ |
* [[Buffer non invertente]] |
||
== Collegamenti esterni == |
== Collegamenti esterni == |
||
*CAD – [http://www.ieee.org/organizations/pubs/transactions/tcadics.htm IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems] |
* CAD – [http://www.ieee.org/organizations/pubs/transactions/tcadics.htm IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems] |
||
[[Categoria:Elettronica]] |
[[Categoria:Elettronica]] |
Versione delle 13:47, 25 mag 2012
Il 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.
Motivazioni
Ogni macchina a stati cambia il suo stato in base a due elementi: lo stato attuale e i suoi ingressi. All'interno degli automi a stati finiti, ed in particolare degli automi sincroni, gli elementi sopralencati modificano effettivamente gli accessi soltanto in istanti predefiniti. Questi istanti sono definiti dal nostro 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, la contemporaneità nel campionamento, è necessario introdurre delle strutture che garantiscano una uniforme propagazione del segnale. 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 necessariamente compensati mediante l'inserimento di specifici circuiti chiamati buffer non invertenti.
Implementazione
La 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
- Clock tree realizzati tramite invertitori: dal punto di vista logico, se il numero delle inversioni è pari allora il segnale non cambia.
- Clock mesh: variante nella CTS che non si basa più su un albero di propagazione, ma sfrutta una rete di distribuzione uniforme dalla quale viene estratto localmente il segnale del clock.
Strutture avanzate
- Domini di clock multipli: si hanno nel caso di circuiti che ricevono più segnali di clock contemporaneamente: ogni singolo clock viene bilanciato separatamente dagli altri
- Clock gating: struttura che permette lo spegnimento del clock quando il circuito non viene utilizzato
Bibliografia
- Electronic Design Automation For Integrated Circuits Handbook, by Lavagno, Martin, and Scheffer, ISBN 0-8493-3096-3 un compendio di automazione del design.