Università degli Studi di Trieste
Corso di Ricerca Operativa
Facoltà di Ingegneria Elettronica
Anno accademico 2001/2002
Tracciamento delle linee del
clock
Fabio Piccolo
Matricola: 83101395
Sommario
TRACCIAMENTO DELLE LINEE DI CLOCK................................................ 3
ALGORITMO DELL’ALGORITMO DELL’ALBERO MINIMO.................... 4
METODO DELL’ALBERO DI STEINER.......................................................... 5
ZERO CLOCK SKEW ROUTING PROBLEM................................................. 6
MODELLO DI RITARDO LINEARE ................................................................................7
MODELLO CIRCUITALE .............................................................................................7
Il ritardo fra due nodi si calcola con la seguente formula............................... 8
ALGORITMO DME ........................................................................................... 9
PRIMA FASE ..........................................................................................................10
1) Modello lineare di ritardo ...................................................................... 11
2) Modello circuitale .................................................................................. 12
SECONDA FASE......................................................................................................13
APPLICAZIONE PRATICA DELL’ALGORITMO ..............................................................14
1) Modello lineare di ritardo ...................................................................... 14
2) Modello circuitale .................................................................................. 16
CONCLUSIONI ................................................................................................ 17
BIBLIOGRAFIA ............................................................................................... 17
2
Tracciamento delle linee di clock
Nei circuiti sincroni lo scambio di dati fra le varie unità è regolato da un segnale di clock. Il
corretto tracciamento delle linee che portano questo segnale è fondamentale per ottenere circuiti con
buone prestazioni.
La realizzazione di un circuito integrato consiste in tre passi:
1) collocazione dei componenti
2) tracciamento globale delle piste
3) tracciamento dettagliato delle piste
Al punto 2) si considera la rete di alimentazione e quella del clock prima degli altri segnali,
mentre al 3) non esiste questa priorità.
Dopo la fase 1) di collocazione dei componenti, la posizione della sorgente del clock e dei
pins di ogni unità risulta determinata. Ogni linea di collegamento fra due pins è dotata di una
resistenza e di una capacità. Sia α la resistenza per unità di superficie e β la capacità per unità di
superficie del circuito. Si fissano:
α = 3mΩ
β = 0,02 fF
valori abbastanza vicini a quelli riscontrati nella realtà. Si assume l’unità di lunghezza in 0,1µm.
Minimizzando la lunghezza complessiva delle linee del clock si riduce:
1) la potenza di alimentazione del sistema, perché diminuisce la capacità e la resistenza
complessiva del circuito;
2) la deformazione della forma d’onda del segnale di sincronizzazione, in quanto si abbreviano i
tempi di passaggio fra un valore di tensione ed un altro.
Esistono due modi per formalizzare il quesito:
1) Algoritmo dell’albero minimo
2) Metodo dell’albero di Steiner
3
Algoritmo dell’algoritmo dell’albero minimo
Il problema del tracciamento globale delle linee di clock può essere affrontato con
l’algoritmo dell’albero minimo. In questo modello ogni pin rappresenta un nodo del grafo, mentre le
linee che collegano i nodi rappresentano i rami. Il costo di questi ultimi è dato dal ritardo subito dal
segnale, calcolabile come il prodotto fra la resistenza e la capacità della linea in questione.
L’algoritmo dell’albero mimino riduce il ritardo complessivo della rete di distribuzione del
clock del circuito preso in esame. Il ritardo dipende dalla lunghezza della rete e quindi riducendolo
decrementa anche la lunghezza.
Si consideri il seguente esempio.
Nella Fig. 1 viene rappresentata la rete iniziale con le distanze relative ad ogni lato espresse
in centimetri, per semplicità. La sorgente del clock s0 non è presente nella figura, perché non c’è
nessun vincolo sulla sua disposizione spaziale in quanto verrà collocata in un ramo che collega due
punti.
Per calcolare il costo di ogni lato bisogna trasformare i centimetri in 1/10 di µ metri.
Si utilizza la formula t ij= lij α x lij β dove lij indica il numero di decimi di micron considerati
in quella distanza e α e β sono la resistenza e la capacità unitaria per un decimo di micron
rispettivamente. Dopo aver effettuato questi conti si ottiene il grafo in Fig. 2.
Il metodo di risoluzione dell’albero minimo procede elencando i rami in modo crescente.
Una volta eseguita questa operazione vengono aggiunti i rami all’albero, seguendo l’elenco in modo
da non formare percorsi chiusi. L’algoritmo risolutivo termina quando tutti i nodi sono connessi e
c’è un numero di rami pari al numero di nodi meno uno.
L’applicazione dell’algoritmo all’esempio dà il risultato in Fig. 3.
Esiste inoltre, anche un’altra soluzione equivalente che collega i nodi s1 e s4 .
Il ritardo dell’albero è 22,2 nano secondi, mentre la lunghezza complessiva delle linee di
ritardo è 10,12 cm.
4
Metodo dell’albero di Steiner
Il tracciamento globale delle linee del clock può essere affrontato come problema dell’albero
di Steiner ( Steiner tree problem ).
Nel problema dell’albero di Steiner, come definito da Mutry, vengono dati una rete
connessa e un sotto insieme X⊆N di nodi . Si vuole minimizzare il costo complessivo dell’albero
che deve contenere tutti gli elementi dell’insieme X, ma può contenere o meno dei nodi di X\N.
Il problema è equivalente a trovare un sotto insieme di nodi Y tali che X⊆Y⊆N, in modo da
minimizzare la lunghezza della sotto rete così ottenuta. I nodi di Y che non appartengono a X
vengono detti punti di Steiner e il loro insieme S viene detto di supporto.
Un metodo per risolvere il problema è quello di decidere preventivamente quali nodi devono
appartenere all’insieme S. In questo modo è sufficiente risolvere un problema di albero minimo. Se
il grafo è sconnesso la soluzione S non è ammissibile. Al fine di giungere all’ottimo si considera un
intorno Në dato da tutti i sotto insiemi di S ∪ [i] con i∉ X ∪ S e S\[i] con i∈ S. Procedendo
iterativamente partendo dalla soluzione migliore si giunge all’ottimo.
In questo contesto vengono aggiunti dei nodi al problema, ottenendo la situazione
in Fig. 4.
Applicando il metodo sopra descritto con λ=1 si ottiene l’albero in Fig.5, dove i nodi n1 e n2
sono i cosidetti punti di Steiner.
Attraverso la formula utilizzata in precedenza per calcolare i ritardi si ottiene il grafo in Fig.
6.
Il ritardo dell’albero è 12,6 nano secondi, mentre la sua lunghezza complessiva è di 9,92
cm. Si nota un risparmio in termini di lunghezza, che comporta una riduzione del ritardo dell’albero
di circa 10 nano secondi.
5
Zero Clock Skew Routing Problem
I metodi di risoluzione considerati fino a questo momento non tengono però conto che il
periodo del clock soddisfa la relazione:
Clock period ≥ t d + t skew + t su + t ds
dove il primo termine dopo la disuguaglianza rappresenta il ritardo sul percorso più lungo
della linea di sincronizzazione. Questo può essere riscritto come segue:
t d = t d − int erconnection + t d − gates
dove il primo termine è il ritardo associato alle interconnessioni sul percorso più lungo,
mentre il secondo termine è il ritardo delle porte logiche lungo questo percorso.
Il secondo termine della disuguaglianza rappresenta il clock skew, cioè la massima
differenza di ritardo dalla sorgente ad un pin. Se questo fattore risulta elevato, può portare a degli
errori di funzionamento del circuito, dovuti alla ricezione del segnale di clock con ritardi diversi.
Il terzo termine nella formula rappresenta invece il tempo di set-up, cioè il tempo necessario
al dispositivo sincronizzato per cambiare di stato.
Il quarto termine rappresenta il ritardo di propagazione all’interno degli elementi
sincronizzati.
Al fine di incrementare la velocità dei circuiti, la riduzione del tempo di clock skew e di
quello del ritardo di interconnessione sono fondamentali, in quanto gli altri ritardi vengono
minimizzati dai produttori di circuiti.
Per enunciare formalmente il problema del clock skew sono necessarie le seguenti
definizioni.
Sia S⊂ℜ² l’insieme delle coordinate dei pins di connessione del clock, ottenuto dopo la fase di
posizionamento dei componenti.
Una connessione topologica è un albero binario G, il quale ha un numero di elementi
all’ultimo livello, detti foglie, pari alla cardinalità dell’insieme S.
Ad ogni nodo s dell’albero viene associato uno spazio di tracciamento indicato con pl(s).
Un albero di clock T(S) è un insieme di elementi connessi che rispettano una topologia G.
La sorgente del clock è la radice dell’albero ed è indicata con s0 . I nodi, collegati alla radice
o ad un altro nodo, tramite dei rami vengono chiamati successori o figli, mentre il nodo a cui sono
collegati viene detto parente.
Il costo di un albero T(S), indicato con cost(T(S)), è la lunghezza totale dei rami dell’albero.
Lo skew di un albero di clock T(S) è il massimo valore di |t d (s0 ,si)-t d (s0 ,sj)| considerando tutte le
coppie si,sj ∈ S. Se questo valore è nullo, allora l’albero è un albero a clock skew nullo (Zero Clock
Skew Tree o ZST).
Si conclude quindi:
Zero Clock Skew Routing Problem: Dato un’insieme S di pins del clock e una topologia di
connessione G, costruire un albero con clock skew nullo che
abbia il minimo costo.
6
Per studiare il problema si possono utilizzare due diversi modelli:
1)
Modello di ritardo
2)
Modello circuitale
Modello di ritardo lineare
In questo modello, il ritardo lungo un percorso è proporzionale alla lunghezza del percorso
stesso ed è indipendente dal resto della topologia delle connessioni.
Il ritardo fra due nodi qualsiasi di un percorso è dato dalla formula:
1
t LD (u , w) = ∑ ev
(1)
ev ∈ path( u , w )
dove ev rappresenta il ramo tra due nodi e | ev | è la lunghezza del ramo.
In generale l’uso di questa approssimazione lineare è ragionevole con le vecchie tecnologie,
le quali hanno dimensioni geometriche più estese e componenti più lenti. Questo modello può
essere applicato efficacemente anche su circuiti ibridi con dimensioni geometriche piuttosto ampie.
Modello circuitale
Nel caso di dispositivi con dimensioni più piccole e, con frequenze di funzionamento
elevate, è necessaria una più accurata analisi temporale. Tipicamente si usa il modello di ritardo
elaborato da Elmore. Oltre a considerare la resistenza e la capacità per unità di lunghezza nelle
connessioni, si tiene conto anche una capacità di carico CLi sui nodi dell’albero, i quali sono i pins
dei collegamenti per il clock.
Una linea di collegamento è rappresentata con diversi modelli, come esposto nella Fig. 7.
7
In questo contesto la capacità di un nodo si calcola con la formula ricorsiva
(2)
Cv = C Li
Cv = cv +
se i è un nodo conclusivo
∑ (c
ew
w∈children(v )
+ Cw )
se i è un nodo interno
dove CLi, cv, cew e Cw sono le capacità di carico dei pins, del ramo che arriva sul nodo v, del ramo
che collega v con il figlio w e quella del nodo w rispettivamente.
Il ritardo fra due nodi si calcola con la seguente formula:
(3)
t ED (u, w) =
1
rev ( cev + Cv )
2
ev ∈ path( u , w )
∑
Nel modello di Elmore il ritardo gode della proprietà addittiva: se v è un vertice nel percorso
fra due nodi u e w allora vale t ed (u,w)=ted(u,v)+ted(v,w).
8
Algoritmo DME
La costruzione di un albero con clock skew nullo può essere suddivisa in due passi:
1) trovare una topologia appropriata
2) posizionare opportunamente i punti di Steiner nel piano
L’algoritmo Deferred Merge Embedding (DME) permette di effettuare entrambe queste
operazioni in due fasi distinte. Nella prima si costruisce un albero di segmenti che rappresenta il
possibile posizionamento dei nodi interni dell’albero ZST. Nella seconda fase si determina
esattamente il punto di collocazione dei nodi dell’albero.
Al fine di utilizzare l’algoritmo sono necessarie le seguenti definizioni.
La distanza di Manhattam è la distanza fra due insiemi di punti P e Q, cioè si può scrivere che
d(P,Q)=min[d(p,q)|p ∈ P e q ∈ Q].
Un arco di Manhattam p è un segmento, che può avere lunghezza nulla, con pendenza +1 o –1,
cioè inclinato di 45° in un verso o nell’altro rispetto alla direzione del filo di collegamento.
La regione di punti con distanza fissa rispetto ad un arco di Manhattam è definita regione
rettangolare tildata ( Tilded Rectangular Region ).
L’arco di Manhattam che si trova al centro di una TRR viene detto cuore ( core ).
Il raggio di una TRR è la distanza di Manhattam fra il cuore e il limite esterno. Un esempio delle
definizioni esposte è dato in Fig. 8.
L’algoritmo DME consiste in due fasi separate descritte di seguito.
9
Prima Fase
In questa fase si costruisce un albero di segmenti di impianto (merging segments) dato un
insieme di nodi S e una connessione topologica G. Ad ogni nodo in G è associato un segmento di
collocamento che rappresenta un’insieme di possibili posizionamenti del punto in questione. Questo
insieme di punti dipende dai segmenti di impianto dei suoi figli, quindi si adotta un sistema di
scansione dell’albero dal basso all’alto. Nella costruzione di questo ultimo si stabilisce ad ogni
ramo una lunghezza, che si mantiene nell’albero finale.
Dati due figli a e b di un nodo v si indicano con TSa e TSb i sotto alberi con radice a e b
rispettivamente. Si posiziona v in modo che la lunghezza dei fili sia minima e le proprietà di clock
skew nullo vengano rispettate. Si definisce come costo di impianto tra TSa e TSb la somma della
lunghezza dei due rami ea ed eb . I valori sono scelti in modo da minimizzare il costo complessivo,
prendendo v nello spazio pl(v). La scelta del punto è univoca perché la funzione di ritardo è
monotona.
Il segmento di impianto (merging segment) ms(v) si definisce a seconda della posizione del nodo v:
1) se il nodo v è un pin si allora si pone ms(v)= si, cioè uno spazio costituito da un singolo punto;
2) se v è un nodo interno ms(v) risulta formato da un insieme di punti che garantiscono il costo di
impianto minimo, cioè da tutti quei punti a distanza | ea | da ms(a) e a distanza | eb | da ms(b).
Se i segmenti di impianto di a e di b sono degli archi di Manhattam, allora ms(v)=TTRa ∩
TRRb , e quindi anche il segmento di impianto risulta esserlo.
Il costo di impianto ha un limite inferiore dato da κ=d(ms(a),ms(b)). Se il costo di impianto
è maggiore di questo valore allora un ramo sarà a lunghezza nulla e l’altro avrà un valore pari al
costo.
La situazione più comune, presentata nella Fig. 9.1, è quella in cui il valore del costo risulta
essere uguale a κ. L’altro caso viene illustrato dalla Fig. 9.2.
10
Si espone ora l’algoritmo per costruire l’albero dei segmenti di impianto.
Procedura Costruzione_Albero_Segmenti
Input: topologia G e insieme di pins S
For ogni nodo v in G (dal basso all’alto)
If v è un nodo terminale
ms(v)←pl(v)
Else
Lasciamo a e b come successori di v
Calcola_Lunghezza_Rami(| ea |,| eb |)
Creare TRR come segue
Centro(TRRa) ←ms(a)
Raggio(TRRa) ←| ea |
Centro(TRRb) ←ms(b)
Raggio(TRRb) ←| eb |
ms(v) ← TTRa ∩ TRRb
End If
Output: Albero dei segmenti contenente ms(v) per ogni nodo in G e una lunghezza di ramo | ev | per
ogni nodo diverso dalla radice
La procedura di Calcola_Lunghezza_Rami(| ea |,| eb |) dipende dal modello adottato per la
formulazione del problema.
1) Modello lineare di ritardo
Si consideri un nodo v e i suoi successori a e b. Al fine di avere un valore nullo dello clock
skew bisogna esigere che:
t LD ( a) + | ea |= t LD (b) + | eb |
dove il primo e il terzo termine rappresentano il ritardo dal nodo a al nodo finale del sotto albero
considerato. Poniamo κ=d(ms(a),ms(b)). Ci sono due casi possibili:
I)
| t LD ( a) − t LD ( b) |≤ κ allora il costo di impianto è minimizzato | ea |+| eb |=κ cioè otteniamo
κ + t LD (b) − t LD ( a)
,
(4)
2
| eb |= k − | e a |
| ea |=
II)
| t LD ( a) − t LD (b) |> κ allora il costo di impianto è minimo quando uno dei due rami ha
lunghezza nulla.
In questo contesto bisogna distinguere due casi:
i)
t LD ( a) > t LD (b)
allora
(5) | ea |= 0, | eb |= t LD (a ) − t LD (b)
ii)
t LD ( a) < t LD (b)
allora
| ea |= t LD ( b) − t LD ( a), | eb |= 0
11
(6)
2) Modello circuitale
Si considerano due alberi TSa e TSb di segmenti di impianto con minimo costo nel modello
circuitale. Questi avranno C1 e C2 come capacità, calcolate come in (2), e un ritardo pari a t 1 e t 2
rispettivamente, calcolati entrambi con la formula (3) dalla radice al nodo finale del sotto albero.
Dalla definizione del modello di Elmore si ottiene :
t ED (v, a ) = rea [(1 / 2) ce a + C1 ]
Si considera in pl(v) il punto di impianto con minimo costo di impianto. Per avere clock
skew nullo è necessario soddisfare la condizione
1
1
rea ( c ea + C1 ) + t1 = reb ( ceb + C2 ) + t 2
2
2
Si definisce κ=d(ms(a),ms(b)). Si suppone che TSa e TSb possono venire installati con il
costo di impianto κ. In altri termini si ottiene | ea |=÷ e quindi | eb |=κ- ÷ per 0 ÷ κ. In seguito a
questa sostituzione la resistenza del ramo ea è pari a á÷, mentre quella del ramo eb risulta á (ê-÷).
Analogamente il valore delle capacità risulta â÷ e â(ê- ÷) rispettivamente.
Usando queste sostituzioni nella condizione sovrastante si ottiene:
(7)
χ=
1
βκ)
2
α(C1 + C2 + βκ)
t 2 − t 1 + ακ( C2 +
Anche in questo contesto ci sono due casi possibili:
I)
II)
0 ÷
κ allora esiste un possibile punto di impianto che garantisce un clock skew nullo e
abbia il minimo costo di impianto κ dove | ea |=÷ e | eb |=κ- ÷.
÷ <0 o ÷ >κ allora il valore assunto dal costo di impianto κ impone lunghezze negative per
entrambi i rami considerati. In questo caso è richiesta una distanza κ’>κ per bilanciare il
ritardo dei due alberi. Si distinguono due casi:
i)
se ÷ <0 allora significa che t 1 >t2 e si sceglie pl(a) come punto di impianto mentre si
pone | ea |=0 e | eb |=κ’. Per avere clock skew nullo bisogna che
1
t1 = t 2 + ακ ' ( βκ'+C2 )
2
da cui risolvendo per κ’ si ottiene
1
ii)
[(αC 2 ) 2 + 2αβ( t1 − t 2 )] 2 − αC 2
κ' =
αβ
se ÷ >κ risolvendo in maniera analoga a quanto fatto sopra si ottiene
[(αC1 ) 2 + 2αβ(t 2 − t 1 )]
κ' =| ea |=
αβ
1
2
− αC1
12
Si dimostra che un punto di impianto con clock skew nullo si può sempre trovare fra due
alberi con clock skew nullo. Per minimizzare il costo di impianto bisogna quindi creare degli alberi
con distanza minima fra la radice ed i livelli più bassi, con ritardi e capacità simili, in modo da
ridurre il costo extra κ’-κ.
L’algoritmo richiede un tempo costante per ogni segmento di impianto, quindi un tempo
multiplo di questo valore per costruire l’intero albero.
Seconda Fase
Il metodo per determinare l’esatta posizione dei nodi interni esamina l’albero dei segmenti
partendo dalla radice s0 , scendendo fino ai livelli inferiori. Se il nodo v è una radice, allora viene
selezionato un punto di ms(v) che appartiene anche all’insieme pl(v); se si tratta invece di un nodo
interno, allora viene preso un punto in ms(v) che sia a distanza | ev | o minore dai suoi successori e
appartenga a pl(v). Il segmento di impianto è stato costruito in modo da rispettare la condizione
d(ms(v),ms(p)) | ev |, quindi deve esistere una scelta che soddisfi questa condizione. L’algoritmo
crea una regione TRRp quadrata con raggio | ev | e centro uguale a pl(p). Allora pl(v) può essere un
punto della regione ms(v) ∩ TRRp , come illustrato in Fig. 10.
La procedura utilizzata nella seconda fase è quella sottostante.
Procedura Trovare_Posizionamento_Esatto
Input: Albero dei segmenti TS contenente ms(v) e | ev | per ogni nodo v in G
For ogni nodo interno di v in G
If v è una radice
Scegliere un pl(v) ∈ ms(v)
Else
Sia p parente di v
Costruiamo TRRp come segue:
Centro(TRRb) ←pl(p)
Raggio(TRRb) ←| ev |
Scegliamo pl(v) ∈ ms(v) ∩ TRRp
End If
Uscita: ZST T(S)
Anche questo algoritmo ha un tempo di esecuzione lineare e quindi complessivamente il
DME avrà un tempo di esecuzione lineare.
Il DME si dimostra ottimo nel caso di impiego di un modello lineare di ritardo
minimizzando il rinvio dalla sorgente al pin, mentre nel caso di utilizzo del modello circuitale si
dimostra sub ottimo.
13
Applicazione pratica dell’algoritmo
Si applica l’algoritmo risolutivo all’insieme di pins S=(s1 ,s2 ,s3 ,s4 ) rappresentato in Fig. 11.
I punti sono gli stessi considerati nella Fig. 1 e usati come applicazione degli algoritmi
dell’albero minimo e di quello di Steiner, mentre i segmenti sono un esempio di spazio di
tracciamento per ogni pins. Si ipotizza che gli spazi di tracciamento vengano a coincidere coi i
punti si.
La Fig. 12 rappresenta la topologia G necessaria al fine di costruire i collegamenti. I nodi n1
e n2 sono due nodi interni al sistema e presenti al fine di minimizzare la lunghezza dell’albero. Non
è stata rispettata la nomenclatura dei rami e del ritardo rispetto alla trattazione teorica del problema
al fine di semplificare la notazione.
Si applicherà prima l’algoritmo con il modello lineare di ritardo e poi con il modello
circuitale.
1) Modello lineare di ritardo
Si esegue innanzitutto la prima fase dell’algoritmo sul problema, partendo dal livello più
basso e cioè dalle foglie dell’albero rappresento nella topologia. Il segmento di impianto viene a
coincidere con il valore del punto di collocazione dei pin, e quindi non ci sono conti da fare.
Si considerano gli alberi con radici n1 e n2 rispettivamente. In questo caso t(s1 )=t(s2 )= t(s3 )=
t(s4 )=0 perché non ci sono sotto alberi.
Si esamina prima il sotto albero con nodo n1 come radice. In questo caso risulta che
κ= d(ms(s1 ),ms(s2 ))=2. Siccome i ritardi sono nulli si cade nella casistica 1)I) e, usando la formula
(4) si ottiene che | 3 |=| 4 |=1 cm.
Costruendo le due regioni TRR per s1 e s2 , dalla loro intersezione si ottiene ms(n1 )= n1 in
quanto si sovrappongono nel punto (0,2).
Si procede in modo analogo anche per l’altro sotto albero. In questo caso risulta che
κ= d(ms(s3 ),ms(s4 ))=4 cm. Anche in questa circostanza si usa la formula (4) ottenendo come
risultato che | 5 |=| 6 |=2 cm. Costruendo le regioni TRR, si ottiene come intersezione ms(n2 )= n2
con coordinate (4,2).
14
Il risultato ottenuto dall’analisi di questo livello è presentato in Fig. 13.
Si esamini ora l’albero intero partendo dalla radice s0 . In questo caso i ritardi non sono
nulli: infatti t(n1 )=1 e t(n2 )=2, mentre κ= d(ms(n1 ),ms(n2 ))=4 cm. Anche in questo caso si ricorre
alla formula in 1)I) ottenendo | 1 |=2,5 cm e | 2 |=1,5 cm.
Costruendo le due regioni TRR relative a n1 e n2 , si ottiene dalla loro intersezione:
ms(s0 )=s0 , punto con coordinate(2,5;2). Il risultato è rappresentato in Fig. 14:
Quanto si ottiene con la prima fase dell’algoritmo è anche il risultato finale, perché tutti i
segmenti di impianto non sono un’insieme, ma sono dei punti e quindi non è possibile introdurre
ulteriori miglioramenti al risultato ottenuto. Applicando l’algoritmo si acquisisce sempre
l’intersezione di una TRR con un punto e quindi come risultato sempre il punto. La linea del clock è
quella riportata in Fig. 15.
La lunghezza dalla sorgente ad uno qualsiasi, degli elementi di S è sempre pari a 3,5 cm,
mentre la lunghezza complessiva dell’albero è pari a 10 cm. Il ritardo per raggiungere ogni
elemento della scheda è pari a 7,35 nano secondi.
15
2) Modello circuitale
In questo contesto si considerano anche le capacità di carica dei pins, che si pongono a 30,
40, 50 e 60 fF per i nodi s1 , s2 , s3 e s4 rispettivamente chiamandole C1 , C2 , C3 e C4 . Per semplicità di
calcolo si suppone che sui nodi n1 e n2 siano nulle.
Si inizia con la prima fase dell’algoritmo risolutivo.
Partendo dal livello più basso si risolve immediatamente che ms(si)=si senza fare ulteriori
calcoli, quindi si risale al livello superiore considerando i nodi n1 e n2 . Anche in questo caso il
ritardo ti sui pins risulta essere nullo.
Si prende in considerazione il sotto albero n1 . Si acquisisce κ= d(ms(s1 ),ms(s2 ))=2 cm.
Si calcola ora ÷ tramite la formula (7), conseguendo: ÷=1,0025 cm. Siccome 0 ÷ κ si
utilizza la formula in 2)I), attraverso cui si ottiene | 3 |=1,0025 cm e | 4 |=0,9975 cm. Dopo aver
costruito graficamente le due regioni TRR relative ai due sotto alberi, dalla loro intersezione si
riporta ms(n1 )= n1 , punto univoco con coordinate (0;2,0025).
Si considera ora il sotto albero n2. In modo analogo risulta κ= d(ms(s3 ),ms(s4 ))=4 cm.
Inoltre ÷=2,0025 cm che soddisfa 0 ÷ κ e quindi | 5 |=2,0025 cm mentre | 6 |=1,9975 cm.
Disegnando le due regioni TRR, dalla loro intersezione si riporta che ms(n2 )= n2 con coordinate
(4;1,9975).
L’analisi di questo livello dà il risultato rappresentato in Fig. 16.
Si espone ora il livello superiore, cioè l’albero con radice s0 . Tramite la formula (2)
introdotta nella sezione del modello di Elmore, si ottiene che le capacità sui nodi n1 e n2 valgono
rispettivamente 4,07 e 8,09 pF. In questo caso il ritardo dei sotto alberi è diverso da zero ed è pari a
0,3105 e 1,233 nano secondi per i rami del sotto albero n1 e n2 rispettivamente.
Si considera: κ= d(ms(n1 ),ms(n2 ))= 4,123 cm. Anche in questo caso si rientra nella casistica
2)I) e quindi si ottiene che | 1 |=2,6184 e | 2 |=1,5047.
16
Disegnando le due regioni TRR si ottiene ms(s0 ) come rappresentato in Fig. 17.
In questo caso si vede che ms(s0 ) risulta essere un segmento di impianto, non più un punto
univoco.
Si passa ora alla seconda fase dell’algoritmo. Anche in questo caso la posizione dei punti
risulta fissata già dalla prima fase dell’algoritmo. L’unica possibilità di scelta risulta essere quella
del punto in cui collocare la sorgente, che viene risolto collegando con una linea il percorso fra i
due nodi interni. La rete del clock è quella rappresentata dal grafico in Fig. 18.
Dalla sorgente ad uno qualsiasi dei pins il ritardo è 5,564 nano secondi, inoltre si tiene conto
anche di altri elementi come le capacità di carico dei pins. In questo caso la lunghezza complessiva
è 10,123 cm.
Conclusioni
Dalle analisi effettuate si nota che affrontare il tracciamento dell’albero di clock come un
problema di albero minimo o come un problema di Steiner permette di ridurre complessivamente la
lunghezza del circuito, ma non tiene conto dei problemi derivanti dal clock skew. L’algoritmo DME
presentato tiene conto di questo vincolo aggiuntivo ed inoltre consente di determinare in maniera
grafica eventuali nodi da aggiungere per ottenere il minimo.
Bibliografia
T. H. Chau, Y. C. Hsu, Y. M. Ho, K. D. Boese “Zero Skew Clock Routing with Minimum
Wirelength”, IEEE Transactions on circuits and sistems – Analog and digital signal processing,
Vol. 39, N° 11, November 1992
R. S. Tsay “An Exact Zero-Skew Clock Routing Algorithm”, IEEE Transactions on computer –
Aided design of integrated circuits and system. Vol. 12, N° 12, February 1993
K. G. Murty “Network Programming”
P. Serafini “Ottimizzazione”
17