Logica
Combinatoria
Courtesy of Massimo Barbaro
Logica combinatoria


Un blocco di logica puramente combinatoria è un
blocco con N variabili di ingresso e M variabili di
uscita che sono funzione (booleana) degli ingressi
presenti in un certo istante.
Ad ogni istante le uscite dipendono solo dagli ingressi
in quell’istante e NON dalla storia passata del circuito
Courtesy of Massimo Barbaro
Logica combinatoria vs. Sequenziale
In
Logic
In
Circuit
Out
Logic
Out
Circuit
State
(a) Combinational
Output = f(In )
(b) Sequential
Output = f(In, Previous In)
Courtesy of Massimo Barbaro
Stili di progetto

Logica statica: l’uscita è sempre connessa
all’alimentazione o alla massa (es. static CMOS,
pseudo-NMOS, pass transistor). Esiste cioè sempre
un percorso diretto a bassa impedenza fra una
delle alimentazioni ed il nodo di uscita.

Logica dinamica: il nodo di uscita non è sempre
connesso ad una delle alimentazioni e il dato viene
temporaneamente immagazzinato in forma di
carica su una capacità (es. np, domino)
Courtesy of Massimo Barbaro
Logica
Combinatoria
CMOS STATICO
Courtesy of Massimo Barbaro
Logica statica CMOS

Dall’inverter CMOS è facile ottenere porte
logiche più complesse con gli stessi vantaggi
del singolo inverter:
VOH=VDD , VOL=0
Nessuna dissipazione di potenza statica
Ampi margini di rumore
Tempi di salita e discesa confrontabili (con
opportune regole di progetto)
Courtesy of Massimo Barbaro
Esempi di gate CMOS
Courtesy of Massimo Barbaro
Logica statica CMOS (1)
Come si capisce la funzione logica implementata da un circuito a
transistor?


Si considera ogni possibile combinazione di ingresso, ossia ogni
riga della tabella di verità.
Per ogni combinazione si sostituisce ad ogni NMOS:
 un circuito APERTO se l’ingresso è 0
 un circuito CHIUSO se l’ingresso è 1

ad ogni PMOS:
 un circuito CHIUSO se l’ingresso è 0
 un circuito APERTO se l’ingresso è 1


Si verifica, dal circuito risultante, se l’uscita è connessa a massa
(0) oppure a VDD (1)
Si riporta il valore logico nella tabella della verità
Courtesy of Massimo Barbaro
Logica statica CMOS (2)


I pmos ed nmos vengono usati come interruttori pilotati in
tensione (tensione sul gate), realizzando delle funzioni logiche.
Affinchè il gate combinatorio sia veloce ed affidabile, occorre
che questi interruttori abbiano le seguenti caratteristiche:
 ON  Resistenza molto bassa
 OFF  Resistenza Elevata, quasi come un circuito aperto.

Consideriamo l’NMOS
G
Ron= ??
ROff = Grande

D
S
La RON = RDS dipende fortemente dalla regione in cui si trova lo
nmos (ovvero dalla VDS e dalla VGS)
Courtesy of Massimo Barbaro
Logica statica CMOS (3)

Nota: Le giunzioni di diffusione devono sempre essere
polarizzate in inversa.
 Nel caso del pmos, il terminale di bulk è collegato al potenziale piu basso
(GND).
 Il terminale di Source deve trovarsi ad un potenziale piu basso del Drain


Quando la VDS > VGS – VTN l’NMOS entra in saturazione e via
via che VDS aumenta, il transistor (RON = RDS ) è sempre piu
resistivo.
Come evidenziato nella slide precedente, vogliamo interruttori
che siano caratterizzati da una bassa impedenza durante il
stato di ON, quindi è necessario farli lavorare in regione lineare
(stato ON), oppure in cut-off (stato OFF), passando quindi dalla
regione di staurazione.
Courtesy of Massimo Barbaro
Logica statica CMOS (4)



Abbiamo gia visto nell’inverter che il pmos è utilizzato per
caricare il nodo di uscita (portarlo a VDD), mentre lo nmos per
scaricalo (portarlo a GND)
Infatti gli nmos durante la scarica sono caratterizzati da una
bassa impedenza tra drain e source, in quanto man mano che
la tensione sull uscita diminuisce (a causa della scarica), lo
nmos diventa sempre piu conduttivo velocizzando ulteriormente
la scarica.
Analogamente i pmos durante la carica convergono in regione
lineare, quindi mano a mano che la tensione tra source e drain
diminuisce (ovvero via via che il nodo di uscita si carica ed
aumenta il suo potenziale rispetto alla massa), diminuisce la sua
resistenza equivalente (tra drain e source) velocizzando la
carica.
Courtesy of Massimo Barbaro
Logica statica CMOS (4)

Ne deriva che i pmos sono i migliori candidati per
caricare il nodo di uscita, mentre gli nmos per
scaricarlo.
t=0
VCL(t)
D
VDD
0 ∙
V(t=0) = VDD
S
VDD
t
VDD
t=0
D
VCL(t)
VDD
S
V(t=0) = 0V
VDD -VTN
1
t
Courtesy of Massimo
Barbaro
Logica statica CMOS (5)

Cosa succede se usiamo gli NMOS per caricare il
nodo d’uscita e i PMOS per scaricarli?
t=0
VCL(t)
D
VDD
V(t=0) = VDD
S
VDD
|VTP|
t
NMOS diventa saturo e poi
si spegne
VDD
t=0
PMOS diventa saturo e poi
si spegne
D
VCL(t)
VDD
S
VDD -VTN
V(t=0) = 0V
t
Courtesy of Massimo
Barbaro
Logica statica CMOS (6)
VDD
PUN
VDD
S
D
VDD
0  VDD
VGS
D
S
CL
VDD  0
PDN
VDD
D
S
CL
0  VDD - VTn
CL
VGS
VDD  |VTp|
S
CL
D
Courtesy of Massimo Barbaro
Logica statica CMOS (6)

Riassumendo abbiamo due comportamenti distinti a
seconda del potensiale che vogliamo trasferire al
nodo di uscita.
NMOS
Forti nello scaricare (Strong PULL DOWN)
Deboli nel caricare (Weak PULL UP)
Uno logico sporco
PMOS
Forti nello caricare (Strong PULL UP)
Deboli nel scaricare (Weak PULL DOWN)
Zero logico sporco
Courtesy of Massimo Barbaro
Porta NAND(1)
PMOS accesi, NMOS spenti
VDD
A
A
B
Z
0
0
1
0
1
1
1
0
1
1
1
0
B
A
Z
Z
B
Z è disconesso
da massa e
connesso a VDD
dunque l’uscita è
un 1 logico
Courtesy of Massimo Barbaro
Porta NAND(2)
PMOS A, NMOS B accesi,
PMOS B, NMOS A spenti
VDD
A
A
B
Z
0
0
1
0
1
1
1
0
1
1
1
0
B
A
Z
Z
B
Z è disconesso
da massa e
connesso a VDD
dunque l’uscita è
un 1 logico
Courtesy of Massimo Barbaro
Porta NAND(3)
PMOS A, PMOS B accesi,
NMOS B, NMOS A spenti
VDD
A
A
B
Z
0
0
1
0
1
1
1
0
1
1
1
0
B
A
Z
Z
B
Z è disconesso
da VDD massa e
connesso a
massa dunque
l’uscita è uno 0
logico
Courtesy of Massimo Barbaro
Porta NAND


La porta in figura è una NAND
perché l’uscita è uguale a 0
solo se A e B sono entrambi 1
(quando i 2 NMOS del PDN sono
entrambi in conduzione). In tale
condizione il PUN è sicuramente
interdetto
Se anche uno solo fra A e B è
pari a 0 il percorso verso massa
si interdice e si chiude uno dei
due percorsi verso VDD quindi
l’uscita è 1
VDD
A
B
∙
A
B
Courtesy of Massimo Barbaro
Porta NOR


La porta in figura è una
NOR perché l’uscita è
uguale a 1 solo se A e B
sono entrambi 0 (quando i
2 PMOS del PUN sono
entrambi in conduzione). In
tale condizione il PDN è
sicuramente interdetto
Se anche uno solo fra A e B
è pari a 1 il percorso verso
VDD si interdice e si chiude
uno dei due percorsi verso
massa quindi l’uscita è 0
VDD
B
A
A
B
Courtesy of Massimo Barbaro
Logica statica CMOS

Una generica porta CMOS ha la struttura:
Courtesy of Massimo Barbaro
Caratteristiche logica CMOS



PUN (Pull-Up Network): è una rete di interruttori
PMOS che connettono l’uscita a VDD in
corrispondenza delle combinazioni di ingresso per cui
la funzione è F(…)=1
PDN (Pull-Down Network): è una rete di interruttori
NMOS che connettono l’uscita a 0 in corrispondenza
delle combinazioni di ingresso per cui la funzione è
F(…)=0
Le due reti sono complementari, ossia quando è
aperta una l’altra è chiusa e viceversa. Questo evita
che ci siano percorsi diretti fra alimentazione e la
massa
Courtesy of Massimo Barbaro
Interruttori NMOS
X
X
A
A
B
B
Y
Y=X SE A=1 E B=1 (A•B)
Y
Y=X SE A=1 O B=1 (A+B)
Courtesy of Massimo Barbaro
Interruttori PMOS
X
X
A
A
B
B
Y
Y=X SE A=0 E B=0 (A’•B’)
Y
Y=X SE A=0 O B=0 (A’+B’)
Courtesy of Massimo Barbaro
Generica porta CMOS




Una generica porta CMOS può essere implementata partendo
dall’espressione algebrica o dalla tabella di verità. La PDN deve
essere tale da chiudere il percorso a massa per le righe in cui
F(…)=0 e la PUN tale da chiudere il percorso a VDD per quelle
in cui F(…)=1
Per la dualità delle due reti (teorema di DeMorgan) ogni volta
che i transistor sono in serie nella PDN sono in parallelo nella
PUN e viceversa
Si può sempre partire dall’implementazione della sola PDN per
poi ricavare la PUN oppure viceversa
Non tutte le funzioni sono direttamente implementabili, in
particolar modo le porte CMOS sono sempre invertenti (per fare
una AND è necessario implementare una NAND con un inverter
in cascata)
Courtesy of Massimo Barbaro
Implementazione di una porta
CMOS
La PUN è funzione soli segnali
negati perché è composta da switch PMOS
(si ottiene dalla PDN attraverso il teorema di
DeMorgan)
Quando G (solo funzione di AND e OR e dei
segnali NON negati) è vera la PDN
cortocircuita l’uscita a massa
Courtesy of Massimo Barbaro
Implementazione di una porta
CMOS

Realizzando la PDN si è in grado di implementare (sono NMOS)
una qualsiasi funzione G di soli operatori AND e OR
 PDN: G(x1,x2,…,xN,+,•)

 es:
Quando G=1 l’uscita è connessa a massa quindi F=0 allora:
 F(x1,x2,…,xN)=G’(x1,x2,…,xN,+,•)
 es:

G=AB+CD+F(A+B)
F=[AB+CD+F(A+B)]’)
Il PUN invece implementa direttamente la funzione (connette
l’uscita a 1) ma può contenere solo operatori NOR e NAND
(quelli implementabili con switch PMOS)
 F(x1 ’,x2 ’,…,xN’,+,•)= F’(x1,x2,…,xN, •, +) = G(x1,x2,…,xN, •, +)
Dualità del PDN e PUN
Courtesy of Massimo Barbaro
Esempio
D
PUN
∙
C
A
B
̅
∙
Implementabile con un
PDN (le OR sono NMOS
in parallelo, le AND sono
NMOS in serie)
D
B
C
PDN
A
Courtesy of Massimo Barbaro
Esempio
∙ ̅ ∙
C
Funzione di
sole OR e
AND di segnali
negati
Implementabile con un
PUN (le OR di segnali
negati sono PMOS in
parallelo, le AND di
segnali negati sono PMOS
in serie)
PUN
̅
A
B
A
D
B
C
PDN

D
Courtesy of Massimo Barbaro
Procedura di sintesi (1)

Si considera la forma della funzione:
Se si tratta di un funzione NEGATA di sole
variabili NON negate ( Z = F(x1,x2,…,xN,+,•)’ ):
Si implementa una PDN
Se si tratta di un funzione NON NEGATA di sole
variabili negate ( Z = F(x1’,x2’,…,xN’,+,•) ):
Si implementa una PUN

Scelto il tipo di rete da realizzare si passa alla
sua implementazione per mezzo di transistor
(interruttori)
Courtesy of Massimo Barbaro
Procedura di sintesi (2)

Per la realizzazione di una PDN (PUN)
 Si parte dall’operatore logico a precedenza minore (tenendo
conto delle parentesi)
 Se si tratta di una OR bisogna scegliere fra due possibili strade
quindi si crea una biforcazione con due percorsi in parallelo
 Se si tratta di una AND bisogna invece chiudere il percorso
solo quando entrambe le condizioni sono vere quindi si
mettono i rispettivi transistor in serie
 Si procede allo stesso modo passando via via agli operatori
a maggiore precedenza

Realizzata la rete PDN (PUN) per dualità si realizza
la rete complementare PUN (PDN), mettendo in
parallelo i blocchi che erano in serie e mettendo in
serie ciò che era in parallelo.
Courtesy of Massimo Barbaro
Procedura di sintesi (3)
Tornando all’
esempio:
(1) Implemento una PDN
perché devo portare
l’uscita a 0.
(2) Seleziono il primo
operatore da applicare.
E’ una disgiunzione
quindi lo realizzo
creando un bivio tra due
possibili percorsi.
(3) Disgiunzione:
ramificazione del circuito che
si divide nei due possibili
percorsi. percorsi
corrispondenti alle due
possibili opzioni.
(5) Per un blocco
corrispondente a più variabili
ripeto la procedura dall’inizio
∙
(4) Se un blocco contiene
una sola variabile
corrisponde ad un
transistor con il gate
pilotato dalla variabile.
Courtesy of Massimo Barbaro
Procedura di sintesi (4)
(7) Seleziono il primo
operatore da applicare. E’
una AND quindi
corrisponde a due percorsi
che devono essere chiusi
contemporaneamente
(serie).
(9) Per un blocco
corrispondente a più
variabili ripeto la procedura
dall’inizio
(6) Ripeto la procedura per il
sottoblocco rimanente.
(8) Se un blocco contiene
una sola variabile
corrisponde ad un
transistor con il gate
pilotato dalla variabile.
(10) Procedo con i blocchi rimanenti. Se
in un blocco ci sono più variabili ma un
solo tipo di operatore (come nel caso in
esempio) si sostituisce direttamente con
un parallelo (se l’operatore è la OR) o
serie (se l’operatore è la AND) di tanti
transistor quante sono le variabili
Courtesy of Massimo Barbaro
Procedura di sintesi (5)
(11) Si procede adesso, PER
DUALITA’, alla realizzazione
della PUN.
(12) Come si vede, tutti gli operatori AND
sono diventati OR e viceversa. La forma
finale è quella di una PUN perché
funzione NON NEGATA di variabili
negate.
Courtesy of Massimo Barbaro
Esempio
Funzione (non negata) di sole OR e AND: non è
implementabile p né con un PUN né con un PDN
A
Ecco perché è preferibile
implementare una generica
funzione con sole NAND e
NOR
Courtesy of Massimo Barbaro
AOI

Implementazione diretta di 2 livelli di logica
con un solo blocco CMOS statico:

∙
∙
And-Or-Invert
L’implementazione diretta usa solo 8
transistor anzichè i 2(4+2)+4+2=18 ( due
NAND + INVERTER e una NOR +
INVERTER) di una implementazione
puramente logica
Courtesy of Massimo Barbaro
OAI

Implementazione diretta di 2 livelli di logica
con un solo blocco CMOS statico:

∙
Or-And-Invert
L’implementazione diretta usa solo 8
transistor anzichè i 2(4+2)+4+2=18 ( due
NAND + INVERTER e una NOR +
INVERTER) di una implementazione
puramente logica
Courtesy of Massimo Barbaro
Dimensionamento
Un’opportuna tecnica di dimensionamento
consente di avere caratteristiche statiche e
dinamiche ottimali
 In particolare è desiderabile avere delle
caratteristiche di trasferimento
simmetriche e dei tempi di propagazione
confrontabili nelle due possibili commutazioni
(HL e LH)
 Da cosa dipendono i tempi di propagazione?

Courtesy of Massimo Barbaro
Tempi di propagazione (1)


Come nel caso del singolo inverter, anche per una
generica porta CMOS è possibile calcolare i tempi
di propagazione facendo riferimento ad un modello
semplificato con una capacità di carico CL fra uscita
e massa e delle resistenze equivalenti che
rappresentino i MOS
Per ottenere la capacità CL che conterrà i contributi di
tutte le capacità parassite nei vari nodi si sfruttano le
tecniche viste per l’inverter (l’uso del teorema di
Miller per trasformare le capacità gate/drain in
capacità drain/massa)
Courtesy of Massimo Barbaro
Tempi di propagazione (2)



La capacità di carico ottenuta deve poi essere
caricata o scaricata dalla rete di pull-up o pull-down
che si è attivata
Si fa riferimento al caso peggiore (worst case)
ossia a quelle commutazioni che implicano la
presenza di un solo percorso conduttivo per la
carica o scarica della capacità
Si calcola il transistor equivalente (sfruttando serie
e paralleli) corrispondente al percorso attivato e poi si
applica la formula per calcolare il tempo di
propagazione classico dell’inverter
Courtesy of Massimo Barbaro
Serie e parallelo di MOS

Nel seguito faremo le ipotesi semplificative (solo
parzialmente vere a causa dell’effetto body ed altri
effetti del secondo ordine):
 K MOS in serie con W=W0 e L=Lmin sono equivalenti ad un
MOS di lunghezza L=KLmin e W=W0 o ad un MOS con
L=Lmin e W=W0/K (K volte più resistivo)
 K MOS in paralello di larghezza W=W0 sono equivalenti ad
un solo MOS con W=KW0 (K volte più conduttivo)
Serie di MOS
Parallelo di MOS
Courtesy of Massimo Barbaro
Modello del primo ordine



In un modello del primo ordine si può pensare che
tutti i MOS in serie (o parallelo) lungo un percorso si
combinino in un solo MOS equivalente di W/L
opportuna, avente quindi una certa resistenza
equivalente (Req)
La capacità equivalente sarà la somma della capacità
parassite presenti su tutti i nodi attraversati dal
percorso di scarica (Ceq)
Identificate resistenza e capacità equivalente si può
calcolare il tempo di propagazione con la solita
formula:
 tp=0.69ReqCeq
Courtesy of Massimo Barbaro
MOS in serie
Il nodo in comune è equipotenziale
(silicio fortemente drogato, quasi
metallico), quindi è come se i due
canali fossero esattamente uno
dopo l’altro ossia se ci fosse un
unico transistor ma lungo il doppio.
Questo ovviamente a patto che le
larghezze siano le stesse altrimenti
avremo in serie due canali
differenti quindi non si potrebbe
equiparare la struttura ad un
singolo MOS.
Courtesy of Massimo Barbaro
MOS in parallelo
Allo stesso potenziale: come un cortocircuito
Se:
 i source e i drain sono cortocircuitati tra
loro e
 i gate sono allo stesso potenziale (come
se fossero cortocircuitati)
Allora è come se i due MOS fossero
affiancati fra loro. In tal caso sarebbero
equivalenti ad un singolo MOS di larghezza
doppia.
Questo ovviamente a patto che le
lunghezze siano le stesse altrimenti
avremmo in parallelo due canali differenti,
quindi non si potrebbe equiparare la
struttura ad un singolo MOS
Courtesy of Massimo Barbaro
Esempio: NAND a 2 ingressi: tpHL
VDD
A
SPa
Calcolo di tpHL (scarica)
B
SPb
∙
SNa
A
SNb
B
RA
CL
RB
Ceq =CL
Se gli SN sono Uguali
Req = RN = RA + RB = 2ReqN
Si considera la somma di tutte di le
resistenze attraversate e la somma della
capacità di tutti i nodi che devono essere
scaricati (Trascuriamo i nodi interni)
tp=0.69ReqCeq
Courtesy of Massimo Barbaro
Esempio: NAND a 2 ingressi: tpLH
VDD
A
SPa
Calcolo di tpLH (Carica)
B
SPb
∙
SNa
A
SNb
B
Reqp = RA, RB, RA // RB
Ceq =CL
Req = RP = RA , RB , RA // RB
Si considera la somma di tutte di le
resistenze attraversate e la somma della
capacità di tutti i nodi che devono essere
scaricati (Trascuriamo i nodi interni)
Courtesy of Massimo Barbaro
Dimensionamento (1)


Allora per fare in modo di equalizzare i tempi di salita
e discesa (di caso peggiore) bisogna fare in modo
che ciascun percorso di salita (costituito da PMOS)
abbia la stessa resistenza equivalente di ciascun
percorso di discesa (costituito da NMOS).
Bisogna equalizzare ciascun percorso singolarmente
perché il caso peggiore è quello in cui un solo
percorso è attivo. Ovviamente se più percorsi fossero
attivi contemporaneamente il tempo di propagazione
sarebbe minore ma è necessario prevedere che il
circuito funzioni correttamente nella situazione più
svantaggiosa.
Courtesy of Massimo Barbaro
Dimensionamento

Ricordando che la resistenza equivalente è data
dalla somma delle singole resistenze e che ogni
resistenza è inversamente proporzionale a kn (kp)
bisognerà equalizzare sia il k degli NMOS a quello di
un NMOS singolo a dimensione minima (basta
agire sulle W) che quello dei PMOS (in questo caso
per dimensionare bisogna anche tenere conto della
diversa mobilità dei PMOS).
Courtesy of Massimo Barbaro
Calcolo di Ron



La Ron è sicuramente inversamente proporzionale
alla W ed alla mobilità del transistor (visto che la ID
compare al denominatore)
Perciò a parità di W la Ron di un pmos è circa due
volte quella di un nmos
Per avere un pmos ed un nmos con Ron circa
equivalenti bisogna dimensionare, come nell’inverter,
Wp=2Wn in modo da compensare con la Wp la
minore mobilità delle lacune
Courtesy of Massimo Barbaro
Tempo di propagazione (1)



Come visto nell’esempio della NAND per fare in
modo che i tempi della commutazione HL e LH
siano uguali è necessario dimensionare i PMOS e gli
NMOS in modo che 2Rn=Rp
Per fare questo è necessario dimensionare gli NMOS
con W=2 in modo che la loro serie sia equivalente ad
un NMOS di W=1
A questo punto è necessario dimensionare i PMOS
con W=2 in modo che siano equivalenti ad un NMOS
con W=1
Courtesy of Massimo Barbaro
Tempo di propagazione (2)
3
A=B=10
2,5
Voltage [V]
2
A=1 0, B=1
1,5
A=1, B=10
1
0,5
0
-0,5
0
100
200
300
time [ps]
Tp diversi in quanto abbiamo Trascurato
la capacità dei nodi interni
400
Input Data
Pattern
Delay
(psec)
A=B=01
67
A=1, B=01
64
A= 01, B=1
61
A=B=10
45
A=1, B=10
80
A= 10, B=1
81
NMOS = 0.5m/0.25 m
PMOS = 0.75m/0.25 m
CL = 100 fF
Courtesy of Massimo Barbaro
Dimensionamento ottimo (1)
 Il dimensionamento finale è:
Bisogna avere sempre in mente
il caso peggiore (worst-case). In
questo esempio due sono
sempre in serie, mentre i PMOS
possono condurre singolarmente
o contemporaneamente.
Ovviamente se capita che i due
PMOS siano entrambi accesi il
tempo di propagazione sarà
ulteriormente minore
Courtesy of Massimo Barbaro
Dimensionamento ottimo (2)

In generale si fa in modo che ciascun
percorso di NMOS verso massa sia
equivalente ad un NMOS con W=1 e che
ciascun percorso di PMOS verso
l’alimentazione sia equivalente ad un
PMOS con W=2 (che è poi equivalente
ad un NMOS con W=1).

Il rapporto di 2 fra PMOS e NMOS non è
esatto (il rapporto fra le mobilità degli
NMOS e dei PMOS è leggermente
maggiore) ma utile per rendere tempi
abbastanza simili senza occupare troppa
area.
Courtesy of Massimo Barbaro
Fan-In e Fan-Out




Porte CMOS con elevato fan-in diventano rapidamente poco
pratiche.
Infatti il numero totale di MOS è pari a 2N (con N numero di ingressi)
quindi all’aumentare degli ingressi aumenta rapidamente l’area
All’aumentare degli ingressi aumentano anche i transistor in serie e
quindi la porta diventa più lenta (Ron più grandi). Questo fenomeno è
solo in parte risolvibile con la tecnica di dimensionamento vista, dato
che all’aumentare della W dei mos aumentano anche le capacità
parassite e quindi CL quindi ad un certo punto non si ha più
miglioramento di tp (il gate si fa da carico)
Anche gli elevati fan-out riducono la velocità della porta (ogni gate
connesso significa due transistor di carico, il pmos e lo nmos)
Courtesy of Massimo Barbaro
Fan-In: dimensionamento progressivo

I transistor più vicini alla massa devono pilotare
capacità via via più grandi (la somma di CL e di tutti i
nodi parassiti intermedi)
Si dimensiona MN a dimensione
minima, poi gli altri via via più larghi
WN-1=WN(CL+CpN-1)/CL
.....
W1=WN(CL+CpN-1 +…+Cp1)/CL
Courtesy of Massimo Barbaro
Fan-In: riordinamento

Se un segnale è particolarmente critico in genere è quello che
arriva per ultimo (quando gli altri hanno già commutato)
In tale situazione è preferibile usare il
segnale critico per pilotare il transistor
MN che è il più vicino a CL e quindi
“vede” la sola CL se gli altri
commutato.
Se invece si usasse il segnale critico
per pilotare M1 la capacità “vista”
sarebbe :
Ctot=CL+CpN- 1+…+Cp1
Courtesy of Massimo Barbaro
Logica Statica CMOS: Riassunto
L’escursione fra i simboli 0 e 1 è la massima
possibile (VDD)  Full Swing
 Nessuna dissipazione di potenza statica
 Tempi di propagazione confrontabili
 Una porta a N ingressi ha 2N transistor (N
nmos e N pmos)
 Ad ogni ingresso sono connessi sempre mos
(almeno 1 nmos e 1 pmos)

Courtesy of Massimo Barbaro
Logica
Combinatoria
LOGICA PSEUDO
NMOS
Courtesy of Massimo Barbaro
Limiti del CMOS


Il principale limite della logica CMOS è il numero di
mos (sempre pari a 2N) utilizzati che la rende poco
pratica per porte con elevato fan-in. Inoltre in
ingresso presenta sempre i gate di 2 mos (p e n)
quindi un carico almeno doppio del minimo
concepibile (trascurando i diversi dimensionamenti
del p e del n)
Per questo motivo sono state concepite logiche
alternative che barattano alcune caratteristiche
CMOS in cambio di un minore ingombro e
maggiore velocità
Courtesy of Massimo Barbaro
Logica pseudo-NMOS

La logica pseudo-NMOS implementa la sola rete PDN e
sostituisce la PUN con un solo mos (un PMOS sempre acceso)
che si incarica di portare a VDD l’uscita ogni volta che la PDN è
aperta
Courtesy of Massimo Barbaro
Pseudo-NMOS : funzionamento

L’analisi del circuito di massima è molto semplice e si basa su
quanto detto per la logica combinatoria CMOS statica con la
sola differenza che la rete di pull-up (PUN) è sostituita da un
transistor SEMPRE acceso (il PMOS con il gate connesso a
massa).

Per riconoscere la funzione implementata, dunque, bisogna
verificare la sola PDN:
 Per ogni combinazione per cui la PDN risulta accesa (ossia in cui c’è
almeno un percorso chiuso verso massa) l’uscita sarà bassa (questo a
patto che il PMOS venga opportunamente dimensionato, come vedremo in
seguito).
 Per ogni combinazione per cui la PDN risulta spenta (nessun percorso
verso massa), il nodo di uscita sarà cortocircuitato a VDD dal PMOS e
dunque l’uscita sarà alta.
Courtesy of Massimo Barbaro
Pseudo-NMOS: funzionamento
Per una combinazione x1, x2, ... xN per cui nessun percorso della PDN è
chiuso verso massa, l’intera PDN è un circuito aperto, dunque:
Courtesy of Massimo Barbaro
Pseudo-NMOS: funzionamento
Per una combinazione x1, x2, ... xN per cui almeno un percorso della PDN
è chiuso verso massa, l’intera PDN è un circuito aperto, dunque:
Courtesy of Massimo Barbaro
Pseudo-NMOS: funzionamento
Quanto vale l’uscita in caso di PDN accesa?
Le resistenze sono in serie dunque sono equivalenti
ad una resistenza pari alla loro somma. La caduta di
potenziale ai capi della serie delle due resistenze è
pari a VDD.
VDD= (Rp+Rn)In
Da questo ricaviamo la corrente:
In= VDD/(Rp+Rn)
La corrente che scorre nelle
due resistenze è la stessa (il
carico NON assorbe corrente
perché è il gate di un MOS).
Sostituiamo il valore ottenuto nell’espressione
di VRn:
VOUT = VRp = VDDRn /(Rp+Rn)
Se la resistenza equivalente della PDN (Rn) è
molto più piccola di quella del PMOS tale valore
tende a zero e dunque l’uscita è bassa
Courtesy of Massimo Barbaro
Pseudo-NMOS: VOL


Il ragionamento svolto è però solo qualitativo perché in realtà i
transistor MOS non sono delle semplici resistenze ma hanno
una caratteristica fortemente non-lineare. Bisogna tenere
conto di questo se si vuole conoscere il valore esatto della
tensione di uscita bassa che NON può essere pari a 0.
Per potere scrivere le equazioni corrette applichiamo il solito
ragionamento svolto anche per l’inverter CMOS e per la logica
statica CMOS ed osserviamo che (come visto nella slide
precedente), la corrente del PMOS deve essere UGUALE alla
corrente del NMOS (lo NMOS equivalente alla PDN). Questo
perché non esiste alcun altro percorso possibile per la corrente,
quindi tutta la corrente che scorre nel PMOS deve fluire verso
massa attraverso la PDN.
Courtesy of Massimo Barbaro
Pseudo-NMOS: VOL



Per potere procedere dobbiamo conoscere
le condizioni di conduzione dei due
transistor (cutoff, triodo o saturazione).
Osserviamo che si desidera ottenere una
porta logica con un buon margine di
rumore, dunque si vuole che la VOL sia la
più bassa possibile.
In tali condizioni, poiché la VOL coincide
con la VDS del NMOS equivalente, tale
transistor sarà ragionevolmente in triodo.
Per la stessa ragione, la VSD del PMOS
sarà invece molto grande e dunque
avremo ragionevolmente un PMOS in
saturazione.
Se la VOL deve essere piccola
lo NMOS tende ad andare in
triodo ed il PMOS in
saturazione.
Facciamo questa ipotesi che
sarà verificata se otterremo un
valore di VOL inferiore a VDSATn.
Courtesy of Massimo Barbaro
Pseudo-NMOS: VOL




Siccome stiamo calcolando VOL l’ingresso sarà chiaramente alto.
Scriviamo l’equazione della corrente del PMOS che è in saturazione e
ha la VSG pari a VDD e la VSD pari a VDD-VOL.
Scriviamo l’equazione della corrente del NMOS che è in triodo e ha la
VGS pari a VDD e la VDS pari a VOL.
Uguagliamo le due correnti e ipotizziamo VTn=|VTp|
Courtesy of Massimo Barbaro
Pseudo-NMOS: VOL

Supponendo di volere avere il valore più basso possibile VOL2
sarà trascurabile rispetto a VOL e si ottiene quindi:

Se si considera inoltre che, tipicamente VTn ≈ VTp e che
VDSATp ≫ VDD - VTp l’espressione si semplifica ulteriormente in:
Courtesy of Massimo Barbaro
Pseudo-NMOS: VOL
Osservando la cosa dal punto di vista grafico, rappresentiamo le due
correnti (del PMOS e del NMOS) su uno stesso grafico (funzione di
VOUT). Il valore della tensione di uscita corrisponde al punto di
intersezione fra le curve (il punto in cui le due correnti sono uguali).
NMOS (molto conduttivo
perché W/L è grande)
IDSn,ISDp

Al diminuire del W/L del PMOS
la curva si schiaccia verso il
basso ed il punto di
intersezione si sposta a sinistra.
VOL
PMOS (poco conduttivo
perché piccolo W/L)
VDD
Vout
Courtesy of Massimo Barbaro
VOL : considerazioni



La diminuzione della VOL comporta una diminuzione
del rapporto di forma del PMOS rispetto al NMOS
equivalente.
Tale riduzione di può ottenere sia facendo lo NMOS
più conduttivo (più largo), sia riducendo la
conduttività del PMOS ossia NON facendolo a
lunghezza minima
La maggiore controindicazione della diminuzione di
VOL è data dal fatto che, richiedendo una minore
conduttività per il PMOS, causa anche un aumento
del tempo di propagazione LH
Courtesy of Massimo Barbaro
Consumo di potenza statico



Quando l’uscita è pari a VOL entrambi i transistor sono accesi e
scorre corrente (anche staticamente) fra alimentazione e massa.
Il consumo di potenza statica associata è dato dal prodotto della
corrente (che coincide con la corrente di saturazione del PMOS) per
l’alimentazione
La riduzione di VOL comporta la riduzione della corrente di
saturazione del PMOS, il che comporta anche una diminuzione della
potenza dissipata. La controindicazione è l’aumento del tempo di
propagazione LH (determinato proprio dalla corrente di saturazione
del PMOS).
Courtesy of Massimo Barbaro
Tempo di propagazione
I tempi di propagazione HL e LH sono differenti:
 tpHL è determinato dalla rete PDN e può essere valutato con la
solita formula
0.69 ∙
∙
 Da notare che, in realtà, il tempo di propagazione è leggermente più alto
perché dato che il PMOS è sempre acceso la scarica è ostacolata dalla
corrente di saturazione del PMOS

tpLH è determinato dal transistor PMOS di pull-up che carica la
CL con una corrente circa costante (la corrente di saturazione
del pmos.
Courtesy of Massimo Barbaro
Esempio: NAND
La rete PDN porta a 0 l’uscita
solo se A e B sono entrambi
1, in tutti gli altri casi l’uscita è
portata a 1 dal pmos di pull-up
Courtesy of Massimo Barbaro
Pseudo-NMOS: caratteristiche



E’ una logica a rapporto, dove cioè il rapporto fra le
dimensioni dei transistor determina le caratteristiche
statiche (VOL)
Il PMOS di pull-up ha specifiche contraddittorie:
dovrebbe essere poco conduttivo (kp<<keqN) per
minimizzare VOL e il consumo di potenza statico ma
dovrebbe anche essere molto conduttivo per
minimizzare il tempo di propagazione LH (caricare
rapidamente CL)
E’ comunque una logica statica perché l’uscita è
sempre connessa a VDD o 0
Courtesy of Massimo Barbaro
Vantaggi delle logiche pseudo-NMOS

Osservando che:
 Il numero totale di transistor è N+1 (con N numero di ingressi)
 Ogni porta pseudo-NMOS, avendo come carico un’altra porta
pseudo-NMOS, dovrà pilotare un solo transistor (poiché non c’è la
PUN, bisogna pilotare il solo transistor della PDN)

Risulta che:
 E’ minore il numero di capacità parassite interno alla porta logica.
 E’ minore il valore della capacità di carico (dato che bisogna
pilotare solo un NMOS e non la coppia PMOS-NMOS)
Dunque è minore il tempo di propagazione
Courtesy of Massimo Barbaro
Svantaggi della logica pseudo-NMOS

Osservando che:
 La PUN è sempre accesa dunque quando l’uscita deve
essere bassa (ossia quando si accende anche la PDN)
esiste un percorso diretto fra alimentazione e massa.
 L’uscita bassa NON è pari a zero ma dipende dal rapporto
fra le dimensioni del PMOS e degli NMOS

Risulta che:
 Si ha dissipazione di potenza statica
 Si ha una riduzione del margine di rumore inferiore (in
caso di uscita bassa). Infatti per uscita bassa il PMOS e la
PDN conducono entrambi, quindi VOL≠0
Courtesy of Massimo Barbaro
Logica
Combinatoria
LOGICA A PASS
TRANSISTOR
Courtesy of Massimo Barbaro
Logica a pass-transistor


Visto che un MOS è equivalente ad un interuttore si può pensare di
realizzare una funzione logica semplicemente scegliendo, a seconda
della combinazione in ingresso, cosa fare passare in uscita fra 1 e 0.
E’ NECESSARIO che almeno uno dei percorsi sia chiuso in modo che
il valore dell’uscita sia determinato in ogni istante
X1
X2
X3
Rete di
interruttori
F(X1,X2,X3)
Può essere sostituito da un semplice buffer, cioè una porta non invertente
col solo compito di isolare l’uscita dall’ingresso (un buffer NON invertente
sono 2 inverter in cascata).
Courtesy of Massimo Barbaro
Esempio

La porta F=AB può essere realizzata così:
Se B=1 passa A (quindi 0 o a seconda del
valore di A). Il secondo percorso è
necessario per garantire una logica
statica, cioè un percorso a bassa
impedenza fra l’uscita e 0 o VDD per
qualunque configurazione di ingresso

La porta F=(AB)’ può essere realizzata così:
Courtesy of Massimo Barbaro
Esempio: multiplexer


La logica a pass-transistor è particolarmente adatta alla
realizzazione di multiplexer.
Nel caso di un multiplexer 2x1 (due ingressi A e B e 1 ingresso
di selezione S), la cui espressione logica è F=AS’+BS si ha la
seguente implementazione:
A
0
B
F
1
S
Se S=0 passa A (quindi 0 o 1 a seconda del valore di A).
Se S=1 passa B ( quindi 0 o 1 a seconda del valore di B).
Simbolo Multiplexer
Courtesy of Massimo Barbaro
Esempio: multiplexer 4x1

Nel caso di un multiplexer 4x1 (mux4x1) in cui gli
ingressi di selezione sono 2 bit (S1 e S0):
S1
S0
Z
0
0
A
0
1
B
1
0
C
1
1
D
Courtesy of Massimo Barbaro
Logica a pass-transistor: sintesi




Il meccanismo è quello di costruire un diverso
percorso per le varie combinazioni di ingressi (non
necessariamente tutte, ma quelle mutuamente
esclusive).
A seconda della combinazione di ingresso uno ed
uno solo dei percorsi si chiuderà.
Tale percorso porterà in uscita uno degli ingressi
Il meccanismo è particolarmente indicato nella
realizzazione di circuiti di selezione (come i
mutliplexer)
Courtesy of Massimo Barbaro
Realizzazione degli switch

Gli interruttori potrebbero essere realizzati con dei
singoli MOS.
Il transistor MOS è un dispositivo simmetrico, dunque non si può definire uno dei due terminali souce o
drain senza sapere il verso della corrente.
Il source è il terminale verso cui è diretta la corrente. Dunque a seconda di come scorre la corrente
cambia la caduta di potenziale che devo considerare (VGS) per verificare se il transistor è acceso o
spento.
Courtesy of Massimo Barbaro
Realizzazione degli switch

Un singolo transitor non è in grado di trasferire in
modo perfetto l’informazione.
In questo caso, infatti:
VGS = VDD – Y
Il transistor si spegne quando:
VGS < VTN
Ossia
Y > VDD – VTN
Lo NMOS ha problemi nel trasferire le tensioni alte. La
massima tensione che compare su Y prima che lo switch si
interdica è VDD– VTN
Courtesy of Massimo Barbaro
Realizzazione degli switch

Il PMOS ha evidentemente il problema opposto.
In questo caso, infatti:
VSG = Y – 0 = Y
Il transistor si spegne quando:
VSG < VTP
Ossia
Y < |VTP|
Il PMOS ha problemi nel trasferire le tensioni basse. La minima
tensione che compare su Y prima che lo switch si interdica è |VTP|
Courtesy of Massimo Barbaro
Problemi con switch singoli

Un 1 “sporco” causa un consumo di potenza statico nell’inverter
che segue l’interruttore. Infatti il PMOS sarà sull’orlo della
conduzione ed avrà una corrente non nulla
Courtesy of Massimo Barbaro
Transmission gate

La soluzione al problema è l’uso dei transmission gate

Il PMOS è pilotato dal segnale di ingresso del NMOS invertito. Il
PMOS si occupa di correggere gli 1 “sporco” e lo NMOS di
correggere gli 0 “sporchi”.
Svantaggi: ho bisogno del PMOS e del segnale invertito

Courtesy of Massimo Barbaro
Esempio: multiplexer

Realizzazione di un multiplexer a 2 ingressi (un bloccoche, in
base ad un segnale di selezione S sceglie se fare passare A o
B)
Courtesy of Massimo Barbaro
Logica
Combinatoria
LOGICHE DINAMICHE
Courtesy of Massimo Barbaro
Logiche dinamiche



Le logiche dinamiche sono logiche in cui le uscite
non sono sempre connesse ad una delle
alimentazioni.
L’informazione viene temporaneamente
immagazzinata sotto forma di carica elettrica su un
capacitore.
In genere sono logiche temporizzate, in cui cioè si
alternano fasi di valutazione della funzione logica e di
memorizzazione sulle capacità
Courtesy of Massimo Barbaro
Concetto di base (Φn)
Courtesy of Massimo Barbaro
Concetto di base (Φn): precarica
PRECARICA
Φ=0
Il PMOS è acceso e
cortocircuita l’uscita a VDD.
Lo NMOS è spento ed
interdice il percorso verso
massa.
Il capacitore si carica a
VDD
Courtesy of Massimo Barbaro
Concetto di base (Φn): valutazione
VALUTAZIONE
Φ=1
Il PMOS è spento ed interdice il
percorso
verso VDD. Lo NMOS è acceso
ed abilita il percorso verso
massa. Se la combinazione di
ingresso è tale da chiudere un
percorso
nella PDN il capacitore si scarica
verso massa.
Courtesy of Massimo Barbaro
Concetto base (Φn)


Quando il segnale Φ (detto segnale di clock) è
basso la PDN è disabilitata (lo NMOS apre il
percorso a massa) ed il PMOS carica la CL in uscita
a VDD
Quando Φ è alto il PMOS si interdice e la PDN è
abilitata, quindi l’uscita potrà andare a 0 (se PDN si
chiude) o restare a 1 (altrimenti) Il funzionamento è
quindi sincronizzato dal segnale Φ e le operazioni
sono divise in 2 fasi
 Precarica (Φ = 0)
 Valutazione (Φ = 1)
Courtesy of Massimo Barbaro
Concetto di base (Φp)
La stessa cosa si può
fare con una PUN. Le
fasi saranno ovviamente
invertite.
Courtesy of Massimo Barbaro
Caratteristiche






Sono necessari solo N+2 transistor
Ogni ingresso vede il carico di un solo MOS.
Non è una logica a rapporto.
Non c’è dissipazione di potenza statica (il percorso
statico fra VDD e massa è sempre interdetto).
La PDN (o PUN) può essere realizzata come nel
caso del CMOS statico (quindi implementa solo
funzioni invertenti).
E’ più veloce e compatta dell’equivalente CMOS
statico (meno capacitori parassiti e minor carico
dovuto alla presenza di un solo gate anzi che due).
Courtesy of Massimo Barbaro
Prestazione statiche





Il maggiore problema delle logiche dinamiche è
l’immunità al rumore.
Poiché la commutazione dipende da soli transistor
NMOS si può dire che VM, VIL e VIH coincidono con
VT (tensione di soglia)
Questo rende i margini di rumore molto bassi
Inoltre il fatto che l’uscita alta sia immagazzinata
come carica su una capacità rende il circuito molto
sensibile a disturbi (accoppiamenti capacitivi).
La presenza di correnti di leakage può scaricare
inavvertitamente l’uscita alta.
Courtesy of Massimo Barbaro
Soglia logica
Visto che il PMOS è
spento l’uscita è
disconnessa da VDD.
Basta allora che,
all’aumentare di VIN, si
crei un percorso
conduttivo verso massa,
ossia che lo NMOS si
accenda anche di poco
(VIN appena al di sopra
della tensione di soglia
VTH) perché l’uscita vada
a 0.
Courtesy of Massimo Barbaro
Prestazioni dinamiche


Il tempo di propagazione LH è zero! Questo perché
la fase di precarica pone già a 1 l’uscita prima ancora
della valutazione
In realtà bisognerebbe tenere conto dell’incidenza
della precarica nel tempo totale di valutazione. In
molti progetti però questa fase può essere fatta
coincidere con fasi in cui comunque la logica non
dovrebbe funzionare (ad esempio in un processore,
mentre avviene la decodifica dell’istruzione) e quindi
è realistico pensare che la precarica non incida sul
ritardo totale.
Courtesy of Massimo Barbaro
Cause di rumore




Le correnti di perdita (leakage) attraverso la PDN possono
scaricare l’uscita quando deve essere alta diminuendo
l’affidabiltà del circuito
Clock feedthrough: il segnale di clock (Φ ) varia rapidamente
quindi può, per accoppiamento capacitivo, deteriore il segnale
alto immagazzinato sulla capacità.
Charge sharing: se anche il percorso a massa attraverso la
PDN non si chiude può capitare che qualche segnale di
ingresso intermedio si chiuda mettendo CL in parallelo con altre
capacità e diminuendo il valore alto immagazzinato 
TRASFERIMENTO DI CARICA
In generale il segnale di uscita più sensibile ai disturbi è quello
alto perché è memorizzato sulla capacità senza percorsi a
bassa impedenza verso VDD
Courtesy of Massimo Barbaro
Logiche dinamiche in cascata (1)

Mettere due blocchi in cascata può comportare
problemi di distruzione del segnale
Se in corrispondenza degli
ingressi deve essere OUT1=0
(e OUT2=1) possono verificarsi
problemi. Infatti all’inizio della
valutazione OUT1=1
(precarica). Tale
valore potrebbe fare
commutare OUT2 a 0 se la
PDN1 non è abbastanza
veloce nello scaricare OUT1
Courtesy of Massimo Barbaro
Logiche dinamiche in cascata (2)

Esempio
 OUT1 = (AB)’
 OUT2 = ( OUT1 + C)’ = ( (AB)’ + C)’
Questo circuito ha dei potenziali
problemi per alcune combinazioni
in cui l’uscita deve essere l’uscita
alta.
Ad esempio, la combinazione
A=1, B=1, C=0.
In tali condizioni dovrebbe
essere OUT1=0 e OUT2=1.
Courtesy of Massimo Barbaro
Logiche dinamiche in cascata (3)

A=1, B=1, C=0
 In precarica risulta OUT1=1 e OUT2=1.
 Al termine della precarica inizia la valutazione.
All’inizio della valutazione si chiudono M4
e M8.
Poiché OUT1 è precaricato a 1 si chiude il
percorso M6-M8 che tende a scaricare
OUT2.
Contemporaneamente si chiude il
percorso M2-M3-M4 che scarica OUT1.
Nel funzionamento corretto, quando OUT1
va a 0 apre il percorso M6-M8 lasciando
OUT2 a 1 come deve essere.
Courtesy of Massimo Barbaro
Logiche dinamiche in cascata (4)

Possibile malfunzionamento
Se la scarica attraverso il percorso
M6-M8 è più veloce della scarica
attraverso M2- M3-M4 il nodo OUT2
si scarica prima che OUT1 vada a 0.
Una volta che OUT2 si è scaricato,
l’uscita risulterà 0 e non sarà più
possibile riportarla é M5 è spento.
Dunque nel momento in cui OUT1
arriverà finalmente a 0, l’uscita OUT2
sarà
erroneamente pari a 0.
Courtesy of Massimo Barbaro
Logica DOMINO

Una possibile soluzione al problema è offerta dalle
logiche DOMINO
La presenza dell’inverter
impedisce che OUT1=1 in
precarica scarichi
inavvertitamente OUT2.
Infatti quando OUT1 è
precaricato a 1 in ingresso alla
PDN di OUT2 c’è uno 0 che NON
può chiudere due percorsi di
scarica.
La logica è detta domino
perché la valutazione della prima
PDN innesca l’eventuale
commutazione della seconda
PDN e così via
Courtesy of Massimo Barbaro
Logiche DOMINO: caratteristiche
Possono implementare solo funzioni non
invertenti (per la presenza dell’inverter)
 Sono molto compatte e veloci
 Vengono utilizzate nella realizzazione di
blocchi logici critici (ALU di processori ad
alte prestazioni)

Courtesy of Massimo Barbaro