2
Tutti questi problemi hanno portato i progettisti a considerare la
potenza come parametro di progetto, ed ha portato a sviluppare nuove
tecniche e nuove logiche in alternativa a quelle presenti, indirizzate tutte
alla bassa potenza.
Questo lavoro ha proprio il suddetto scopo: studiare logiche alternative
alla CMOS, che hanno la caratteristica di dissipare una potenza inferiore.
Quindi dopo un iniziale studio sulle cause della dissipazione di potenza
(CAP.1), si studieranno le modalità per ridurre questa dissipazione
(CAP.2); successivamente si concentrerà l’attenzione su una di queste
modalità, e precisamente su l’utilizzo di logiche Pass-Transistor (CAP.3),
verranno prese in considerazione diverse logiche Pass-Transistor (CPL,
DPL, SRPL), e verranno effettuate delle simulazioni con HSPICE su
alcune porte logiche (AND,XOR, MUX, FULL-ADDER) per valutare
ritardo e potenza dissipata. Nell’ultimo capitolo (CAP.4) si sfrutteranno
questi risultati per il progetto di un moltiplicatore 16x16-bits, realizzato in
logica Pass-Transistor. Si studieranno, prima, diverse architetture possibili
e si passerà poi alla realizzazione pratica del moltiplicatore,
progettandone anche il layout, effettuato in maniera Full-Custom.
3
CAPITOLO 1
Generalità sulla bassa potenza
1.1 Cause della dissipazione di potenza
Nei circuiti digitali CMOS, si hanno tre principali sorgenti di
dissipazione di potenza:
•dissipazione statica
•dissipazione dinamica
•dissipazione di cortocircuito
analizziamoli singolarmente prendendo in considerazione un inverter
CMOS.
Ip
I
l
In
IN OUT
C
V
dd
Fig. 1.1 Inverter CMOS
4
1.1.1 Dissipazione statica
La dissipazione statica si compone di due parti: una parte costituita dalle
correnti di dispersione (P
s1
); l’altra dovuta alle correnti di perdita a causa
della variazione della tensione d’ingresso (P
s2
), per cui la potenza statica
totale sarà [rif. 1]:
P
s
=P
s1
+ P
s2
le correnti di dispersioni sono dovute alle correnti di leakage delle
giunzioni MOS; infatti una struttura MOS è costituita da tanti diodi
parassiti, che non sono in conduzione ma che presentano una propria
corrente inversa di saturazione I
S
che provoca l’incremento della
dissipazione statica. La potenza di dissipazione dovuta alle correnti di
dispersioni è data da:
P
s1
= I
leak
V
DD
questa componente aumenta all’aumentare della temperatura, perchè la
corrente inversa I
S
varia con la temperatura.
Un tipico valore di corrente di leakage è pari a 1 fA per ogni
componente; questo valore è molto piccolo e non ha nessuno effetto sulla
potenza statica, infatti se si hanno 1 milione di componenti il contributo
totale è di circa 0.01µW; quindi questa prima componente è trascurabile.
5
Consideriamo la seconda componente: quando l’ingresso V
in
varia da 0
a V
T
il transistore nMOS teoricamente non dovrebbe condurre in realtà c’è
una corrente di sottosoglia che provoca dissipazione statica:
I
DS
= I
0
W
W
eff
o
10exp
()VV
s
in t
−
dove I
0
è la corrente di drain, W
0
la largezza di gate, s è lo swing di
tensione di gate necessario per ridurre la corrente di drain di una decade;
la corrispondente dissipazione statica sarà:
P
s2
= I
DSmedia
V
DD
per esempio se V
in
= 0, V
T
= 0.15V, W
eff
=10µm, ed s= 75µW/dec si ha una
corrente di 1nA; per cui per 1 milione di componenti si avrà una corrente
di 1mA, con notevole dissipazione.
1.1.2 Dissipazione dinamica
Questa dissipazione è dovuta alla corrente necessaria per caricare e
scaricare la capacità di carico C
L
di figura 1.1 [rif. 1].
Supponiamo di avere uno step in ingresso in modo tale da non avere il
pMOS e l’nMOS entrambi in conduzione; la potenza P
d
richiesta per
6
caricare e scaricare la capacità C
L
, avendo una frequenza d’ingresso
f=1/T, è data da:
P
d
= 1/T
0
T
i
o
(t)v
o
(t)dt (1.1)
La corrente d’uscita, durante la fase di carica sarà:
i
o
= i
p
= C
L
dv
dt
(1.2)
mentre durante la fase di scarica sarà:
i
o
= i
n
=-C
L
dv
dt
(1.3)
Per cui l’equazione (1.1) diventa:
P
d
= 1/T C v dv C v dv
Lo o Lo o
V
V
DD
DD
−
0
0
(1.4)
Quindi la potenza di dissipazione dinamica è:
P
d
=
CV
T
CV f
L
DD
L
DD
2
2
=
Questa equazione mostra che la potenza dissipata è proporzionale alla
frequenza di operazione e al quadrato della tensione di alimentazione
(V
DD
). Ma questa espressione è valida solamente per un inverter; per
circuiti più complessi occorre fare un discorso diverso, infatti in questo
caso occorre considerare due componenti: una dovuta alla carica e scarica
delle capacità ai nodi interni (P
int-din
), e l’altra dovuta alla capacità di
carico C
L
.
7
Inoltre l’espressione della potenza non è data semplicemente da
C
L
V
2
DD
f, infatti bisogna considerare quante volte le capacità si caricano e
scaricano, cioè quante transizioni 0→V
DD
, V
DD
→0 ci sono nel periodo.
Per questo entra in gioco il fattore di attività α, cioè la probabilità che
ci sia una transizione 0→V
DD
nel periodo T=1/f.
La potenza dissipata media di una porta complessa, dovuta alla
capacità di carico, assume quindi l’espressione:
P
d
=αC
L
V
2
DD
f
mentre la potenza dissipata dovuta alle capacità interne ha l’espressione:
P
int-din
= α
i
i
n
iiDD
CVV f
=
1
dove n è il numero di nodi interni, α
i
è il fattore di attività per ogni
nodo, C
i
è la capacità parassita di ogni nodo interno e V
i
è la tensione
interna al nodo i che puo essere diversa da V
DD
.
1.1.3 Dissipazione di cortocircuito
Questo tipo di dissipazione entra in gioco quando non c’è una capacità
di carico e le capacità parassite sono trascurabili, in questo caso al variare
dell’ingresso, c’è un attimo in cui entrambi i tipi di transistors sono in
8
conduzione, per cui si verifica un cortocircuito tra l’alimentazione e la
massa [rif. 2].
L’espressione della potenza di cortocircuito è data da:
P
sc
= I
sc_media
V
DD
calcoliamo il valore di I
sc
utilizzando il modello di figura 1.2:
t
r
t
f
t
p
Forma d’onda in ingresso
V
dd
VV
dd tn
−
V
tn
t
1
t
2
t
3
I
media
I
max
I
cc
Fig. 1.2 Forme d’onda per il calcolo della potenza di cortocircuito
assumendo uguali tempi di salita e di discesa per il segnale d’ingresso e
considerando β
n
= β
p
= β, e V
tn
= -V
tp
= V
T
si ha:
I
sc_media
= 2 /T itdt itdt
t
t
t
t
() ()+
2
3
1
2
per la totale simmetria dell’inverter si ha:
9
I
sc_media
= 4/T itdt
t
t
()
1
2
tenendo conto che il transistore N si trova in saturazione si ha:
I
sc_media
= 4/T
β
2
2
1
2
(() )Vt V dt
in T
t
t
−
dove V
in
(t) =
V
t
t
DD
d
t
1
=V
T
/V
DD
t
d
, t
2
=t
d
/2
risolvendo l’integrale si ottiene:
P
sc
= β/12(V
DD
-2V
T
)
3
t
d
f
come si vede la potenza è proporzionale alla frequenza, gli altri
parametri per controllare P
sc
sono β e t
d
. Quanto detto finora riguarda
l’inverter non caricato, ma un discorso simile può essere fatto anche se
introduciamo un carico; in questo caso la potenza di cortocircuito viene
ridotta all’aumentare del carico [rif. 2]; questa potenza può essere ridotta
anche riuscendo ad ottenere tempi di salita e di discesa uguali sia in
ingresso che in uscita, infatti il contributo della potenza di cortocircuito
rispetto alla potenza dinamica diventa trascurabile quanto più piccoli sono
questi tempi. (Vedi figura seguente).
10
dissipazione totale
t
dr
=t
df
=20nsec
10
2
10nsec
5nsec
potenza diss.
(µW) dissipazione dinamica
10 1nsec (t
dr
=t
df
=0 nsec)
1
10 10
2
10
3
C
L
(fF)
Fig. 1.2 Influenza della dissipazione di cortocircuito sulla dissipazione totale
1.2 Dissipazione totale
In conclusione, la potenza di dissipazione totale è data da 3
componenti:
P
diss_tot
= α(CL•V•V
DD
f) + I
sc
•V
DD
+ I
leak
•V
DD
ovviamente questo valore è influenzato dalle condizioni operative; in
particolare, la potenza statica aumenta all’aumentare della temperatura e
dalla tensione di alimentazione, così come la potenza di cortocircuito; la
potenza dinamica non è influenzata dalla temperatura ma dipende
fortemente da V
DD.
.
11
Delle 3 componenti, il contributo maggiore è dato dalla potenza
dinamica ( circa il 90%), e su questa ci si può basare per una stima della
potenza dissipata, così come verrà fatto in seguito.
1.3 Dissipazione di potenza nelle varie parti di un chip
E’ importante individuare, tra le diverse componenti di un chip, quali
sono quelle che dissipano maggiore potenza; in modo tale da poter agire
con più efficacia nei punti più a rischio. Infatti in base alla dissipazione
nei diversi punti del circuito è possibile agire a più livelli (architetturale,
gate, transistors) per migliorare quella parte che dissipa di più.
Per prima cosa dividiamo il chip in 5 grandi blocchi: circuiti logici,
memoria, interconnessioni, distribuzione del clock, e pilotaggio della
parte finale del chip; e, adesso, analizziamo la dissipazione nelle varie
parti [rif. 3].
Circuiti logici
Per valutare la potenza dissipata, basta trovare le capacità equivalenti
dei singoli blocchi e applicare la formula:
P
tot
= C
equiv
f V
DD
2
se si vuole trovare la capacità equivalente di un circuito logico,
dobbiamo analizzare i gates come facenti parte di diverse celle
12
comprendente una logica combinatoria e intervallate da latch; per cui la
capacità totale sarà data da 2 componenti:
C
tot
= C
log
+ C
latc
la C
log
, a sua volta, si compone di tre parti:
C
log
= C
1
+ C
2
+ C
3
la prima risulta la capacità della logica di gate , escluso il pilotaggio dei
nodi con il clock, la seconda è la capacità equivalente al nodo d’uscita, la
terza è la capacità sui nodi pilotati dal clock.
Memoria
Una tipica memoria è divisa in 4 parti: la cella di memoria, la riga di
decodifica, la colonna selezionante, e i circuiti di lettura/scritura. La
prima parte di potenza è quella dissipata dalle celle di memoria su una
riga, durante una carica o una valutazione; la seconda parte riguarda il
consumo di potenza per la riga della parte di decodifica, che comprende la
potenza dei buffer d’indirizzo, della riga di decodifica e di tutti i gates
degli nMOS connessi alla riga di decodifica; la terza parte è la potenza
dissipata dalla riga di pilotaggio, cioè la potenza consumata su ogni carico
di una riga orizzontale; l’ultima parte è la potenza dissipata dalla colonna
cioè: potenza del buffer d’indirizzo, potenza dei gates degli nMOS della
colonna selezionata, potenza delle interconnessioni.
13
Interconnessioni
Definiamo due categorie di interconnessioni: connessioni locali ed
intermedie e bus globali. L’interconnessione locale può essere definita
come connessione all’interno di un circuito logico; l’interconnessione
intermedia è utilizzata per connettere gates o sottosistemi; e infine il bus
globale comprende dati, controllo e indirizzi di bus.
Per quanto riguarda le interconnessioni locali ed intermedie, la capacità
equivalente dipende essenzialmente dalla capacità per unità di lunghezza
e quindi la potenza dissipata dipende dalla lunghezza media di queste
connessioni. Per il bus globale dobbiamo, invece, tenere conto di 3
componenti: la potenza della capacità del filo di bus, la potenza dei
carichi del bus e la potenza consumata nei drivers del bus. La prima parte
dipende dalla lunghezza dei bus e dal numero di bus utilizzati; la seconda
parte dipende dai carichi che sono: ALU, porte di accesso alla memoria,
blocchi di registri, ingressi dei drivers dei bus, etc....
Distribuzione del clock
Sistemi differenti possono avere differenti distribuzioni di clock;
ovviamente in ogni caso la potenza dipenderà dalla lunghezza dei fili,
dalle dimensioni della parte logica e dal blocco di memoria, e quindi dal
numero di drivers e dal numero di transistors clockati.
14
Pilotaggio della parte finale
Questa potenza è dissipata in due parti: la prima è dovuta alle capacità
di off-chip, le capacità dei fili, e le capacità dei pad; l’altra è la potenza
dissipata dal driver stesso, cioè un inverter pilotato a catena. La prima
parte non è dovuta alla tecnologia del silicio, ma alla tecnologia di
package, infatti in base alla tecnologia usata diversa è la capacità C
off-chip
.
1.3.1 Conclusioni
Tra le diverse componenti analizzati, la maggiore potenza viene
dissipata per il pilotaggio della parte finale (off-chip, PAD); poi per la
distribuzione del clock, interconnessioni; mentre la minore potenza viene
dissipata nei circuiti logici e nella memoria, secondo quanto espresso in
figura:
memoria
circ.logici
connessioni
clock
off.chip
0 1020304050
Fig. 1.3 Distribuzione della potenza
15
La successiva figura mostra, invece, la distribuzione della potenza in
funzione delle dimensioni:
0,0 0,5 1,0 1,5 2,0
0
5
10
15
20
25
30
35
40
45
50
55
60
65
off chip
Clock
Connessioni
Cir. logici
Memoria
% di potenza
Dimensioni caratteristiche
Fig. 1.4