Algebra di Boole e circuiti logici

Algebra di Boole
e circuiti logici
Progetto Lauree Scientifiche 2009
Dipartimento di Fisica – Università di Genova
Laboratorio di Fisica
in collaborazione con il Liceo Scientifico Leonardo da Vinci
Genova - 23 novembre 2009
Edgardo Smerieri
Cosa faremo oggi ?
•
•
•
Veloce riassunto dell’algebra di Boole:
– senza alcuna dimostrazione
– senza pretesa di completezza
– con approfondimenti su richiesta
Utilizzo della breadboard (basetta per circuiti elettrici senza
saldature)
Esperienze
1.
2.
3.
4.
5.
6.
Minimizzazione di una funzione logica
Realizzazione di un circuito a LED per evidenziare lo stato di una
porta logica
Realizzazione del circuito aritmetico Half Adder
Realizzazione del circuito aritmetico Full Adder
Minimizzazione di una funzione generica e realizzazione del circuito
logico relativo
Realizzazione di un circuito logico mediante la sintesi con porte NAND
2
1
Funzioni e variabili booleane
A,B,C,D etc. variabili booleane
a,b,c,d etc. funzioni booleane
Le funzioni e le variabili booleane hanno due soli valori
1-0
•
•
•
•
Una funzione è definita tramite una tabella che riporta il valore assunto
dalla funzione in corrispondenza di tutti i possibili valori delle variabili; essa
viene detta tabella della verità
Una funzione è completamente specificata se il suo valore è specificato
in corrispondenza di tutti i possibili valori delle variabili
Una funzione è non completamente specificata se il suo valore non è
specificato in corrispondenza di alcun i possibili valori delle variabili;
Condizioni indifferenti sono dette quelle per cui non è specificato il valore
della funzione; ciò viene indicato con “ x ” nella tabella della verità
3
Tabella della verità di una funzione
C B A
f
C B A
g
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
x
1
0
x
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
Esempio di funzione
non completamente specificata
Esempio di funzione
completamente specificata
4
2
Funzioni e variabili booleane
1. Le funzioni booleane possono scriversi in forma algebrica o
sotto forma di tabella della verità.
2. Una funzione è identificata in maniera univoca dalla sua
tabella della verità.
3. Due funzioni (algebricamente espresse in maniera diversa)
sono equivalenti se hanno la stessa tabella della verità.
5
Numero di variabili e numero di funzioni
Le funzioni e le variabili booleane hanno due soli valori
Il numero delle righe (combinazioni delle variabili) nella
tabella della verità è
Combinazioni = 2 n
Il numero delle funzioni possibili è finito ed è
Funzioni = 2 2
n
n è il numero delle variabili
6
3
Funzioni di una variabile
Il numero delle funzioni possibili è finito ed è pari a 4
f0 = 0
A
f0
f1
f2
f3
0
0
1
0
1
1
0
0
1
1
f2 = A
f1 = A
NOT
f3 = 1
7
IDENTITA’
Funzioni di due variabili
Il numero delle funzioni possibili è finito ed è pari a 16
B A
f0
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
f15
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
NOR
AND
EX- OR
NAND EX- NOR
OR
8
4
Funzione OR o somma logica
B A
f
0
0
0
0
1
1
1
1
0
1
1
1
f = B+ A
La funzione OR (inclusivo) ha il valore “1” quando
almeno una delle variabili ha il valore “1”
9
Funzione AND o prodotto logico
B A
f
0
0
0
0
1
0
1
1
0
1
0
1
f = B ⋅ A = BA
La funzione AND ha il valore “1” solo quando
tutte le variabili hanno il valore “1”
10
5
Funzione NOR
B A
f
0
0
1
0
1
0
1
1
0
1
0
0
f = B+ A
NOR corrisponde ad una operazione NOT applicata
al risultato di un’operazione OR
La funzione NOR ha il valore “0” quando
almeno una delle variabili ha il valore “1”
11
Funzione NAND
B A
f
0
0
1
0
1
1
1
1
0
1
1
0
f = B ⋅ A = BA
NAND corrisponde ad una operazione NOT applicata
al risultato di un’operazione AND
La funzione NAND ha il valore “0” solo
quando tutte le variabili hanno il valore “1”
12
6
Funzione EX-OR
B A
f
0
0
0
0
1
1
1
1
0
1
1
0
f = B⊕ A
f = B A+ B A
Per due variabili la funzione EX-OR (OR esclusivo) ha il valore “1” quando
le variabili hanno valori diversi tra loro
L’operazione EX-OR si chiama anche operazione DISPARITA’ perché per
più variabili essa ha il valore “1” quando un numero dispari di variabili ha il
valore “1”
13
Funzione EX-NOR
B A
f
0
0
1
0
1
0
1
1
0
1
0
1
f = B⊕ A
f = B A+ B A
Per due variabili la funzione EX-NOR (NOR esclusivo) ha il valore “1” quando
le due variabili hanno lo stesso valore
L’operazione EX-NOR si chiama anche operazione PARITA’ perché per più
variabili essa ha il valore “1” quando un numero pari di variabili ha il valore “1”
14
7
Porte logiche universali
•
Tutte le funzioni possono essere scritte algebricamente utilizzando
solo le funzioni NOT – OR – AND
•
Altri insiemi funzionalmente completi sono costituiti da:
– { NOT , OR }
– { NOT , AND }
– { NOR }
– { NAND }
Le porte NAND e NOR sono dette porte logiche universali in quanto è
possibile scrivere qualsiasi funzione utilizzando solo porte NOR oppure
solo porte NAND
15
Alcuni teoremi
A+0 = A
A +1 = 1
A+ A = A
A⋅0 = 0
A+ A =1
A⋅ A = 0
A ⋅1 = A
A⋅ A = A
A= A
A + AB = A
A + AB = A + B
( A + B )( A + C ) = A + BC
Teoremi di De Morgan
C + B+ A = C⋅B ⋅A
CB A=C+B +A
16
8
Problematiche
Tabella della verità
Funzione algebrica
Circuito logico
1.
2.
Dal circuito logico alla tabella della verità
Dal circuito logico alla funzione algebrica
3.
4.
Dalla funzione algebrica al circuito logico
Dalla funzione algebrica alla tabella della verità
5.
6.
Dalla tabella della verità alla funzione algebrica
Dalla tabella della verità al circuito logico
17
Dal circuito logico alla tabella della verità
C B A
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
f
1
1
18
9
Dal circuito logico alla funzione algebrica
X =C⊕B
Y =X+A
Z = XA
f = ZY
f = [(C ⊕ B ) ⋅ A]⋅ [(C ⊕ B ) + A]
19
Dalla funzione algebrica al circuito logico
(
f = CA + BA + C ⊕ B ⋅ A
)
primo passo
secondo passo
terzo passo
quarto passo
circuito finale
20
10
Dalla funzione algebrica alla tabella della verità
f = C B + A + CBA
C B A C B A CBA
f
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
21
Dalla tabella della verità alla funzione algebrica
Dalla tabella della verità al circuito logico
•
Il problema che ci poniamo ora è il seguente: data la tabella della
verità di una funzione
– come si scrive algebricamente la funzione ?
– come è fatto il circuito che implementa la tabella della verità ?
•
Il problema è di facile soluzione ricorrendo alla forma canonica sia per
l’espressione algebrica sia per il circuito logico
•
Algebricamente la funzione in forma canonica si scrive in due modi
– Somma di prodotti
– Prodotti di somme
•
Circuitalmente la funzione in forma canonica è costituita da una
struttura a due livelli
22
11
Importanza della forma canonica
Tabella
della
verità
Espressione algebrica in
forma canonica
Circuito logico in
forma canonica
Il passaggio dall’uno all’altro è facile ed immediato
23
Mintermini e Maxtermini
C
B
A
Mintermine
0
0
0
m0
CBA
M0
C+B+ A
0
0
1
m1
M1
0
1
0
m2
C+B+ A
C+B+ A
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
m3
m4
m5
m6
m7
C BA
CB A
C BA
CBA
C BA
CB A
CBA
Maxtermine
M2
M3
M4
M5
M6
M7
C+B+ A
C+B+ A
C+B+ A
C+B+ A
C+B+ A
24
12
Forma canonica Somma di Prodotti
f =
∑m
dove la funzione vale 1
i
La funzione algebrica espressa nella forma canonica Somma di Prodotti è
data dalla somma dei mintermini corrispondenti alle righe della tabella
della verità dove la funzione ha il valore 1
Forma canonica Prodotto di Somme
f =
∏M
i
dove la funzione vale 0
La funzione algebrica espressa nella forma canonica Prodotti di Somme è
data dalla prodotto dei maxtermini corrispondenti alle righe della tabella
della verità dove la funzione ha il valore 0
25
Forma canonica – Somma di Prodotti
Esempio
C
B
A
f
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
f = m2 + m3 + m7
f = C B A + C BA + CBA
26
13
Forma canonica – Prodotto di Somme
Esempio
C
B
A
f
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
f = M2 ⋅M4 ⋅M6
f = (C + B + A) ⋅ (C + B + A) ⋅ (C + B + A)
27
Mappe di Karnaugh
DC
BA
00
01
11
10
BA
00
00
C
01
0
11
1
01
11
10
10
I valori delle variabili posti ai bordi della mappa sono scritti in modo tale che
passando da una colonna ad una adiacente, oppure da una riga ad una
adiacente, si ha il cambiamento di valore di una sola variabile
28
14
Mintermini e maxtermini e mappe di Karnaugh
DC
00
01
11
10
00
m0
m4
m12
m8
01
m1
m5
m13
m9
11
m3
m7
m15
m11
10
m2
m6
m14
m10
BA
BA
00
01
11
10
0
M0
M1
M3
M2
1
M4
M5
M7
M6
C
Caselle della mappa di K. a 3 variabili
e relativi maxtermini associati
Caselle della mappa di K. a 4 variabili
e relativi mintermini associati
Per ogni mintermine di una funzione espressa nella forma canonica
Somma di Prodotti c’è un “ 1 “ nella mappa di Karnaugh
Per ogni maxtermine di una funzione espressa nella forma canonica
Prodotto di Somme c’è uno “ 0 “ nella mappa di Karnaugh
29
Esempio di rappresentazione di una
funzione sulla mappa di Karnaugh
f = m5 + m6 + m7 + m10 + m12 + m13
f = DC B A + DCB A + DCBA + DC B A + DC B A + DC B A
30
15
Il problema della minimizzazione
•
L’importanza della forma canonica è legata alla semplicità con cui si passa
dalla tabella della verità alla funzione algebrica e al circuito che la realizza
e viceversa ma …..
•
La realizzazione circuitale in forma canonica non è la forma più semplice o
come si dice “minima” con cui implementare una data funzione; si pone
quindi il problema di trovare quali altri circuiti permettano di ottenere
quanto richiesto ma in modo più semplice
Metodo algebrico
Metodo delle mappe di Karnaugh
31
Un esempio di minimizzazione
f = m5 + m7 = DC B A + DCBA = DCA( B + B ) = DCA
32
16
Un altro esempio di minimizzazione
f = m1 + m3 + m9 + m11 = DC B A + DC BA + DC B A + DC BA =
= DC A( B + B ) + DC A( B + B ) = DC A + DC A =
= C A( D + D ) = C A
33
Regole per la minimizzazione
delle mappe di Karnaugh
1. Si devono raggruppare obbligatoriamente tutti gli “ 1 ” o gli “ 0 ” almeno una volta
2. Si possono raggruppare gli “ 1 ” e/o gli “ 0 ” più di una volta purché appartenenti
ad implicanti non “coperti”
3. I raggruppamenti sono riferiti a caselle adiacenti considerate a blocchi di 2n caselle
4. Si devono fare i raggruppamenti più grandi possibili, ciò al fine di ridurre il numero
di variabili e quindi di ingressi
5. Si devono fare i raggruppamenti nel minor numero possibile, ciò al fine di ridurre il
numero di porte
6. In base al valore che la funzione ha nel raggruppamento e in conformità a come si
vuole esprimere algebricamente la funzione medesima si può avere
–
–
–
–
raggruppando gli “ 1 ” ed esprimendo la funzione con mintermini →
raggruppando gli “ 0 ” ed esprimendo la funzione con mintermini →
raggruppando gli “ 0 ” ed esprimendo la funzione con maxtermini →
raggruppando gli “ 1 ” ed esprimendo la funzione con maxtermini →
f
/f
f
/f
7. Si utilizzano i valori indifferenti della funzione (indicati di solito con “ x ”) soltanto
se questi servono per semplificare la funzione minimizzata
34
17
Alcuni aspetti fisici delle porte logiche
Famiglie Logiche
•
•
•
•
•
•
•
•
•
•
Tecnologia delle porte logiche
Tensione di alimentazione
Tensioni tensioni d’ingresso e d’uscita
Correnti d’ingresso e d’uscita
Tipologia del circuito d’uscita d’uscita
Ritardo di propagazione
Fan-out e Fan-in
Potenza dissipata
Frequenza massima di lavoro
Etc. etc.
35
Logica Positiva e Logica Negativa
B A
f
B A
g
L L L
0
0
0
1
1
1
L H L
0
1
0
1
0
1
H L L
H H H
1
1
0
1
0
1
0
0
1
0
1
0
B A
f
L=0
H=1
AND in Logica Positiva
Tabella della verità del costruttore
dove L ed H sono livelli di tensione
L=1
H=0
OR in Logica Negativa
36
18
Valori logici e grandezze fisiche
La domanda che ci poniamo ora è:
– Un livello logico L (LOW) corrispondente al un valore basso di tensione
a che valore di tensione corrisponde ?
– Un livello logico H (HIGH) corrispondente ad un valore alto di tensione a
che valore di tensione corrisponde ?
Logic H
Logic L
Tensione HIGH
Tensione LOW
37
Caratteristica di una porta logica (NOT)
Vout
VOH
VOL
VOL
VIL VIH
VOH
Vin
La tensione VOL è la massima tensione d’uscita da una porta logica a livello logico
basso
La tensione VIL è la massima tensione d’ingresso ad una porta logica che viene
riconosciuta ancora come livello logico basso
La tensione VIH è la minima tensione d’ingresso ad una porta logica che viene
riconosciuta come livello logico alto
La tensione VOH è la minima tensione d’uscita da una porta logica a livello logico alto
38
19
Livelli di una porta TTL
Vout
VOH
VOL
VOL
VIL VIH
VOH
5V
Vin
5V
HIGH
HIGH
2.4V
VIH
2.0V
Funzionamento
non prevedibile
0.8V
VOH
Funzionamento
non prevedibile
VIL
VOL
0.4V
LOW
0V
0V
Ingresso
LOW
Uscita
La famiglia TTL ha una tensione fissa di alimentazione pari 5V
39
Livelli di una porta CMOS
Vout
VOH
VOL
VOL
VIL VIH
5V
VOH
Vin
5V
4.9V
HIGH
HIGH
VIH
3.5V
VOH
Funzionamento
non prevedibile
Funzionamento
non prevedibile
VIL
1.5V
LOW
0V
Ingresso
VOL
0.1V
0V
LOW
Uscita
La famiglia CMOS ha come tensioni di alimentazione tipiche 5V-10V-15V
40
20
41
42
21
43
Identificazione dei pin dei C.I.
top view
44
22
1a Esperienza - Minimizzazione
C
B
A
f
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
x
0
0
1
1
-
Realizzare la mappa di Karnaugh
corrispondente
-
Minimizzare la funzione mediante la
mappa di Karnaugh sia come somma
di prodotti che come prodotto di
somme
-
Disegnare i due circuiti corrispondenti
alle diverse funzioni minimizzate
45
2a Esperienza
Accensione e spegnimento di un LED
Serve per fornire un livello di tensione
HIGH o LOW ad una porta TTL
Serve per evidenziare lo stato
di uscita di una porta TTL
46
23
Accensione e spegnimento di un LED
Realizzazione circuitale
47
3a Esperienza
Half Adder
Input
Output
Somma Aritmetica di due bit
B
A
C
S
0
0
0
0
0
1
0
1
0+0=0
0+1=1
1+0=1
1 + 1 = 0 con riporto di 1 a sinistra
1
1
0
1
0
1
1
0
S = B⊕ A
C = BA
48
24
Half Adder – Realizzazione circuitale
Gli ingressi Bi e Ai vanno collegati agli
interruttori, le uscite di somma e
riporto ai LED come nell’esperienza
precedente
49
4a Esperienza - Full Adder ad 1 bit
Riporto in ingresso
Addendi
Ci Bi Ai Ci+1
Si
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
Riporto in uscita
Somma
Bi Ai
Ci
Full Adder
a 1 bit
Ci +1
Si
50
25
Full Adder ad 1 bit
Realizzazione con Half Adder
Si propone una realizzazione circuitale non basata sulla forma
canonica e relativa minimizzazione
Ci +1 = Ci [Bi ⊕ Ai ] + Bi Ai
S i = Ci ⊕ Bi ⊕ Ai
51
Full Adder – Schema logico
52
26
Full Adder – Realizzazione del circuito
53
Full Adder – Collegamenti alimentazione
54
27
5a Esperienza
Realizzazione circuito minimizzato
C
B
A
f
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
x
0
0
1
1
Costruire il circuito minimizzato che
realizza
la
tabella
di
verità
dell’esperienza N°1 (riportata a lato) e
verificarne il funzionamento.
55
6a Esperienza
Minimizzazione con porte NAND
C
B
A
f
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
x
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
Partendo dal circuito minimizzato della
esperienza N°5 (si riporta la tabella della verità) :
-
dimostrare che il circuito può essere realizzato
utilizzando solo porte universali NAND
-
costruire il circuito solo con porte NAND
-
verificarne il funzionamento
Suggerimento: teoremi di De Morgan
56
28
Pin-Out dei C.I. per le esperienze
74LS08
AND
74LS32
OR
74LS00
NAND
74LS02
NOR
74LS86
XOR
74LS04 – 74LS05
Inverter
57
29