Università degli Studi di Pavia
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Elettronica e delle Telecomunicazioni
Progetto di un Carry lookahead adder con
approccio misto Domino/Transmission-Gate
Relatrice: Prof.ssa Carla VacchiRelatore:Dott. Marco Castellano
Elaborato di laureadi Stefano Zucca
Anno Accademico 2005/06
ARGOMENTI TRATTATI
• Caratteristiche di alcune architetture di sommatori: “Ripple carry adder” e “Carry lookahead adder”
• Studio della logica dinamica Domino CMOS e problemi relativi alla sua implementazione
• Progettazione e dimensionamento di un Carry lookahead adder in logica Domino e Transmission-Gate
• Progettazione e dimensionamento di un Ripple carry adder in logica fully CMOS
• Analisi e confronto delle prestazioni dei circuiti progettati
RIPPLE CARRY ADDER
• Elemento circuitale che effettua la somma di due parole A e B formate ognuna da N bit
• Cascata di blocchi Full Adder
• Struttura modulare
• Per eseguire la somma di parole con N bit sono necessari N Tcout
• Tr ≈ 4Tcout
• PAROLE LUNGHE = TEMPI LUNGHI!
SOLUZIONE!
Utilizzo una diversa architettura di sommatore
Calcolo i riporti a partire dal riporto in ingresso e dai bit che costituiscono le parole da sommare
Effettuo la somma dei bit contemporaneamente
Il tipo di sommatore che mi permette di fare questo è il
Carry lookahead adder
CARRY LOOKAHEAD ADDERSommatore che utilizza la tecnica dell’accelerazione
del riporto
GenerateGi = Ai * Bi
PropagatePi = Ai Bi
RiportiCouti = Cini+1 = Gi + Pi*Cini
Cout0 = G0 + P0 · Cin0Cout1 = G1 + P1*(G0 + P0*Cin0)
Cout2 = G2 + P2*(G1 + P1*(G0 +P0*Cin0))Cout3 = G3 + P3 *(G2 + P2 *(G1 + P1*(G0 + P0*Cin0)))
SommeSi = Cini-1 Pi
Struttura che in genere si limita alla somma di parole con non più di 4 bit
CARRY LOOKAHEAD ADDER A 16 BIT
P0 G0
a03 b03 s03
cin
P1 G1
a47 b47 s47
cout,3
P2 G2
a811 b811 s811
cout,7
P3 G3
a1216 b1216 s1216
cout,11 cout,16
Carry Lookahead Logic’’
P’’ G’’
, , , , , , , ,
4 4 4 4 4 4 4 4 4 4 4 4
CLA’
cin CLA’
cin
CLA’ cin
CLA’ cin
P0 G0
a03 b03 s03
cin
P1 G1
a47 b47 s47
cout,3
P2 G2
a811 b811 s811
cout,7
P3 G3
a1216 b1216 s1216
cout,11 cout,16
Carry Lookahead Logic’’
P’’ G’’
, , , , , , , ,
4 4 4 4 4 4 4 4 4 4 4 4
CLA’
cin CLA’
cin
CLA’ cin
CLA’ cin
Per sommatori con N > 4 si usano CLA connessi gerarchicamente in cui i Generate e Propagate
dell’intero circuito (G’’ e P’’) sono generati a partire dai Generate e Propagate locali (G’ e P’)
VANTAGGI E SVANTAGGI
• Vantaggio
- Tempo di ritardo proporzionale a log(N) nel caso della struttura gerarchica
. Svantaggi
- Aumento della complessità- Maggior numero di porte logiche utilizzate- Maggiore potenza dissipata
POSSIBILI LOGICHE DI IMPLEMENTAZIONE
• LOGICA FULLY CMOS (VISTA A LEZIONE)
Si è deciso di studiare tipi di logica che non fanno parte delle
conoscenze gia acquisite e progettare con esse il circuito:
• LOGICA DOMINO new!
• LOGICA TRANSMISSION-GATE new!
LOGICA DOMINO
Gnd
0
CK
CK
Vdd
Vdd
Logica
P
CK
Gnd
0
C5
C6
OUT
Vdd
CK
Vdd
0
0
N
Logica
OUT
inputsinputs
Gnd
0
CK
CK
Vdd
Vdd
Logica
P
CK
Gnd
0
C5
C6
OUT
Vdd
CK
Vdd
0
0
N
Logica
OUT
inputsinputs
In seguito viene illustrato il funzionamento della logica Domino prendendo in considerazione un
inverter
out
0
C1
Vdd
Gnd
CK
Vdd
CK
Gnd
0
A
out
0
C1
Vdd
Gnd
CK
Vdd
CK
Gnd
0
A
FASE DI PRECARICA
out
t
0
0
?
1Precarica
INVERTER
FASE DI VALUTAZIONE (1)
1
0
out
t
1
1
out
0
C1
Vdd
Gnd
CK
Vdd
CK
Gnd
0
A
out
0
C1
Vdd
Gnd
CK
Vdd
CK
Gnd
0
A
1
1
0
1
Precarica
Valutazione
FASE DI VALUTAZIONE (2)
1
1
1
out
0
C1
Vdd
Gnd
CK
Vdd
CK
Gnd
0
A
out
0
C1
Vdd
Gnd
CK
Vdd
CK
Gnd
0
A
0
1
1
1
out
t
Precarica
Valutazione
VANTAGGI E SVANTAGGI RISPETTO ALLA LOGICA FULLY CMOS
• VANTAGGI
– Diminuzione del numero di transistori utilizzati per la realizzazione di porte logiche complesse (quindi risparmio d’area)
– Maggiore velocità
• SVANTAGGI
– Maggiore complessità– Necessità di un segnale di temporizzazione (CK)
CHARGE SHARING (1)
A
0
0
B
out
C1
C2
Gnd
Gnd
CK
Vdd
Vdd
CK
Gnd
0
A
0
0
B
out
C1
C2
Gnd
Gnd
CK
Vdd
Vdd
CK
Gnd
0
0
0
0
0
1
Supponiamo di trovarci nella fase di precarica:
- Supponiamo C2 scarico
- C1 è carico
- C1 = C2
- Transistor A e B interdetti
0
CHARGE SHARING (2)
A
0
0
B
out
C1
C2
Gnd
Gnd
CK
Vdd
Vdd
CK
Gnd
0
A
0
0
B
out
C1
C2
Gnd
Gnd
CK
Vdd
Vdd
CK
Gnd
0
1
1
0
1
Fase di valutazione:
A = 1 transistor acceso
C1 SI SCARICA CARICANDO C2!
Parziale scarica di out
SOLUZIONE!
A
0
0
B
out
C1
C2
CK
Vdd
Gnd
Gnd
CK
Vdd
Vdd
Vdd
CK
Gnd
0
A
0
0
B
out
C1
C2
CK
Vdd
Gnd
Gnd
CK
Vdd
Vdd
Vdd
CK
Gnd
0
00
0
0
0
1
1
Precarico le capacità dei nodi intermedi al valore corretto
Out non si scarica!
CORRENTI DI LEAKAGE
Correnti inverse che scorrono attraverso le giunzioni pn in un transistor interdetto.
Fase di valutazione:
scorre una corrente inversa nei transistori interdetti che scarica il nodo out!
Esistono soluzioni generali(alta velocità)
1
0
1
1out
0
C1
Vdd
Gnd
CK
Vdd
CK
Gnd
0
A
out
0
C1
Vdd
Gnd
CK
Vdd
CK
Gnd
0
A
1
1
1
0
PROGETTO DEL CLA A 4 BIT IN LOGICA DOMINO NP
SCHEMA GENERALE DI UN CLA A 4 BIT
Per realizzare questa cascata di porte logiche ho deciso di utilizzare la logica Domino NP (Zipper Domino)
LOGICA DOMINO NP
FUNZIONAMENTO
Vdd
Gnd
CK
Vdd
CK
Gnd
0
Vdd
Gnd
CK
Vdd
Vdd
CK
Gnd
0
- CK
Vdd
Vdd
Gnd
- CK
0
C3
0A
Vdd
Gnd
CK
Vdd
CK
Gnd
0
Vdd
Gnd
CK
Vdd
Vdd
CK
Gnd
0
- CK
Vdd
Vdd
Gnd
- CK
0
C3
0A
0
?
0
1
1
0
0
1
0
1
OUT1
OUT2
OUT3
1
1 0
1
1
1
1
00
0
I tre inverter in cascata funzionano correttamente!
Se A = 0 OutN rimangono alla situazione di precarica
SCELTE PROGETTUALI
Bisogna decidere quali porte progettare in logicaP e quali in logica N:
• Porte relative ai segnali Generate e Propagate progettate in logica P
• Porte relative ai segnali di Carry progettate in logica N
COME PROGETTARE I BLOCCHI DI SOMMA?
P
NTG
Blocchi di somma progettati in logica Transmission-Gate
Si = Pi Ci – 1
LOGICA TRANSMISSION-GATE (1)
A
not(A)
Gnd
VddA
B
not(A)
out
B
not(A)
A
Gnd
Vdd
Vdd
0
A
not(A)
Gnd
VddA
B
not(A)
out
B
not(A)
A
Gnd
Vdd
Vdd
0
0
0
1
1
11
1
0
OUT = A B
0
X
X
A = 1 B = 1
OUT = 1 1 = 0
LOGICA TRANSMISSION-GATE (2)
A
not(A)
Gnd
VddA
B
not(A)
out
B
not(A)
A
Gnd
Vdd
Vdd
0
A
not(A)
Gnd
VddA
B
not(A)
out
B
not(A)
A
Gnd
Vdd
Vdd
0
0
0
1
0
11
11
1
OUT = A B
X
X
A = 0 B = 1
OUT = 0 1 = 1
…….
CONFRONTO CON LA LOGICA FULLY CMOS
Vdd
Vdd
Gnd
Gnd
Gnd
not(A)
A
0
Vdd
not(B)
B
0
Vdd
B
not(A)
A
B
out
Vdd
Vdd
A
Gnd
not(B)
Gnd
Vdd
not(A)
not(B)
Vdd
Vdd
Gnd
Gnd
Gnd
not(A)
A
0
Vdd
not(B)
B
0
Vdd
B
not(A)
A
B
out
Vdd
Vdd
A
Gnd
not(B)
Gnd
Vdd
not(A)
not(B)
SERVE PIU’ AREA!
OUT = A B
MULTIPLE OUTPUT DOMINO LOGIC
Gnd
P3
C2
0
Vdd
C1
0
Vdd
C0
0
Vdd
_C2
_C1
Gnd
_C0
G3
G2
Gnd
_C3
GndGnd
Gnd
P0
CI
G0
C3
-CKVdd
0
-CK
0
Vdd
P1 G1
Gnd Gnd
Gnd
P2
-CKVdd
-CKVdd
-CKVdd
-CKVdd
Gnd
P3
C2
0
Vdd
C1
0
Vdd
C0
0
Vdd
_C2
_C1
Gnd
_C0
G3
G2
Gnd
_C3
GndGnd
Gnd
P0
CI
G0
C3
-CKVdd
0
-CK
0
Vdd
P1 G1
Gnd Gnd
Gnd
P2
-CKVdd
-CKVdd
-CKVdd
-CKVdd
RISPARMIO D’AREA
TEMPI DI RITARDOSOSTANZIALMENTEEQUIVALENTI
PRIMO DIMENSIONAMENTO DEL CIRCUITO
• Lunghezza minima di canale L = 0,35 μm
. Dimensionamento equal delay:
due transistori posti in serie aventi parametro di transconduttanza k sono equivalenti a un transistore con tale parametro pari a k/2 (cioé è in grado di condurre la metà della corrente);
due transistori con le caratteristiche sopraelencate posti in parallelo sono equivalenti a un transistore avente parametro di transconduttanza pari a 2k, cioè in grado di condurre una corrente di intensità doppia;
Consideriamo l’inverter a lato: poiché μn ≈ 3μp, affinché esso sia dimensionato equal delay dovrò porre Wp ≈ 3Wn 0
Vdd
OUT3
1
0
IN
0
Vdd
OUT3
1
0
IN
RAFFINAMENTO
Tempo di scarica a massa del nodo circa uguale al tempo di precarica
Tempo di scarica a massa del nodo molto maggiore del tempo di precarica
Scarica del nodo
Precarica del nodo
CIRCUITO CLA DIMENSIONATO
2
Vdd
0
8
CK
G2
CK
_A2
8_B2
CK 12
0
Vdd
3CK
P2
9 _B2
C1
_C1
S2
P2
_C1
C1
1
33
1
Vdd
Gnd
Gnd
Vdd
_A2
A2 B29
GENERATE_2
9
9
Vdd
Vdd
Vdd
Vdd Vdd
SUM_2
PROPAGATE_2
Vdd
12
P2
C2
_C2
S3
P3
_C2
C2
1
33
1
Vdd
Gnd
Gnd
Vdd
A3
P3
B3
_A3
9
GENERATE_3
9
9
Vdd
Vdd
Vdd
Vdd
Vdd
PROPAGATE_3
Vdd
SUM_3
12
2
0
Vdd
8
CK
CK
G3
_A3
8
CK
_B3
Vdd
12
2
P3
CK
9 _B3
0
SUM_0
Gnd
Vdd
1
P0
Gnd
Gnd
_CI
CI
P3
S0
P0
C2
_CI
0
CI
Vdd
A0
3
B0
_A0
9
1
GENERATE_0
9
C1
0
Vdd
3
1
9
Vdd
0
Vdd
Vdd
PROPAGATE_0
Vdd
C0
Vdd
3
1
1
3
_C2
_C1
Vdd
Vdd
2
3
Gnd
15
G3
_C0
3
Vdd
G2
0
Vdd
4
9
Gnd
V33.3Vdc
CK
0
G0
CK
12
_C3
8
_A0
9
Gnd
_B0
16
VddCK
16
0
15
3
Gnd
Gnd
P0
CI
CK
G0
P0
9
C3
8
_B0
Vdd-CK
Gnd
Vdd
3
0
24
-CK
0
Vdd
4
3
1
P1 G1
GndGnd
Gnd
P2
Vdd-CK
3
Vdd
-CK
-CK
3
Vdd
M227
3Vdd
-CK
3
CARRY
A1 B1
_A1
9
GENERATE_1
9
9
Vdd
Vdd
Vdd
PROPAGATE_1
Vdd
SUM_1
Vdd
Vdd
12
0
2
Vdd
8
CK
G1
CK
_A1
8
CK
_B1
12Vdd
0
3CK
P1
9_B1
_C0
C0
P1
_C0
S1
C0
1
3
3
1
Vdd
Gnd
Vdd
Gnd
P1
2
Vdd
0
8
CK
G2
CK
_A2
8_B2
CK 12
0
Vdd
3CK
P2
9 _B2
C1
_C1
S2
P2
_C1
C1
1
33
1
Vdd
Gnd
Gnd
Vdd
_A2
A2 B29
GENERATE_2
9
9
Vdd
Vdd
Vdd
Vdd Vdd
SUM_2
PROPAGATE_2
Vdd
12
P2
C2
_C2
S3
P3
_C2
C2
1
33
1
Vdd
Gnd
Gnd
Vdd
A3
P3
B3
_A3
9
GENERATE_3
9
9
Vdd
Vdd
Vdd
Vdd
Vdd
PROPAGATE_3
Vdd
SUM_3
12
2
0
Vdd
8
CK
CK
G3
_A3
8
CK
_B3
Vdd
12
2
P3
CK
9 _B3
0
SUM_0
Gnd
Vdd
1
P0
Gnd
Gnd
_CI
CI
P3
S0
P0
C2
_CI
0
CI
Vdd
A0
3
B0
_A0
9
1
GENERATE_0
9
C1
0
Vdd
3
1
9
Vdd
0
Vdd
Vdd
PROPAGATE_0
Vdd
C0
Vdd
3
1
1
3
_C2
_C1
Vdd
Vdd
2
3
Gnd
15
G3
_C0
3
Vdd
G2
0
Vdd
4
9
Gnd
V33.3Vdc
CK
0
G0
CK
12
_C3
8
_A0
9
Gnd
_B0
16
VddCK
16
0
15
3
Gnd
Gnd
P0
CI
CK
G0
P0
9
C3
8
_B0
Vdd-CK
Gnd
Vdd
3
0
24
-CK
0
Vdd
4
3
1
P1 G1
GndGnd
Gnd
P2
Vdd-CK
3
Vdd
-CK
-CK
3
Vdd
M227
3Vdd
-CK
3
CARRY
A1 B1
_A1
9
GENERATE_1
9
9
Vdd
Vdd
Vdd
PROPAGATE_1
Vdd
SUM_1
Vdd
Vdd
12
0
2
Vdd
8
CK
G1
CK
_A1
8
CK
_B1
12Vdd
0
3CK
P1
9_B1
_C0
C0
P1
_C0
S1
C0
1
3
3
1
Vdd
Gnd
Vdd
Gnd
P1
PROGETTO DI UN RIPPLE CARRY ADDER A 4 BIT IN LOGICA FULLY
CMOS (PER CONFRONTO)
SCHEMA GENERALE
SCHEMA CIRCUITALE DEL FULL ADDER DI BASE
VddVdd
Vdd
Vdd
Vdd
Gnd Gnd
Gnd Gnd Gnd
0
Vdd
9
3
Vdd
Gnd
C0
Gnd
3
Vdd
3
Vdd
3
Vdd
3
Vdd
3
Vdd
18
Vdd
0
3
1
18
3
12
Vdd12
18
6 4
6
3
Vdd
6 6
1
Gnd
1
Gnd
1
Gnd
1
Gnd
1
Gnd
1
Gnd
1
Gnd
Gnd
Vdd
A0
A0
A0
A0
A0
A0
A0
A0
B0
B0
B0B0
B0
B0
B0
CI
B0
CI
CI
CI
CICI
_C0
S0
VddVdd
Vdd
Vdd
Vdd
Gnd Gnd
Gnd Gnd Gnd
0
Vdd
9
3
Vdd
Gnd
C0
Gnd
3
Vdd
3
Vdd
3
Vdd
3
Vdd
3
Vdd
18
Vdd
0
3
1
18
3
12
Vdd12
18
6 4
6
3
Vdd
6 6
1
Gnd
1
Gnd
1
Gnd
1
Gnd
1
Gnd
1
Gnd
1
Gnd
Gnd
Vdd
A0
A0
A0
A0
A0
A0
A0
A0
B0
B0
B0B0
B0
B0
B0
CI
B0
CI
CI
CI
CICI
_C0
S0
SUM = ABC + (A + B + C)not(CARRY)
CONFRONTO PRESTAZIONI
Carry lookaheadadder
Domino
Carry lookaheadadder
fully CMOS
Ripple carry adderfully CMOS
Tempo di ritardo massimo 1,01 ns 2 ns 1,16 ns
Periodo di clock minimo 2 ns 2,5 ns 1,7 ns
Numero transistori a canale p 366 656 420
Numero transistori a canale n 117 188 148
Area attivaoccupata 795 μm2 1390 μm2 935 μm2
Potenza dissipata 2,26 mW 2,70 mW 1,37 mW
FINE PRESENTAZIONE