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 xx = (x x)’ = x’ OR (xx)(yy)=(x’y’)’=x+y AND (xy)(xy)=((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’=xx ) • 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 - (cc)((aa)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