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