MIXAGGI POCO FLUIDIISTITUTO DI ISTRUZIONE SUPERIORE ANGIOY Sintesi di Espressioni Booleane Prof. G. Ciaschetti. Definizioni preliminari Nella vita di tutti giorni, troviamo spesso le parole analisi e sintesi. La prima parola, analisi, l abbiamo sentita e usata spesso parlando di analisi del sangue, di analisi grammaticale o analisi logica, di analisi della situazione politica, di analisi di un testo, ecc. Il secondo termine, sintesi, è piuttosto ricorrente in espressioni del tipo sintesi musicale (il sintetizzatore), sintesi vocale (riproduzione della voce al computer), sintesi delle proteine, sintesi farmaceutica, ecc. Cosa significano queste due parole? Proviamo a darne una definizione: analisi: valutazione critica condotta scomponendo l'oggetto nelle sue parti costituenti, per poi descrivere tali parti e le loro relazioni col tutto (Wikipedia). sintesi: operazione mentale che riassume una quantità di dati conoscitivi in una conclusione unitaria ed essenziale (Dizionario della Lingua Italiana Sabatini-Coletti ). Dalle definizioni date, notiamo come l analisi è il processo inverso della sintesi, e viceversa, la sintesi è il processo inverso dell analisi. Possiamo allora riformulare le nostre definizioni nel seguente modo: analisi: data una descrizione in forma chiusa di un oggetto, trovare una descrizione in forma estesa. sintesi: data una descrizione in forma estesa di un oggetto, trovare una descrizione in forma chiusa. Richiamando la prima dispensa sull Algebra di Boole, ricordiamo che effettuare l analisi di un espressione booleana = f (x, x 2,, x n ) significa individuare per quali valori delle variabili x, x 2,, x n l espressione è vera o falsa, e questo possiamo farlo mediante le tavole di verità. La descrizione = f (x, x 2,, x n ) è in forma chiusa, mentre la tavola di verità è una descrizione in forma estesa. Appare allora evidente che fare la sintesi di un espressione booleana significa fare il contrario dell analisi: data la tavola di verità di una espressione booleana (forma estesa), come possiamo risalire alla sua espressione (forma chiusa)? Definizione: si dice sintesi di una espressione (o funzione) booleana = f (x, x 2,, x n ) l operazione mediante la quale partendo dai valori di verità o dell espressione per ogni possibile combinazione delle variabili che in essa compaiono, si vuole trovare l espressione che la genera. In che modo è possibile fare questo? Mediante le forme canoniche.
2 2. Forme canoniche Innanzitutto introduciamo due definizioni che ci serviranno: Definizione: un mintermine è un prodotto logico di variabili booleane, eventualmente negate, e un maxtermine è una somma logica di variabili booleana, eventualmente negate. Esempi: mintermini maxtermini x x 2 x x2 x x2x3 x x2 x3 Si noti che, secondo la definizione, x è un mintermine (il prodotto di un solo termine) ma è anche un maxtermine (la somma di un solo termine). Allo stesso modo, ad esempio, x2 è al tempo stesso un mintermine e un maxtermine. E veniamo alle forme canoniche: una forma canonica è un modo di rappresentare una espressione booleana. In particolare distinguiamo: Prima Forma Canonica (FC): Un espressione si dice in prima forma canonica se compare come somma logica di mintermini. Seconda Forma Canonica (2FC): Un espressione si dice in seconda forma canonica se compare come prodotto logico di maxtermini. In poche parole, si può dire che un espressione booleana è in FC se compare come somma (logica) di prodotti (logici), cioè come OR di AND. Un espressione booleana è, invece, in 2FC se compare come prodotto (logico) di somme (logiche), cioè come AND di OR. Esempi: FC 2FC x x2 x x3 xx 4 x x )( x x ) ( 2 2 x3 x x3 xx 2 ( x x2) x3 Siccome i mintermini e i maxtermini possono essere costituiti anche da un solo termine, come nella seconda riga degli esempi appena visti, può accadere che, ad esempio, l espressione x x 2 è sia in FC (un solo mintermine con due termini) che in 2FC (il prodotto di due maxtermini, ognuno dei quali ha un solo termine). Allo stesso modo, x + x 2 è sia in FC che in 2FC. Chiaramente, oltre alle espressioni in FC e 2FC, esistono anche espressioni che non sono né in FC né in 2FC, come ad esempio l espressione, che non è né un OR di AND, né un AND di OR. La forza delle forme canoniche sta nel fatto che per ogni espressione booleana c è una sua espressione equivalente in FC, e una sua espressione equivalente in 2FC.
3 3. Sintesi di espressioni booleane Torniamo al nostro obiettivo di fare la sintesi di un espressione booleana, ossia, di determinare l espressione in forma chiusa per una = f (x, x 2,, x n ) della quale conosciamo i valori di verità per ogni possibile combinazione delle variabili. Come possiamo fare? Abbiamo due alternative: - trovare l espressione equivalente in prima forma canonica (FC) - trovare l espressione equivalente in seconda forma canonica (2FC) 3. Sintesi di espressioni booleane in prima forma canonica (FC) Cominciamo con il primo dei due modi, con un esempio. Supponiamo di sapere che la nostra funzione booleana ha la seguente tavola di verità: x x 2 Volendo trovare la nostra espressione in FC, andiamo a considerare solo le righe della tabella in cui il valore della è. Ossia, la prima, la terza e la quarta. Ognuna di queste righe dà luogo a un mintermine. La nostra espressione sarà allora costituita dalla somma logica di tre mintermini. Ma come facciamo a sapere quali? Nel mintermine si riporta ogni variabile, negata se è falsa (cioè uguale a ), non negata se è vera (cioè uguale a ). Quindi, avremo i seguenti mintermini: x x 2 per la prima riga x x 2 per la terza riga x x 2 per la quarta riga Abbiamo trovato l espressione in FC: = x x + x x + x 2 2 x 2, e come si può vedere, è un OR di AND. Per verifica, si lascia per esercizio fare la tavola di verità dell espressione trovata. Facciamo un altro esempio: consideriamo la seguente tavola di verità x x 2 x 3 e troviamo, come prima, l espressione in prima forma canonica. Ci sono solo due righe in cui la è vera, quindi avremo due mintermini. L espressione cercata è x x2x3 x x2x3. Facile, no?
4 Riassumendo, per trovare un espressione in FC occorre: - considerare solo le righe nelle quali =. Ogni riga diventa un mintermine. - scrivere i mintermini con le variabili negate se sono, e non negate se sono. - scrivere l espressione come OR dei mintermini. 3.2 Sintesi di espressioni booleane in seconda forma canonica (2FC) Se invece che in FC, vogliamo trovare l espressione in seconda forma canonica, o 2FC, cioè come AND di OR, dobbiamo ribaltare tutto: stavolta siamo interessati alle righe della tavola di verità in cui la vale. Ognuna di queste righe darà luogo a un maxtermine. A differenza di prima, stavolta, nei maxtermini si riportano negate le variabili vere, e non negate le variabili false, proprio al contrario di quanto facevamo prima. Esempio: x x 2 Volendo trovare la nostra espressione in 2FC, andiamo a considerare solo le righe della tabella in cui il valore della è. Ossia, la seconda e la quarta. Avremo così due maxtermini, e cioè x x 2 per la seconda riga x per la quarta riga x 2 Dunque, la nostra espressione in 2FC diventa = x ) x ), ed è un AND di OR. Facciamo un altro esempio: sia data x x 2 x 3 ( x2 ( x2 Cerchiamo l espressione in 2FC: abbiamo tre maxtermini, essendo solo tre le righe in cui la vale, e precisamente, la prima, la quinta e la sesta. Otteniamo allora l espressione = (x + x 2 + x 3 ) ( x + x 2 + x 3 ) (x + x 2 + x 3 ). Riassumendo, per trovare un espressione in 2FC occorre: - considerare solo le righe nelle quali =. Ogni riga diventa un maxtermine. - scrivere i maxtermini con le variabili negate se sono, e non negate se sono. - scrivere l espressione come AND dei maxtermini.
5 4. Sintesi di espressioni booleane in forma minima Il problema che si ha nel fare la sintesi delle funzioni booleane nel modo appena descritto è che le espressioni ottenute sono piuttosto lunghe. Sicuramente, esisteranno espressioni equivalenti più ridotte di quelle trovate. Si pone allora il problema di semplificare le espressioni in modo da ricondurle a una forma minima. Ricordiamo, infatti, che per ogni operazione logica che compare nell espressione, occorre inserire nel circuito corrispondente una porta logica, e le porte logiche costano! Come possiamo fare, allora, per trovare l espressione in forma minima? Abbiamo due possibilità: ) Semplificare l espressione trovata con il metodo appena descritto, utilizzando le proprietà dell algebra booleana 2) Utilizzare le mappe di Karnaugh Se volessimo procedere seguendo la prima delle due strade, ad esempio, potremmo semplificare la funzione booleana trovata nel primo esempio del paragrafo precedente, = x x + x x + x 2 2 x 2, nel seguente modo: x x + x 2 2 ( x ) x2 x + x x 2 = ( x x ) x2 + x x 2 per la proprietà distributiva x + x x 2 = x 2 + x x 2 per la proprietà della complementarità x 2 + x x 2 = x 2 + x x 2 per la proprietà dell identità a questo punto la funzione non è più minimizzabile. Abbiamo trovato così che = x 2 + x x 2. Tuttavia, procedere in questo modo può risultare estremamente difficile se la funzione booleana da minimizzare è particolarmente complessa. Inoltre, bisognerebbe ricordarsi tutte le proprietà dell algebra booleana, il che non accade spesso, aimè. 4. Mappe di Karnaugh Un metodo più elegante ed efficace per miminizzare una formula booleana è quello che usa le mappe di Karnaugh. Cosa sono? Inventate dall ingegnere americano Maurice Karnaugh nel 957, sono nate con lo scopo di progettare reti elettriche per le compagnie telefoniche AT&T e Western Electric, che fossero efficienti e a costo minimo. Cosa sono e come funzionano queste mappe? Le mappe di Karnaugh sono delle griglie che possono contenere 2, 4, 8 o 6 caselle. Si tratta di disegnare una griglia nella quale riportare i valori della tavola di verità, e poi cercare di raggruppare questi nel minor numero di gruppi possibile. Andiamo a spiegare come, ma vediamo prima come sono fatte le mappe. Costruzione delle mappe mappa di Karnaugh con due celle mappa di Karnaugh con quattro celle
6 mappa di Karnaugh con otto celle mappa di Karnaugh con sedici celle Quale di queste dobbiamo utilizzare? E presto detto: servono tante celle quante sono le righe della tavola di verità. Quindi, se ad esempio abbiamo otto righe (tre variabili, ricordate la regola? Con n variabili binarie si hanno 2 n combinazioni), utilizzeremo una mappa con otto caselle, e se abbiamo una tavola di verità con sedici righe (quattro variabili), utilizzeremo una mappa con sedici caselle. E se abbiamo una tavola di verità con 32 righe (cinque variabili)? Si utilizzano due mappe di sedici caselle ognuna. E se abbiamo 64 righe? Quattro mappe da sedici. E così via.. Siccome ogni casella della mappa deve corrispondere a una riga della tavola di verità, si etichettano le righe e le colonne della mappa nel seguente modo: x due caselle = due righe della tavola = variabile x x 2 quattro caselle = quattro righe della tavola = 2 variabili Prima di procedere con le prossime tavole, più grandi, cerchiamo di capire cosa significa. Nella mappa da due celle, abbiamo la sola variabile x nell espressione (un solo ingresso nel circuito), che può valere o. Indichiamo allora una casella per il valore, e una casella per il valore dell unica variabile x. Nella mappa da quattro celle, invece, abbiamo due variabili, che possono valere,, o. Indichiamo x sulle righe e x 2 sulle colonne, in modo che: - le due caselle della prima riga corrispondono ai casi in cui x = - le due caselle della seconda riga corrispondono ai casi in cui x = - le due caselle della prima colonna corrispondono ai casi in cui x 2 = - le due caselle della seconda colonna corrispondono ai casi in cui x 2 =
7 Abbiamo quindi che la casella più in alto a sinistra corrisponde alla combinazione, quella alla sua destra alla combinazione, la prima in basso a sinistra alla combinazione, quella in basso a destra alla combinazione. Chiaro? Procediamo con le altre due mappe: x x 2 x 3 otto caselle = otto righe della tavola = 3 variabili Stavolta la faccenda si complica un po : cosa sta succedendo? Dobbiamo riportare sulla mappa le otto combinazioni,,,,. Facciamo variare la prima variabile sulle righe, e le altre due sulle colonne. Cioè, nella tavola di verità, la variabile x può essere quattro volte oppure quattro volte, quindi identifichiamo le quattro caselle di sopra con i primi quattro casi (x = ), le quattro caselle di sotto con gli altri (x = ). Le altre due variabili invece variano sulle colonne: esse possono essere,, o. Abbiamo dunque le due caselle più a sinistra con x 2 = e x 3 =, nella seconda colonna x 2 = e x 3 =, nella terza colonna x 2 = e x 3 = e nell ultima colonna x 2 = e x 3 =. Ma perché abbiamo messo prima e poi? Per rispettare una regola fondamentale nella costruzione delle mappe: tra caselle adiacenti deve esserci la variazione di una sola variabile. Infatti, prendiamo due caselle a caso: ad esempio, le due caselle centrali nella riga in alto. In una abbiamo x =, x 2 = e x 3 =, mentre nell altra abbiamo x =, x 2 = e x 3 =. Come possiamo osservare, tra le due è cambiata la sola variabile x 2, mentre le altre hanno mantenuto il proprio valore uguale. Prendiamone altre due a caso: le due a destra della riga in basso. In una abbiamo x =, x 2 = e x 3 =, mentre nell altra abbiamo x =, x 2 = e x 3 =. Di nuovo, è cambiata una sola variabile, x 3, mentre le altre due hanno mantenuto il loro valore. Proviamo con altre due, stavolta con adiacenza in verticale: prendiamo la seconda colonna. Nella casella in alto abbiamo x =, x 2 = e x 3 =, mentre nell altra abbiamo x =, x 2 = e x 3 =. E variata la sola variabile x. E d altra parte, c era da aspettarselo, visto che entrambe le caselle corrispondono alla combinazione di x 2 e x 3. Attenzione ora, che c è il colpo di genio ( ): prendiamo ad esempio la casella in alto a sinistra e la casella in alto a destra. Nella prima abbiamo, mentre nella seconda abbiamo. E variata la sola variabile x 2. Ma allora, se definiamo come adiacenti due caselle nelle quali cambia il valore di una sola variabile, anche queste due sono adiacenti. Magia, la mappa è circolare! Possiamo ripetere la prova per le due caselle in basso a sinistra e a destra, che è lasciata per esercizio. Possiamo pensare alla mappa circolare come a un braccialetto, o alla ghiera numerata di un lucchetto a combinazione, come nella seguente figura:
8 Attenzione però: in diagonale non c è adiacenza, mai! (si faccia la prova per esercizio). Bene, continuiamo ora con le altre mappe. x 3 x 4 x x 2 sedici caselle = sedici righe della tavola = 4 variabili Ripetendo il ragionamento fatto per la precedente mappa, abbiamo le variabili x e x 2 che variano sulle righe, mentre le variabili x 3 e x 4 variano sulle colonne. Di nuovo, tra colonne adiacenti cambia una sola variabile (si faccia qualche prova!) e la mappa è circolare. Stavolta, la circolarità non c è solo in orizzontale (le caselle della colonna a sinistra sono adiacenti a due a due con le caselle della colonna a destra), ma anche in verticale (le caselle della prima riga sono adiacenti a due a due con le caselle dell ultima riga). L immagine che viene fuori è allora quella di una mappa sferica, in cui l adiacenza tra le caselle è un po come in un pallone da calcio Quando le variabili in gioco sono più di 4, cioè le righe della tavola di verità sono 32 o 64 o più, bisogna usare più mappe da sedici. Per 5 variabili (32 righe), ad esempio, si usano due mappe da sedici, una per i sedici casi in cui x 5 =, e l altra per i restanti sedici casi in cui x 5 =. Per 6 variabili (64 righe), si usano quattro mappe da sedici, una in cui x 5 = e x 6 =, un altra in cui x 5 = e x 6 =, un altra ancora in cui x 5 = e x 6 = e l ultima in cui x 5 = e x 6 =. Ovviamente, in questi casi, non c è adiacenza tra una mappa e l altra (sebbene si possa teoricamente definire un concetto di adiacenza, in base alla definizione che abbiamo dato). Per un numero di variabili superiore a 6, in generale, le mappe sono sconsigliate a causa dell aumento di complessità della loro gestione, e si utilizzano altri metodi di minimizzazione. Utilizzo delle mappe Vediamo ora come utilizzare le mappe per minimizzare le nostre espressioni booleane. Innanzitutto, bisogna scegliere se si vuole un espressione in FC o in 2FC. Nel primo caso, riportiamo nella mappa solo i valori della tavola di verità, nel secondo caso, solo i valori.
9 Esempio: x 2 x x 2 se vogliamo la FC x Esempio: x x 2 x 3 x x 2 x 3 se vogliamo la 2FC Una volta decisa la forma canonica, e inseriti i valori che ci interessano all interno della mappa ( nel caso della FC, nel caso della 2FC), si cerca di raggruppare le caselle che contengono un valore nel minor numero di gruppi possibile, e con gruppi che siano più grandi possibile. Ogni gruppo dà luogo a un mintermine, nel caso della FC, o un maxtermine nel caso della 2FC. Si capisce allora perché è necessario che i gruppi siano meno possibile: meno gruppi equivale a meno mintermini (o maxtermini) nella espressione che troveremo. Il raggruppamento degli (o degli per la 2FC) avviene seguendo alcune regole: - i gruppi non contengono caselle vuote - i gruppi hanno dimensioni pari a potenze del 2 ed esattamente: a) x (una casella in orizzontale, una casella in verticale) b) x2 (una casella in orizzontale, due in verticale) c) 2x (due caselle in orizzontale, una in verticale) d) 2x2 (due caselle in orizzontale, due in verticale) e) 4x (quattro caselle in orizzontale, una in verticale) f) x4 (una casella in orizzontale, quattro in verticale) g) 4x2 (quattro caselle in orizzontale, due in verticale) h) 2x4 (due caselle in orizzontale, quattro in verticale) i) 4x4 (non succede mai! E se succede, non c è bisogno della mappa ) - i gruppi devono contenere caselle tra loro adiacenti a due a due : nel passare da una casella a un altra del gruppo, deve variare una sola variabile - i gruppi sono sovrapponibili - tutte le caselle piene (con o ) devono essere raggruppate, anche eventualmente in un gruppo x.
Facciamo qualche esempio: data la seguente tavola di verità, x x 2 x 3 costruiamo la mappa, inseriamo i valori che ci interessano e formiamo i gruppi. Supponiamo che vogliamo la FC. x 2 x 3 x Come si vede, in questo esempio possiamo innanzitutto formare un gruppo di quattro caselle piene, ed è il più grande gruppo possibile (gruppi da 8 caselle non ce ne sono). Resta un solo da piazzare ancora in un gruppo. Conviene prenderlo da solo, cioè in un gruppo x, oppure formare un gruppo 2x con la casella alla sua destra, sovrapponendo il nuovo gruppo a quello che già avevamo ottenuto? E meglio la seconda scelta! Come vedremo tra poco, conviene che i gruppi siano più grandi possibili, in modo da minimizzare il più possibile il mintermine (o maxtermine per la 2FC) che ne verrà fuori. x 2 x 3 x Abbiamo così raggruppato tutte le caselle che contengono, in due gruppi. Non ci sono altri da raggruppare. Come dicevamo, ogni gruppo dà luogo a un mintermine, nel seguente modo: Per la FC, si riportano nel mintermine solo le variabili che da una casella all altra del gruppo non cambiano il proprio valore, mentre si semplificano quelle che cambiano il loro valore. Le variabili che vanno riportate sono negate quando valgono, e non lo sono quando valgono. Nel nostro esempio, consideriamo il gruppo da due caselle. Nella casella più a sinistra, abbiamo x =, x 2 = e x 3 =. Nella casella più a destra, abbiamo invece x =, x 2 = e x 3 =. La variabile x 2 cambia il proprio valore, quindi va semplificata, mentre si riportano nel mintermine le variabili x e x 3 che non cambiano il loro valore. Siccome abbiamo x = e x 3 =, il mintermine diventa x x 3
Passiamo al gruppo da quattro. Di nuovo, vediamo quali variabili cambiano il proprio valore e quali no. Se consideriamo le caselle in senso orario, partendo da quella in alto a sinistra, abbiamo: prima casella: x =, x 2 = x 3 = seconda casella: x = x 2 = x 3 = terza casella: x = x 2 = x 3 = quarta casella: x = x 2 = x 3 = come si può osservare, l unica variabile che non cambia mai il suo valore all interno del gruppo è la variabile x 2, mentre le variabili x e x 3 cambiano il loro valore. Quindi, semplifichiamo x e x 3 e rimane il mintermine (non negato perché uguale a ) Abbiamo trovato la nostra espressione in forma semplificata: x x 2 x3 x2 Se avessimo scelto di prendere l restante da solo, anziché invece in un gruppo da 2, avremmo dovuto riportare tutte le variabili (nessuna cambia in una sola casella), e l espressione che avremmo ottenuto sarebbe stata x x2x3 x2, più lunga di quella che abbiamo trovato prima. Dall esempio, si può notare come - un gruppo da una sola casella non fa semplificare nessuna variabile - un gruppo da due caselle fa semplificare una variabile - un gruppo da quattro caselle fa semplificare due variabili - un gruppo da otto caselle fa semplificare tre variabili (prossimi esempi) Conviene prendere gruppi più grandi, no? Facciamo un altro esempio: x x 2 x 3 x 4 Supponiamo ora di volere la 2FC. Costruiamo la mappa e riportiamo su di essa gli della tabella.
2 x 3 x 4 x x 2 Procediamo con i raggruppamenti: minimo numero di gruppi più grandi possibile. x 3 x 4 x x 2 Siamo riusciti a formare tre gruppi, anche sfruttando la circolarità delle mappe. Scriviamo i maxtermini. Per la 2FC, si riportano nel maxtermine solo le variabili che da una casella all altra del gruppo non cambiano il proprio valore, mentre si semplificano quelle che cambiano il loro valore. Le variabili che vanno riportate sono negate quando valgono, e non lo sono quando valgono Abbiamo quattro maxtermini, uno per ognuno dei gruppi trovati: - gruppo di 4 caselle in orizzontale: non cambiano x e x 2 mentre cambiano x 3 e x 4. Il maxtermine è allora x x2 - gruppo di 2 caselle nella seconda colonna: non cambiano x, x 3 e x 4 mentre cambia x 2. Il maxtermine è x x3 x4 - gruppo di 2 caselle nella quarta colonna: non cambiano x 2, x 3 e x 4 mentre cambia x. Il maxtermine è x2 x3 x4 La funzione booleana trovata è = ( x x2 )( x x3 x4 )( x2 x3 x4 )
3 5. Forme di indifferenza e notazione sintetica 5. Forme di indifferenza Può accadere nella realtà dei circuiti combinatori che non sia importante il comportamento della rete per alcune combinazioni delle variabili. In questi casi, il fatto che nella tavola di verità, nella colonna della, ci sia o ci sia è indifferente. Si rappresenta allora l indeterminazione con una X, sia sulla tavola di verità che sulla mappa di Karnaugh. Le forma di indifferenza X possono essere usate nella mappa come joll, cioè siamo liberi di usarle solo se ci aiutano a formare gruppi più grandi. Esempio: x x 2 x 3 x x Se vogliamo la FC, la mappa risultante sarà x 2 x 3 x x x Procediamo con i gruppi (ricordarsi: minor numero di gruppi più grandi possibili). Stavolta possiamo scegliere se usare i joll oppure no. La scelta è facile: con le due x riusciamo a fare un gruppo di 4 caselle che copre due, quindi è meglio usarli. I migliori gruppi che possiamo fare sono solo 2, di quattro caselle ognuno: x 2 x 3 x x x Nel gruppo costituito dalle quattro caselle in alto, cambiano le variabili x 2 e x 3, mentre non cambia x. Abbiamo così il mintermine x (perché x = ). Nel gruppo costituito dalla quattro caselle laterali, cambiano le variabili x e x 2, mentre non cambia x 3. Abbiamo così il mintermine x 3 (perché x = ).
4 5.2 Notazione sintetica Nei nostri esercizi, e spesso nella realtà delle reti combinatorie, si usa di solito una notazione più compatta per rappresentare le tavole di verità, che non prevede di elencare tutti le possibili combinazioni delle variabili (pensate, ad esempio, a quanto sarebbe noioso scrivere una tavola di verità con 6 o più variabili). La notazione prevede di scrivere solo le combinazioni che ci interessano (quelle dove = se siamo interessati alla FC, o quelle dove = se siamo interessati alla 2FC), e di esprimere queste combinazioni come numeri decimali equivalenti ai numeri binari che si leggono per le variabili. Facciamo un esempio per capire meglio: Supponiamo di essere interessati alla FC (somma di prodotti). Ci interessano allora solo le righe in cui la =. Se abbiamo la tavola di verità x x 2 x 3 questa si può scrivere in modo compatto come (, 2, 3, 6, 7). Questa notazione significa che troviamo = in corrispondenza dei numeri binari ( in decimale), (2 in decimale), (3 in decimale), (6 in decimale) e (7 in decimale). Il simbolo in matematica rappresenta una sommatoria, e infatti cerchiamo la FC, cioè la somma di mintermini. Chiaro? Se invece vogliamo la 2FC (prodotto di somme), dobbiamo considerare come numeri decimali le righe in cui =, e usare il simbolo che indica una produttoria, poiché cerchiamo il prodotto di maxtermini. Nell esempio, possiamo indicare la tavola di verità come (, 4, 5). Infatti, abbiamo che = in corrispondenza delle combinazioni ( in decimale), (4 in decimale) e (5 in decimale). E le forme di indifferenza? Come si esprimono nella notazione sintetica? Con la lettera I, e vanno indicate sempre! Nell esempio seguente, x x 2 x 3 x 4 x x x x
5 Possiamo esprimere la tavola di verità come (,, 3, 6, 7, 8, ) + I(4,, 3, 5) se vogliamo la FC, oppure come (2, 5, 9, 2, 4) + I(4,, 3, 5) se vogliamo la 2FC. 6. Alcuni perché Concludiamo questa dispensa cercando di dare una motivazione a quanto stiamo facendo: perché è necessario fare l analisi e la sintesi di funzioni booleane, o dal punto di vista dei circuiti, di reti combinatorie? La seguente figura spiega quanto detto all inizio di questa dispensa: Come si può vedere, l analisi permette di conoscere il comportamento della rete conoscendone la sua struttura. In parole povere, sappiamo come è fatta la rete, cioè le porte logiche che la compongono, e in quale sequenza si trovano (o anche, dal punto di vista algebrico, conosciamo le operazioni booleane e le loro precedenze), e vogliamo capire come questa si comporta. Andiamo allora, tramite le tavole di verità, a valutare caso per caso, cioè, per ogni possibile combinazione delle variabili di ingresso, come si comporta la rete. Per quanto riguarda la sintesi, invece, vediamo che la sintesi permette di conoscere (e determinare) la struttura di una rete conoscendone il suo comportamento. In altre parole, se abbiamo una rete combinatoria della quale sappiamo come si comporta, o che vogliamo che si comporti in un certo modo, e vogliamo trovare una sua descrizione in forma chiusa, soprattutto allo scopo di massimizzarne le prestazioni (meno porte logiche = calcoli più veloci) e minimizzare i costi (meno porte logiche = rete più economica), dobbiamo effettuare la sintesi utilizzando le mappe di Karnaugh. Questo è molto importante nella progettazione di reti combinatorie, quando si vuole ottenere un certo risultato della rete, con il minor sforzo (economico e di tempo) possibile.