Algoritmi di channel routing per standard cells

annuncio pubblicitario
Elettronica dei Sistemi Digitali –
Algoritmi di channel routing per
standard cells; verifica progettuale
Valentino Liberali
Dipartimento di Tecnologie dell’Informazione
Università di Milano, 26013 Crema
e-mail: [email protected]
http://www.dti.unimi.it/˜liberali
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 1
Global routing
Il global router ha definito quali interconnessioni dovranno
essere tracciate in ogni canale.
A
B
VDD
111111111111111111111
0000
0000
1111
00000000000000000
H3
0000
1111
0000D
1111
00000000000000000
11111111111111111
C 1111
000011111111111111111
0000
1111
000000000000000000000
1111
0000
1111
L 1111
0000 K E L B
1111
0000
0000
1111
0000
1111
000011111111111111111
1111
0000
1111
00000000000000000
A’
0000
1111
0000
D’ 1111
00000000000000000
H1
E’ 11111111111111111
0000
1111
0000
000000000000000001111
000011111111111111111
1111
0000
1111
00000000000000000
11111111111111111
0000
1111
0000F
1111
A
I
H
M
D 1111
E 1111
0000K
0000
0000
1111
0000
1111
0000
1111
0000
1111
00000000000000000
11111111111111111
C’
F’ 1111
000011111111111111111
1111
0000
00000000000000000
H2
H’
0000
1111
0000
1111
I’
V5
00000000000000000
11111111111111111
0000
1111
0000
000000000000000001111
000011111111111111111
1111
0000
1111
0000 M G J
1111
0000
C
F 1111
0000
1111
0000H
1111
00000000000000000
11111111111111111
G 1111
0000
0000
1111
I’ 11111111111111111
V6
00000000000000000
0000
1111
0000
1111
J’
00000000000000000
H4
G’
000011111111111111111
1111
0000
1111
00000000000000000
11111111111111111
0000
1111
0000
1111
I
GND
J
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 2
1
Channel routing (1)
Modello “classico” per un algoritmo di channel routing:
le interconnessioni sono lungo due direzioni ortogonali;
il passo di griglia è uniforme;
ci sono due livelli di interconnessione;
un livello di interconnessione è usato per i segmenti
orizzontali, l’altro per quelli verticali;
ogni interconnessione è realizzata con un solo
segmento orizzontale, più tanti segmenti verticali
quanti sono i terminali da connettere in direzione
verticale.
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 3
Channel routing (2)
0
x1
x2
x3
x4
C
B
A
D
A
B
A
C
x5
x6
x7
A
B
A
x8
x9 L
B
D
A
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 4
2
Vertical constraint graph (1/2)
Il posizionamento dei segmenti orizzontali viene
determinato con un algoritmo basato sul vertical constraint
graph:
è un grafo orientato (dall’alto verso il basso)
ogni nodo è un vertice del grafo
esiste un arco A → B se il nodo A si trova allineato
sopra al nodo B (cioè se una interconnessione
verticale lungo il canale provoca un cortocircuito tra A
e B)
se esiste l’arco A → B, allora il tratto orizzontale
dell’interconnessione A deve essere posizionato più in
alto del tratto orizzontale dell’interconnessione B
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 5
Vertical constraint graph (1/2)
se nel VCG esiste l’arco A → B, allora il tratto
orizzontale dell’interconnessione A deve essere
posizionato più in alto del tratto orizzontale
dell’interconnessione B
se è possibile un ordinamento dei nodi che rispetti tutti
i vincoli del grafo, questo è l’ordine (dall’alto verso il
basso) delle interconnessioni orizzontali)
altrimenti bisogna “spezzare” qualche
interconnessione
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 6
3
Channel routing (3)
0 x1
C
x2
x3
x4
B
A
D
x5
A
A
B
A
C
B
x6
x7
A
x8
x9 L
B
D
A
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 7
Bibliografia sul routing
Per un approfondimento sugli algoritmi di routing:
S.H. Gerez, Algorithms for VLSI Design Automation.
Wiley, Chichester, UK, 1998 – Capitolo 9.
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 8
4
Progettazione di circuiti elettronici
I circuiti “semplici” erano progettati risolvendo manualmente
le equazioni e realizzando prototipi su scheda con
componenti discreti (“bread-board” )
Questo approccio è diventato inadeguato, perché
il numero di componenti elettronici è elevato
le prestazioni dipendono dalle dimensioni di ciascun
componente
i componenti hanno un comportamento non ideale di
cui bisogna tenere conto
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 9
Verifica progettuale (1/2)
Gli elevati costi dei sistemi elettronici richiedono un buon
livello di confidenza sulla bontà del progetto. Nelle varie fasi
del progetto, prima della prototipazione, sono necessari
diversi passi di verifica.
PRIMA del disegno del layout (domini comportamentale e
strutturale):
verifica (simulazione) comportamentale, prima della
sintesi
verifica (simulazione) logica o circuitale, dopo la sintesi
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 10
5
Verifica progettuale (2/2)
DOPO il disegno del layout (domini fisico e strutturale):
verifica di correttezza delle geometrie (DRC = Design
Rule Chech), dopo il disegno del layout
verifica di correttezza dei collegamenti elettrici (ERC =
Electrical Rule Chech), dopo il disegno del layout
verifica di congruenza tra schema e layout (LVS =
Layout Vs. Schematic)
estrazione dei parassiti (“backannotation”) e
simulazione circuitale tenendo conto degli effetti
parassiti
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 11
Simulazione (1/6)
Si effettua una simulazione al calcolatore
per verificare il progetto prima di realizzarlo
per ottimizzare i parametri di progetto
per stimare gli effetti dovuti alle variazioni dei parametri
I primi programmi per la simulazione dei circuiti elettronici
risalgono agli anni 1960-1970:
SPICE (University of California at Berkeley)
ASTAP (IBM)
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 12
6
Simulazione (2/6)
L’aumento della complessità dei sistemi integrati ha
richiesto una modellizzazione a differenti livelli di
astrazione.
Simulazione del dispositivo: descrizione fisica del
singolo dispositivo, dimensioni geometriche e
parametri fisici dei materiali, grandezze fisiche in 3D
Simulazione circuitale: descrizione strutturale a livello
transistor, comportamento elettrico dei dispositivi,
tensione e corrente
Simulazione a macromodelli: “circuito equivalente”
semplificato, comportamento elettrico “ideale”,
tensione e corrente
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 13
Simulazione (3/6)
Simulazione “switch-level”: è un esempio di
simulazione a macromodelli, in cui i transistori
vengono modellizzati come interruttori ideali con
resistenza serie
Simulazione logica: rete di porte logiche (blocchi
unidirezionali), segnali logici (con o senza ritardo)
Simulazione RTL (register-transfer-level): rete digitale
sincrona, in cui si analizzano le transizioni di stato (la
logica combinatoria determina lo stato successivo in
base allo stato attuale e agli ingressi)
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 14
7
Simulazione (4/6)
Simulazione comportamentale: schema a blocchi,
descrizione (più o meno dettagliata) del
comportamento di ciascun blocco, “segnali” di vario
tipo (digitali o analogici)
Simulazione funzionale: schema a blocchi, descrizione
ad alto livello della funzione di ciascun blocco (le
primitive che descrivono i blocchi non hanno
necessariamente legami con il corrispondente
hardware)
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 15
Simulazione (5/6)
I sistemi digitali sono non lineari e tempo-varianti → la
simulazione deve essere effettuata nel dominio del tempo.
Le grandezze analogiche (tensione e corrente): richiedono
il calcolo di derivate e integrali.
Derivate: sono approssimate con il rapporto
incrementale
Integrali: sono calcolati con un’approssimazione a
gradino o a trapezio
I segnali digitali richiedono calcoli più semplici.
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 16
8
Simulazione (6/6)
Modellizzazione del tempo: per l’analisi numerica dei
sistemi, il tempo (grandezza continua) deve essere
suddiviso in intervalli discreti (“time step” ).
Simulazione analogica a time step costante
Simulazione analogica a time step variabile (con
calcolo dinamico del time step)
Simulazione digitale sincrona con clock (solo per
sistemi digitali temporizzati in cui si possono trascurare
i ritardi)
Simulazione digitale ad eventi (per circuiti asincroni o
pseudo-sincroni)
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 17
Simulazione analogica in transitorio (1)
Rapporto incrementale:
Forward Euler:
v(tk+1 ) − v(tk )
d
≈ v(tk )
tk+1 − tk
dt
Backward Euler:
v(tk+1 ) − v(tk )
d
≈ v(tk+1 )
tk+1 − tk
dt
Trapezoidale:
v(tk+1 ) − v(tk ) 1
≈
tk+1 − tk
2
d
d
v(tk+1 ) + v(tk )
dt
dt
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 18
9
Simulazione analogica in transitorio (2)
Esempio: circuito RC descritto da:
1
d
v(t) = − v(t)
dt
τ
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 19
Simulazione analogica in transitorio (2)
Approssimazione Forward Euler, con time step costante
∆t = tk+1 − tk :
1
1
(v(tk+1 ) − v(tk )) = − v(tk )
∆t
τ
e risolvendo rispetto a v(tk+1 ):
∆t
v(tk+1 ) = v(tk ) 1 −
τ
La soluzione oscilla per ∆t > τ
e diventa instabile per ∆t > 2τ !!!
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 20
10
Simulazione analogica in transitorio (3)
Approssimazione Backward Euler, con time step costante
∆t = tk+1 − tk :
1
1
(v(tk+1 ) − v(tk )) = − v(tk+1 )
∆t
τ
e risolvendo rispetto a v(tk+1 ):
v(tk+1 ) =
v(tk )
1 + ∆tτ
La soluzione è sempre stabile.
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 21
Simulazione analogica in transitorio (4)
Approssimazione trapezoidale:
d
2
d
v(tk+1 ) = (v(tk+1 ) − v(tk )) − v(tk )
dt
∆t
dt
da cui:
1
2
1
− v(tk+1 = (v(tk+1 ) − v(tk )) + v(tk )
τ
∆t
τ
e risolvendo rispetto a v(tk+1 ):
v(tk+1 ) = v(tk )
La soluzione oscilla per ∆t > 2τ
e tende a diventare instabile per
1 − 2∆tτ
1 + 2∆tτ
∆t
τ
→ ∞ !!!
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 22
11
Sistemi “stiff” (1/2)
Un sistema dinamico si definisce “stiff” (= rigido) quando è
descritto da equazioni differenziali in cui:
le costanti di tempo sono molto diverse tra loro
(parecchi ordini di grandezza);
le costanti di tempo sono dovute a parametri tra loro
non correlati.
In un sistema digitale, si alternano transitori brevi (le
commutazioni delle porte logiche) e intervalli relativamente
lunghi in cui le grandezze elettriche rimangono pressoché
costanti
→ tutti i sistemi digitali sono “stiff”.
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 23
Sistemi “stiff” (1/2)
Non è possibile risolvere numericamente un sistema stiff in
maniera accurata:
se il time step ∆t è grande, i transitori dovuti alle
costanti di tempo brevi vengono persi con
l’approssimazione Backward Euler (e la soluzione
oscilla con gli altri due metodi);
se il time step ∆t è piccolo, i transitori dovuti alle
costanti di tempo brevi vengono risolti correttamente,
ma i transitori dovuti alle costanti di tempo lente
richiedono tempi di simulazione proibitivi.
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 24
12
Modello “switch-level” del MOS
MOS
=
r
Dalla conduttanza
del MOS in triodo
= β (vGS −Vth ) si calcola la resistenza
g = ∂∂viD DS
vDS =0
equivalente:
r=
1
1
=
g β (vGS −Vth )
con
β=
µεox W
·
tox L
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 25
Simulazione “switch-level”
Nelle porte logiche si sostituisce ogni transistore MOS con
il suo modello “switch-level” e si considerano le capacità di
carico CL .
Il circuito digitale si riduce ad un circuito RC; la rete di
resistenze dipende dai segnali logici in ingresso
→ si può calcolare l’andamento (esponenziale) delle
tensioni nel tempo e i tempi di ritardo (attraversamento a
VDD /2), che dipendono dai segnali logici di ingresso.
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 26
13
Modello comportamentale (1)
Un sistema digitale:
opera su valori discreti
è un insieme di operazioni su valori
può essere descritto come un cammino di segnali
(= processo)
Un processo è definito tramite un insieme di istruzioni
(come un programma in C o in Pascal).
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 27
Modello comportamentale (2)
Descrizione di tipo “black-box”
Descrizione limitata alle relazioni tra ingresso e uscita
Nessun riferimento alla tecnologia utilizzata per la
realizzazione
Modello puramente matematico delle non idealità
(come i ritardi)
Esempio: y = a + b AFTER 2 ns;
Il ritardo è specificato dall’istruzione “AFTER”
La simulazione comportamentale considera il
ritardo, ma non c’è nessuna informazione relativa
alla causa che lo ha generato.
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 28
14
Modello comportamentale (3)
Un sistema suddiviso in sottosistemi è descritto mediante
un insieme di processi.
Poiché tutti i sottosistemi sono contemporaneamente attivi,
il modello deve prevedere l’esecuzione contemporanea dei
programmi (“processi concorrenti”).
La comunicazione tra processi è assicurata dai segnali
(percorsi unidirezionali dei dati).
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 29
Processo
È attivato da un evento (tempo oppure cambiamento di
valore di un segnale d’ingresso a cui il processo è
sensibile).
I segnali che attivano un processo sono contenuti nella
“sensitivity list” del processo.
È descritto con un insieme di istruzioni.
Le istruzioni vengono eseguite sequenzialmente.
Al termine il processo viene sospeso, cioè messo in
stato di attesa (“wait”) dell’evento successivo.
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 30
15
Bibliografia sulla simulazione circuitale
Per un approfondimento sulla simulazione circuitale nel
dominio del tempo:
K.S. Kundert, The Designer’s Guide to SPICE &
SPECTRE. Kluwer Academic Publishers, Boston, MA,
US, 1995 – Capitolo 4.
Per un approfondimento sulla simulazione digitale:
S.H. Gerez, Algorithms for VLSI Design Automation.
Wiley, Chichester, UK, 1998 – Capitolo 10.
Elettronica dei Sistemi Digitali – Algoritmi di channel routing per standard cells; verifica progettuale – p. 31
16
Scarica