La descrizione algebrica delle reti combinatorie

ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
La descrizione algebrica delle reti combinatorie
Esaminiamo ora il modello matematico che ci permetta di discorrere in modo efficiente di reti
combinatorie, e alcune rappresentazioni grafiche connesse al modello.
L’algebra delle reti logiche
L’algebra che andiamo ad esaminare è un’ALGEBRA DI BOOLE. Essa opera su variabili che assumono, a
seconda delle circostanze, uno tra due valori (indicati con 0 e 1). Se una variabile ha sempre lo stesso
valore, essa è di fatto una costante.
L’insieme di due elementi {0, 1} e le tre operazioni di somma logica, prodotto logico e negazione che
operano su variabili (che assumono i valori 0 o 1) e le costanti 0 e 1, definiscono quella particolare
algebra booleana chiamata algebra delle commutazioni.
Sono definite le seguenti operazioni - funzioni elementari - in maniera tabellare:
P1) - somma logica (OR): A + B = C
(L’operatore di somma logica si indica spesso con il segno “∨
∨“)
A
0
0
1
1
B
0
1
0
1
C
0
1
1
1
P2) - prodotto logico (AND): A • B = C
(L’operatore di prodotto logico si indica spesso con il segno “∧
∧“ e spesso esso viene anche omesso)
A B C
0 0 0
0 1 0
1 0 0
1 1 1
P3) - negazione (NOT): A’
(L’operatore di negazione si indica spesso con il segno “- oppure ¬“)
A A’
0 1
1 0
1
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Principio di dualità
L’algebra delle commutazioni è duale ovvero, sostituendo in una relazione vera (ad esempio 0 + 1 = 1)
la somma logica con il prodotto logico e viceversa e le costanti con le loro negazioni si ottiene una
relazione vera (nell’esempio 1 • 0 = 0).
Attenzione!!! Le variabili rimangono inalterate quando si applica il principio di dualità!!!
A questo punto si può passare ad esaminare alcune proprietà:
Proprietà
P4) -
Duali
speciali proprietà di zero e uno
(Limitazione Universale)
A+0 = A
A +1 = 1
P5) -
Idempotenza
P6) -
Complementazione
A+ A= A
A• A = A
A+ A =1
P7) -
A •1 = A
A•0 = 0
A• A = 0
Involuzione
A= A
P8) -
P9) -
autoduale
Proprietà Commutativa
A+ B = B + A
Proprietà Associativa
A • ( B • C ) = ( A • B) • C
P10) -Proprietà Distributiva
A • ( B + C ) = ( A • B) + ( A • C )
P11) –Assorbimento
A• B = B • A
A + ( B + C ) = ( A + B) + C
A + ( B • C ) = ( A + B) • ( A + C )
A + ( A • B) = A
A • ( A + B) = A
P12) -De Morgan
A +
B
=
A • B
A• B = A+ B
P13) –Fusione
( A • B ) + ( A • B) = A
( A + B) • ( A + B) = A
2
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
La dimostrazione può avvenire usando il metodo della perfetta induzione, che consiste nel verificarne
la validità per tutti i possibili casi.
DEFINIZIONI
• Si dice espressione logica un’espressione costituita da costanti binarie e variabili binarie, connesse
tra loro da connettori logici.
• Si dice lettera di un’espressione una variabile, affermata o complementata, dell’espressione stessa.
(Una stessa variabile, affermata e complementata, dà origine a due diverse lettere).
• Si dice termine prodotto di un’espressione un prodotto di lettere che compare nell’espressione.
• Si dice termine somma di un’espressione una somma di lettere che compare nell’espressione.
• Si dice funzione logica una funzione le cui variabili sono variabili binarie.
Teorema di De Morgan
A + B + C + .... = A • B • C • .......
ed il suo duale
A • B • C • .... = A + B + C + .......
[Il metodo di perfetta induzione non vale con n variabili. Si ricorre allora all’induzione finita (o
induzione matematica) che consiste nel verificare il Teorema per n = 2 e nel dimostrare che, supposto
che valga per n = j, allora vale anche per n = j + 1. Nel nostro caso, verificato che:
A1 + A 2 = A 1 • A 2
si suppone che valga:
A1 + A
2
Posto allora:
α = A1 +
α
=
A
1
+
A
3
+ .... + A
J
=
A
A
2
+ A
3
+ .... + A
• A
2
• A
3
• .... • A
1
• A
2
• A
3
• .... • A
J
J
J
3
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
si considera la somma negata di j+1 variabili:
A1 + A
2
+
A
3
+ .... + A
+ A
J
J + 1
= α
+ A
J + 1
Dal momento che il teorema è verificato per due variabili:
α
+ A
J + 1
= α
• A
J + 1
=
A
• A
1
2
• A
3
• .... • A
J
• A
J + 1
e ciò dimostra il teorema].
Teorema di De Morgan generalizzato
Data una funzione f (A1, A2, A3, ....., An, +, •)
f’(A1, A2, A3, ....., An, +, •) = f (A1’, A2’, A3’, ....., An’, •, +)
Espressione di una funzione logica
Una funzione logica può essere rappresentata mediante un’espressione logica oppure mediante una lista
dei valori che essa assume per ogni combinazione delle variabili (tabella delle combinazioni o tabella di
verità). Ad esempio, la funzione:
f = ( x ∨ y) ∧ z
può anche essere rappresentata dalla tabella:
0
1
2
3
4
5
6
7
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
4
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Sembrerebbe piuttosto pesante esprimere una funzione logica mediante una tabella di verità. Tuttavia le
tabelle di verità possono essere scritte in modo molto conciso (specifica decimale) listando i numeri delle
righe per cui l’uscita e’ uguale ad 1. Nel nostro caso:
f ( x, y,z ) = ∑ ( , , )
3
5
7
oppure, semplicemente:
∑3 ( 3 ,5 ,7 )
dove il pedice 3 sta ad indicare che si tratta di una funzione di tre variabili.
Come soluzione equivalente, si possono anche listare i numeri delle righe per cui la funzione vale 0:
f ( x , y , z ) = ∏ ( 0 ,1,2 ,4 ,6 )
o, in analogia a quanto detto sopra, scrivendo semplicemente:
∏3 ( 0 ,1,2 ,4 ,6 )
Nell’esempio precedente abbiamo visto come sia immediato scrivere la tabella di verità di una funzione a
partire dalla sua espressione logica: basta sostituire nell’espressione i valori delle variabili e calcolare i
corrispondenti valori dell’espressione.
Non altrettanto immediato è il cammino opposto che, partendo dalla tabella di verità, consente di
giungere ad una espressione logica della funzione. Come vedremo in seguito, la soluzione di questo
problema è estremamente importante dal momento che il modo più naturale per descrivere un problema
combinatorio è quello di scriverne la tabella di verità mentre la realizzazione della rete corrispondente si
basa sull’espressione logica della funzione.
OSSERVAZIONE: Mentre la tabella di verità di una funzione logica è unica, esistono più
espressioni logiche equivalenti ad essa.
5
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Teorema di espansione di Shannon
f(x, y,z.... ) = x f(1, y,z,... )+ x
×
×
f
(0, y,z,.... )
Come esempio di applicazione del Teorema, consideriamo una funzione di due variabili:
f(x, y) = x ⋅ f(1,y)+ x ⋅ f(0,y) =
= x ⋅ (y ⋅ f(1,1)+ y ⋅ f(1,0)+ x ⋅ (y ⋅ f(0,1)+ y ⋅ f(0,0)) =
= x ⋅ y ⋅ f(1,1)+ x ⋅ y ⋅ f(1,0)+ x ⋅ y ⋅ f(0,1)+ x ⋅ y ⋅ f(0,0)
Un termine prodotto che contenga tutte le variabili, affermate o complementate, della funzione prende il
nome di prodotto fondamentale o mintermine.
L’espressione di una funzione logica corrispondente alla somma dei suoi mintermini prende il nome di
somma canonica o forma canonica SP (somma di prodotti).
Riconsideriamo la precedente tabella di verità:
x y z
0 0 0 0
1
2
3
4
0
0
0
1
0
1
1
0
f
0
1 0
0 0
1 1
0 0
5 1 0 1 1
6 1 1 0 0
7 1 1 1 1
Otteniamo:
f = x⋅ y⋅z + x⋅ y⋅z + x⋅ y⋅z
Vale anche la formulazione duale:
f ( x, y , z ,....) = ( x + f (0, y, z ,...)) ⋅ ( x + f (1, y , z ,...))
6
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Esemplificando ancora una volta per una funzione a due variabili si ottiene:
f(x, y) = (x + f(0, y)) ⋅ x + f(1, y)) =
(
= x + (y + f(0,0)) ⋅ (y + f(0,1))) ⋅ x + (y + f(1,0)) ⋅ ( y + f(1,1))) =
(
= (x + y + f(0,0)) ⋅ (x + y + f(0,1))) ⋅ ( x + y + f(1,0)) ( x + y + f(1,1)))
×
Un termine somma che contenga tutte le variabili prende il nome di somma fondamentale o maxtermine.
L’espressione di una funzione logica corrispondente al prodotto dei suoi maxtermini prende il nome di
prodotto canonico o forma canonica PS (prodotto di somme).
Riconsideriamo la precedente tabella di verità:
x y z
0 0 0 0
f
0
1 0 0 1
2 0 1 0
0
0
3 0 1 1
4 1 0 0
1
0
5 1 0 1
6 1 1 0
1
0
7
1
1
1 1
Otteniamo:
f = ( x + y + z )⋅( x + y + z )⋅( x + y + z )⋅( x + y + z )⋅( x + y + z )
Riassumendo:
La forma canonica SP di una funzione logica si ottiene sommando tra loro tanti prodotti di tutte le
variabili quante sono le righe della tabella di verità per cui la funzione vale 1; in ciascuno di questi
prodotti le variabili compaiono affermate se il loro valore nella riga corrispondente è 1 negate nel
caso contrario.
7
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Esempio:
x
y
f
0 0
0
0
1
1
1
1
0
1
1
0
f = x⋅ y + x⋅ y
La forma canonica PS di una funzione logica si ottiene moltiplicando tra loro tante somme di tutte le
variabili quante sono le righe della tabella di verità per cui la funzione vale 0; in ciascuna di queste
somme le variabili compaiono affermate se il loro valore nella riga corrispondente è 0, negate nel caso
contrario.
Esempio
x
y
f
0 0
0
0
1
1
1 0
1 1
0
0
f = ( x + y )⋅( x + y )⋅( x + y )
8
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Forme semplificate di una funzione
Usando le proprietà dell’algebra booleana che abbiamo riassunto in una tabella in precedenza è possibile
semplificare una funzione espressa in forma canonica.
Esempio:
f = xyzw + xyzw + xyzw + xyzw + xyzw =
= xyzw + xyzw + xyzw
+
xyzw
+
xyzw
+
xyzw
+
xyzw
+
xyzw
=
ma noi sappiamo che:
xyzw + xyzw = xyz
xyzw + xyzw = xyw
xyzw + xyzw = yzw
xyzw + xyzw = xyw
pertanto:
f = xyz + xyw + yzw + xyw
f = xyz + xy + yzw
f = xy + yzw
Si può passare semplicemente da una forma ridotta alla forma canonica ricordando che:
xy = xy( z + z ) = xyz + xyz
9
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
ESPRESSIONE GRAFICA DI FUNZIONI
Oltre che da un’espressione tabellare e funzionale, le funzioni logiche possono essere rappresentate
graficamente
Un’espressione grafica particolarmente utile per funzioni con limitato numero di variabili fu sviluppata
da Maurice Karnaugh negli AT&T Bell Laboratories nel corso degli anni 50.
Definite adiacenti due configurazioni di variabili che differiscono per un valore di queste, tale concetto di
adiacenza si trasporta immediatamente nel concetto di adiacenza fra caselle di una mappa etichettate con
il valore delle variabili.
Ad esempio, per n = 3.
100
101
000
001
110
010
111
011
xy
Z
00 01 11 10
C
1 E A B F
0
Per conservare le proprietà di adiacenza, occorre immaginare la mappa avvolta ad un cilindro, sia
orizzontalmente che verticalmente, con i lati opposti che si toccano. Così le caselle E ed F della figura
precedente saranno adiacenti e, analogamente, per n=4, saranno adiacenti le caselle A e B della figura
sottostante:
WX
00 01 11
YZ
00
10
A
01
11
10
B
10
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
L’utilità delle mappe di Karnaugh si arresta per n = 5, caso in cui la situazione diviene quella di figura, in
cui l’adiacenza si estende alle caselle che differiscono per la quinta variabile w.
xy
00 01
zt
11 10
00
w=0
w=1
01
*
11
*
10
Qui di seguito si riportano alcune mappe di Karnaugh per 2, 3, 4 e 5 variabili con alcuni esempi di celle
adiacenti:
x
y
0
1
0
1
xy
a
Z
a
xy
00
zt
00 a
00 01 11 10
0
b
1
b
c
00 01 11
YZ
00
a
01 b
c
10
b
11
c
10
c
a
xy
01 11 10
a
01
b
11
b
10
zt
00 01 11
00
10
c
01
d
11
10
w=0
Sia
WX
d
c
w=1
g = xyzw una funzione di 4 variabili, costituita da un solo mintermine.
11
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
g è una funzione che ha un solo 1 nella tabella di verità; g vale uno infatti per la sola combinazione degli
ingressi 1110 (x=l, y=l, z=l, w=0) e sarà rappresentata da un 1 nella casella corrispondente della mappa
di Karnaugh.
Consideriamo ora un prodotto con una variabile in meno; la funzione
g1 = xyz = xyzw + xyzw
sarà rappresentata da due 1 in due caselle adiacenti della mappa di Karnaugh. Rappresenteremo g1 con
un rettangolo che contiene le due caselle adiacenti in una mappa di Karnaugh di 4 variabili.
Un prodotto di due variabili può essere espanso in 4 mintermini e sarà rappresentato da un rettangolo
che contiene quattro caselle adiacenti in una mappa di Karnaugh di 4 variabili.
g = xyz w , può essere esteso ad esempio alla funzione somma
Ciò che vale per un prodotto
s = x + y + z + w costituita da un solo maxtermine, operando sugli 0 della funzione e sui valori
complementati delle variabili.
b
0
a
b
1
0
a
0
1
0
1
1
1
a
0
a+b’
1
bc
bc
a
00
0
1
1
01
11
1
1
1
1
a
10
c
00
0
1
1
01
11
10
0
0
0
0
c’
ac’
bc
bc
00
a
01
11
0
10
1
1
1
ac
1
1
bc’
00
a
0
01
11
10
0
1
0
b+c
0
0
a’+c’
12
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
cd
00
ab
01
00
1
11
abc’
10
1
1
00
1
00
01
11
1
1
1
a’cd’
11
a’+b’+c
10
0
0
b+c+d’
0
00
1
01
11 10
0
0
01
b+d
b’
1
1
1
1
00
0
1
1
1
1
1
0
1
1
1
1
11
10
0
0
cd
1
01
b’c’
11
10
0
0
00
ab
cd
00
0
10
cd
11
ab
11
01
01
10
01
a+c’+d
ab’c’
cd
ab
1
00
00
1
01
cd
ab
11 10
1
1
01
11
10
00
0
0
0
01
0
0
0
11
0
0
0
0
0
0
ab
bd
00
10
c’
c+d’
13
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Implicanti di una funzione logica
(espressioni SP)
Definizione. Siano date due funzioni, Φ e Ψ , nelle stesse variabili. Si dirà allora che Φ è un implicante
di Ψ se, per ciascuna combinazione delle variabili per cui Φ = 1, anche Ψ = 1.
Diremo che un prodotto P è un implicante della funzione se ogni cella occupata da P contiene ( copre )
un 1 della funzione.
Proprietà 1: Una funzione f può sempre essere espressa da una somma di implicanti purché essi coprano
tutti gli 1 della funzione.
Definizione. Data una funzione espressa in forma normale SP, diremo che un termine prodotto (non
necessariamente appartenente all’espressione) è implicante principale o primo se:
a)
implica la funzione;
b) non esiste nessun termine della funzione che include questo termine.
(Per le funzioni espresse in PS si parla invece di implicati di una funzione quando ci si riferisce ad un
termine somma).
Proprietà 2: Per ogni funzione f esiste almeno un insieme di implicanti primi P = {p1+p2+......+pk} tale
che la funzione può essere espressa come:
f=p1 +p2 +......+ pk
[Una funzione è espressa da una somma di implicanti. Supponiamo che tra questi esistano degli
implicanti non primi. Allora per ciascuno degli implicanti non primi esiste un implicante primo che lo
include e che può essere sostituito nell’espressione della funzione.]
Deduzione degli implicanti primi
La mappa di Karnaugh di una funzione non è altro che una diversa rappresentazione della tabella di
verità .
Esempio:
f ( w, x, y, z ) = w • x • y • z + w • x • y • z + w • x • y • z + w • x • y • z + w • x • y • z
14
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
wx
00 01 11
yz
00 1
10
1
01
1
11
1
1
10
f = x• y • z + w• x• z + x • y • z
i cui termini sono tutti implicanti primi.
Il metodo delle mappe di Karnaugh consiste quindi nel contrassegnare i termini canonici che possono
combinarsi, tenendo presente che, se una serie di essi è contenuta in una serie più grande, solo
quest’ultima deve essere contrassegnata.
Esempio:
f(w,x,y,z)=w’x’y’z’+w’xy’z+w’xyz+wxyz+wxyz+wx’yz’+wx’yz
wx
00 01 11
yz
00 1
10
1
01
1 1
11
1 1
1
10
I termini corrispondenti ai contrassegni sono i primi implicanti e la funzione può essere scritta:
f=x’y’z’+xz+wyz
15
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Operatori e porte complesse
Ogni funzione logica può essere espressa in termini di operatori AND, OR e NOT.
Ma una qualsiasi delle due coppie di operatori (AND, NOT) oppure (OR, NOT) è sufficiente ad
esprimere una funzione. (De Morgan )
Inoltre ciascuna di tali coppie può essere combinata in un singolo operatore, rispettivamente NAND
(NOT AND) e NOR (NOT OR) definiti come segue:
NAND
NOR
A
B
A
B
A
B
A↓
↓B
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
NAND (indicato con “”) e NOR (indicato con “↓”) sono detti operatori universali.
Per dimostrare le affermazioni precedenti basta mostrare come gli operatori NOT, OR ed AND possano
essere espressi mediante gli operatori universali.
operatore NAND NOT
xx = (x x)’ = x’
OR
(xx)(yy)=(x’y’)’=x+y
AND
(xy)(xy)=((x y)’(x y)’)’=x y
operatore NOR NOT
x↓x = (x+x)’= x’
OR
(x↓y)↓(x↓y)=((x+y)’+(x+y)’)’=x+y
AND
(x↓x)↓(y↓y)=(x’+y’)’=xy
IMPORTANTE. Gli operatori NAND e NOR godono della proprietà commutativa ma non di quella
associativa. Infatti:
x
(y
z)≠
≠ (x
y)
z
16
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
x↓
↓(y↓
↓z)≠
≠ (x↓
↓y)↓
↓z
Tutte le volte che più di due valori (costanti o variabili) sono legati fra loro da uno dei precedenti
operatori, bisogna ricondursi alla definizione dell’operatore (NAND = NOT AND, NOR = NOT OR)
per trovare gli sviluppi corretti. Esempio:
x
y
z=(xyz)’=x’+y’+z’
Trasformazione SP in NAND
usando De Morgan
oppure si applica la seguente regola:
• si sostituiscono tutti gli operatori (AND,OR,NOT) presenti con l’operatore NAND ( ricordando che
x’=xx )
• ma se vi è un prodotto con una sola lettera, esso deve essere complementato,
• se l’espressione contiene un solo prodotto P, si somma il prodotto a se stesso P+P
•
es: f= c+a’b - (cc)((aa)b)
Trasformazione PS in NOR
valgono le stesse regole
17
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
OR ESCLUSIVO
Viene spesso adoperato un altro importante operatore complesso. Si tratta dell’operatore “somma
modulo 2” ovvero EXCLUSIVE OR (abbreviato in XOR ed indicato nell’algebra come “⊕
⊕“). La tabella
di verità che lo definisce per due variabili è la seguente:
A
B
A⊕
⊕B
0
0
0
0
1
1
1
0
1
1
1
0
• Questo operatore riesce particolarmente utile nella espressione di funzioni aritmetiche.
• Gode della proprietà commutativa e associativa.
• Non è un operatore universale; esistono solo due operatori universali (NAND e NOR)
XNOR = XOR complementato = operatore coincidenza
18
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Le reti logiche
Un loro schema molto semplificato è:
X1
Z1
Rete Logica
Xn
Zm
Le grandezze fisiche (segnali) X1, X2, ... , Xn e Z1, .. , Zm che compaiono in ingresso ed in uscita
possono assumere, ciascuna, solo un insieme di valori limitato e discreto (generalmente due). Più che di
ingressi e di uscite si parla quindi di combinazioni di ingresso e di uscita.
Distinguiamo le reti logiche in due classi: reti combinatorie e reti sequenziali:
• Una rete (logica) combinatoria è una rete in cui le uscite dipendono esclusivamente dagli ingressi
presenti nella rete.
• Una rete (logica) sequenziale è una rete le cui uscite dipendono non solo dagli ingressi che sono
presenti sulla rete ma anche dalla sua storia precedente.
L’algebra delle commutazioni è adatta a rappresentare circuiti in cui vengono elaborati segnali binari.
Le variabili e le costanti dell’algebra delle commutazioni (variabili e costanti booleane o logiche)
vengono associate ai due valori di tensione che i segnali presenti in tali circuiti (circuiti o reti logiche )
possono assumere.
Il valore “alto” (H) ed il valore “basso” (L) vanno intesi come tensione più positiva e tensione meno
positiva.
1 = H ; 0 = L logica positiva
0 = H ; 1 = L logica negativa
Analogamente, gli operatori dell’algebra OR, AND, NOT, NAND, NOR e XOR vengono associati ad
elementi fisici (o porte).
19
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
AND
OR
NAND
NOT
NOR
XOR
Ogni espressione algebrica di una funzione può essere tradotta in una rete sostituendo agli operatori le
rispettive porte.
Fan-in = numero massimo di ingressi di una porta
Fan-out = numero massimo di porte che una porta può alimentare
Livello di una porta: si assegna il livello 1 alla porta in uscita
Tutte le reti logiche composte di blocchi combinatori e prive di cicli sono reti combinatorie
Il comportamento di una rete combinatoria può essere descritto mediante una funzione logica. In
generale, l’analisi di una rete consiste proprio nel ricavare la tabella di verità o nello scrivere la funzione
che la rete realizza alle sue uscite. Nella figura che segue è mostrato un semplicissimo esempio di
analisi:
x
y
x+y
z
f=(x+y)z
20
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Diverso dall’analisi è il problema della sintesi di una rete. In questo caso, da una descrizione non
ambigua della funzione che la rete deve realizzare si deve giungere alla sua progettazione in termini di
porte logiche tra loro opportunamente interconnesse.
SINTESI DELLE RETI COMBINATORIE
Sintetizzare una rete combinatoria significa determinarne il progetto logico partendo da una descrizione
non ambigua di ciò che la rete deve fare.
Possono esistere progetti diversi che realizzano la stessa funzione logica.
La soluzione che desideriamo dovrà avere il minimo costo ovvero il minimo numero di porte e, a parità
di porte, il minimo numero di segnali di ingresso. Trasportando il discorso nel campo dell’algebra delle
commutazioni ciò significa ricercare espressioni delle funzioni contenenti il minimo numero di termini e,
a parità di termini, il minimo numero di lettere.
La soluzione dei passi che conducono alla sintesi di una rete a due livelli di logica può allora essere
schematizzata come segue:
a) la funzione da realizzare viene descritta in modo da determinarne con precisione la tabella di
verità
b) dalla tabella di verità viene ricavata una forma canonica;
c) l’espressione canonica viene minimizzata;
d) viene disegnata la rete corrispondente.
Minimizzazione di una funzione logica
Noti tutti gli implicanti primi, una funzione può essere espressa dalla loro somma (somma completa). In
molti casi è sufficiente sommarne solo una parte.
Un implicante primo si dice eliminabile se esso implica la somma degli altri implicanti primi.
Un implicante primo è ineliminabile se non implica la somma dei rimanenti implicanti primi. Gli
implicanti primi ineliminabili si dicono implicanti essenziali della funzione.
21
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Dicesi nucleo della funzione la somma di tutti gli implicanti essenziali.
Gli implicanti primi (non essenziali) che implicano il nucleo della funzione sono detti assolutamente
eliminabili.
Dicesi forma irridondante di una funzione una forma tale che nessuno dei suoi termini o delle sue lettere
può essere tolto.
Dicesi forma minima di una funzione quella forma che contiene il minor numero di termini e, a parità di
termini, il minor numero di lettere.
Per ottenere la forma minima di una funzione considereremo due metodi: il metodo delle mappe di
Karnaugh e quello della tabella di copertura.
Metodo delle mappe di Karnaugh
Presentiamo il metodo ricorrendo ad un esempio. Sia:
f ( w , x , y , z ) = wxyz + wxyz wx yz wxyz wxyz wx yz wx yz wxyz
+
+
+
+
+
+
wx
yz
00
01
11
10
1
1
1
00
01
11
1
1
10
1
1
1
Da tale mappa ricaviamo agevolmente tutti gli implicanti primi. La funzione può allora essere espressa
come somma di questi (somma completa):
f ( w, x , y , z ) = wy + xyz + wxz + w yz + x yz + wxz
Un buon inizio è sempre quello di controllare ciascuna cella “1” per vedere se è inclusa in un solo
implicante; in caso affermativo, la cella viene contrassegnata. Ricordiamo che un implicante primo che
include una cella non inclusa in nessun altro implicante primo è un implicante essenziale e come tale deve
essere incluso in ogni forma minima.
22
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Il metodo delle mappe di Karnaugh è un metodo “visivo”, il cui successo è determinato dall’abilità
dell’operatore. Il metodo successivo si presenta invece come una procedura sistematica.
Metodo della tabella di copertura
Si consideri la funzione di figura, della quale abbiamo già ottenuto gli implicanti, che riportiamo per
completezza e che identifichiamo con lettere maiuscole:
wx
yz
00
01
11
10
5
6
7
00
01
11
1
2
10
3
4
8
A = wy B = wxz C = x yz D = wyz E = wxz F = xyz
Per comodità, contrassegnamo gli “1” della funzione con gli interi da 1 ad 8. Costruiamo poi una tabella,
detta tabella di copertura, nella quale riportiamo in riga gli implicanti ed in colonna gli “1” della
funzione. Per ogni riga (implicante), contrassegnamo le colonne corrispondenti agli “ 1 “ della funzione
che sono coperti da quell’implicante.
*
A
1
2
3
4
X
X
X
X
X
B
D
6
X
X
X
8
X
X
E
7
X
X
C
F
5
X
X
23
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Una forma minima della funzione corrisponde ad un insieme di righe R tale che:
a) copre tutta la tabella ovvero, per ogni colonna della tabella, esiste almeno una riga di R che ha un
contrassegno in quella colonna;
b) fra tutti gli insiemi di righe che godono della proprietà precedente, R ha il minimo numero di righe.
Alcuni suggerimenti possono aiutare nella ricerca della forma minima. Si osservi infatti che se, in una
tabella di copertura, una colonna ha un solo contrassegno, la riga in cui questo compare corrisponde ad
un implicante essenziale (e prende il nome di riga essenziale). Nell’esempio, le colonne 3 e 4 hanno un
solo contrassegno che corrisponde alla riga A. Poiché l’implicante A deve essere presente in ogni somma
irridondante, possiamo rimuovere la riga A e le colonne da essa ricoperte 1, 2, 3, 4 indicando con un
contrassegno a fianco della riga stessa che essa fa parte della soluzione. La rimozione delle colonne 1, 2,
3, 4 dalla tabella è giustificata dal fatto che selezionando la riga A nella soluzione, abbiamo già tenuto
conto della copertura di tali colonne. Il problema della copertura della funzione viene a questo punto
ricondotto a quello mostrato nella figura seguente:
5
B
X
C
X
D
6
7
8
X
X
E
F
X
X
X
X
La riga B ha una sola X in colonna 5, mentre la riga C ha una X in colonna 5 ed una in colonna 6.
Possiamo (dominanza fra righe) scartare la riga B, che si dice essere dominata dalla riga C in quanto C
ha la stessa capacità di copertura di B ed inoltre copre un ulteriore “1” della funzione. Quando una riga
ne domina un’altra, la riga dominata può essere tolta dalla soluzione. È possibile nel nostro esempio
scartare la riga F, che risulta dominata dalla riga E.
Dopo l’eliminazione delle righe B ed F:
24
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
5
C
D
E
X
6
7
8
X
X
X
X
X
L’unico modo per coprire la riga 5 è quello di selezionare la riga C, poiché la colonna 5 è rimasta con
una sola X nella riga C; analogamente sarà necessario selezionare la riga E che è l’unica a coprire la
colonna 8. C ed E sono divenute righe essenziali; si noti tuttavia che esse non corrispondono ad
implicanti essenziali.
Selezionando le righe C ed E, tutte le colonne della tabelle sono state coperte e quindi ottenuta una
copertura minima:
f = A + C + E = wy + x yz + wxz
Funzioni non completamente specificate
In determinati casi, alcune combinazioni delle variabili in ingresso non possono mai presentarsi o non
rivestono significato.
Se dobbiamo progettare una rete che abbia uscita z = 1 quando gli ingressi corrispondono ai numeri 1, 3,
5, 9, la funzione può essere descritta:
Esempio: Codifica binaria delle cifre decimali:
0
1
2
3
4
5
6
7
8
9
x1
0
0
0
0
0
0
0
0
1
1
x2
0
0
0
0
1
1
1
1
0
0
x3
0
0
1
1
0
0
1
1
0
0
x4
0
1
0
1
0
1
0
1
0
1
25
ALGEBRA BOOLEANA E MAPPE DI KARNAUGH
Se dobbiamo progettare una rete che abbia uscita z=1 quando gli ingressi corrispondono ai numeri 1, 3,
5, 9, la funzione può essere descritta con la seguente tabella:
x3x4
x1x
00
01
11
10
00
0
1
1
0
01
0
1
0
0
11
X
X
X
X
10
0
1
X
X
Vi sono sei combinazioni di valori delle variabili (“1010”, “1011”, “1100”, “1101”, “1110” e “1111”)
che non possono mai presentarsi se non in presenza di un guasto sulla rete. Contrassegnamo allora i
corrispondenti valori della funzione con delle ”X”.
Funzioni come quella dell’esempio prendono il nome di funzioni incomplete o non completamente
specificate.
Risulta intuitivo come si possa attribuire ad ognuna delle “X” indifferentemente il valore “0” oppure il
valore “1”. Se le condizioni di indifferenza sono h, saranno perciò possibili 2h diverse funzioni ciascuna
delle quali costituisce una valida soluzione per il problema di partenza. Per ottenere forme normali
minime allora (caso SP):
a) si determinano gli implicanti primi attribuendo il valore “1” a tutte le condizioni di indifferenza e si
scartano poi quegli implicanti che coprono esclusivamente delle “X”
b) si minimizza tenendo conto solo degli “l” effettivi della funzione.
Nell’esempio visto in precedenza gli implicanti primi significativi sono x 3 x4 , x 2 x4 , x1 x4 , dei quali
x 3 x4 , x 2 x4 sono essenziali. La copertura minima risulta, di conseguenza: f = x 3 x4 + x 2 x4 .
26