Elettronica dei Sistemi Digitali – Sintesi di porte logiche

Transcript

Elettronica dei Sistemi Digitali – Sintesi di porte logiche
Elettronica dei Sistemi Digitali –
Sintesi di porte logiche combinatorie
“fully CMOS”
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 – Sintesi di porte logiche combinatorie “fully CMOS” – p. 1
Porte logiche “fully CMOS” (1/6)
Esercizio 1: Disegnare lo schema di un circuito “fully
CMOS” che riceve in ingresso una parola digitale a quattro
bit X = (x3 x2 x1 x0 ) e fornisce in uscita un bit y = 1 quando
l’ingresso X è la codifica binaria di una cifra decimale
compresa tra 0 e 9, e y = 0 in caso contrario.
Mappa di Karnaugh (in piccolo, i numeri in base 10):
x1 x0
x3 x2
00
01
11
10
00
01
11
10
1
(4)10 1
(12)10 0
(8)10 1
1
(5)10 1
(13)10 0
(9)10 1
1
(7)10 1
(15)10 0
(11)10 0
1
(6)10 1
(14)10 0
(10)10 0
(0)10
(1)10
(3)10
(2)10
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 2
1
Porte logiche “fully CMOS” (2/6)
Mappa di Karnaugh:
x3 x2
x1 x0
00 01 11 10
00
01
11
10
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
Osservando gli zeri nella mappa, si ricava:
y = x3 x2 x1 x0 + x3 x2 x1 x0 + x3 x2 x1 x0 + x3 x2 x1 x0 + x3 x 2 x1 x0 + x3 x2 x1 x 0
= x3 x2 x1 + x3 x2 x1 + x3 x2 x1
= x3 x2 + x3 x1 = x3 · (x2 + x1 )
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 3
Porte logiche “fully CMOS” (3/6)
Mappa di Karnaugh:
x3 x2
x1 x0
00 01 11 10
00
01
11
10
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
In modo analogo, osservando gli uni nella mappa, si ricava:
y = x3 + x2 · x1
che è la funzione duale di y = x3 · (x2 + x1 ).
Pull-up e pull-down sono duali; l’ingresso x0 è ininfluente.
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 4
2
Porte logiche “fully CMOS” (4/6)
Dalla funzione y = x3 · (x2 + x1 ) si ricava il pull-down (la parte
dei transistori NMOS):
prodotto logico (AND) → collegamento in serie
somma logica (OR) → collegamento in parallelo
y
x3
x2
x1
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 5
Porte logiche “fully CMOS” (5/6)
Nello stesso modo, dalla funzione y = x3 + x2 · x1 si ricava il
pull-up (la parte dei transistori PMOS), che è duale rispetto
al pull-down.
VDD
x2
x3
x1
y
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 6
3
Porte logiche “fully CMOS” (6/6)
VDD
x2
x3
x1
y
x3
x2
x1
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 7
Porte logiche simmetriche (1/4)
Esercizio 2: Disegnare lo schema di un circuito “fully
CMOS” che riceve in ingresso tre bit (a, b, c) e fornisce
all’uscita y il bit che si presenta in ingresso il maggior
numero di volte (decisore a maggioranza):
y=0
se {a, b, c} = {0, 0, 0} oppure {a, b, c} = {0, 0, 1}
y=1
se {a, b, c} = {0, 1, 1} oppure {a, b, c} = {1, 1, 1}
Mappa di Karnaugh:
a
bc
00 01 11 10
0
1
0
0
0
1
1
1
0
1
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 8
4
Porte logiche simmetriche (2/4)
Tabella della verità:
a
b
c
y
y
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
La tabella della verità è simmetrica, perché scambiando 1 e
0 rimane uguale a sé stessa.
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 9
Porte logiche simmetriche (3/4)
Il circuito decisore a maggioranza non è una porta
elementare CMOS, perché non è invertente
→ bisogna generare y e mettere in cascata un inverter
Una possibile realizzazione minima del pull-down è:
(y) = (a + b) · c + a · b
e fra le possibili realizzazioni del pull-up c’è:
y = (a + b) · c + a · b
Una funzione booleana simmetrica può essere realizzata
con un circuito CMOS avente pull-up e pull-down
simmetrici, oltre che con pull-up e pull-down duali.
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 10
5
Porte logiche simmetriche (4/4)
V DD
a
b
a
c
b
y
c
b
a
b
a
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 11
Schemi equivalenti
Quando una funzione logica può essere realizzata con più
schemi, si preferisce quello con il minor numero di
transistori in serie tra uscita e VDD , e tra uscita e GND.
V DD
a
V DD
c
a
b
c
b
a
a
b
b
y
c
a
y
b
b
c
a
a
2 PMOS tra y e VDD
b
b
a
3 PMOS tra y e VDD
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 12
6
Porte logiche “tri-state” (1/5)
Quando due o più porte logiche hanno le uscite collegate al
medesimo filo (“bus”), al massimo una sola delle porte
logiche può essere attiva e portare il filo al valore logico
della propria uscita; tutte le altre porte logiche devono
essere nella condizione di alta impedenza (Z), cioè con
pull-up e pull-down entrambi spenti.
Una porta logica “tri-state” ha tre modi di fuzionamento:
pull-down acceso, pull-up spento → uscita a 0
pull-down spento, pull-up acceso → uscita a 1
pull-down spento, pull-up spento → uscita in alta
impedenza (Z)
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 13
Porte logiche “tri-state” (2/5)
Esercizio 3: Disegnare lo schema di un inverter “tri-state”
che riceve, oltre al bit di ingresso a, un bit di “enable” e.
L’uscita y deve essere in alta impedenza (y = Z) quando
e = 0, mentre deve essere y = a quando e = 1.
a
e
y
Tabella della verità:
a
e
y
0
0
1
1
0
1
0
1
Z
1
Z
0
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 14
7
Porte logiche “tri-state” (3/5)
Nell’inverter “tri-state” pull-down e pull-up NON sono duali:
il pull-down deve essere acceso quando a = 1 ed e = 1
il pull-up deve essere acceso quando a = 0 ed e = 1
(cioè e = 0)
Occorre un inverter per generare il segnale e che deve
pilotare il pull-up.
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 15
Porte logiche “tri-state” (4/5)
VDD
a
e
y
e
a
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 16
8
Porte logiche “tri-state” (5/5)
Un’altra possibile soluzione è il circuito:
VDD
a
e
y
a
e
in cui al normale inverter CMOS viene messa in cascata
una coppia di transistori MOS pilotati dai segnali opposti e
ed e.
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 17
Interruttori CMOS (1/2)
e
x
y
e
La coppia di transistori MOS pilotati dai segnali opposti e ed
e si comporta da interruttore:
quando e = 1 (ed e = 0) entrambi i transistori MOS
sono accesi, e quindi y = x;
quando e = 0 (ed e = 1) entrambi i transistori MOS
sono spenti, e quindi y è isolato da x.
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 18
9
Interruttori CMOS (2/2)
e
x
y
e
Come interruttore, si usa una coppia di transistori MOS
complementari anziché un solo transistore, perché:
il transistore NMOS conduce bene quando e = 1 e
x = 0;
il transistore PMOS conduce bene quando e = 0 e
x = 1.
Infatti, questi sono i casi in cui le tensioni vGS dei due
transistori hanno il massimo valore assoluto.
Elettronica dei Sistemi Digitali – Sintesi di porte logiche combinatorie “fully CMOS” – p. 19
10