Reti Logiche Prof. B. Buttarazzi A.A. 2009/200 Algoritmo QMC
Sommario Metodo algoritmico di Quine e Mc-Cluskey Implicanti primi Riga essenziale Riga dominata Esempi
Riepilogo ALGORITMO DI KARNAUGH () MONOMIO: Un monomio m è un prodotto di k letterali (cioè variabili in ingresso alla rete combinatoria con associato il valore vero o falso) POLINOMIO: Un polinomio p è una somma di monomi IMPLICANTE: Un monomio m (prodotto di k di letterali) si dice implicante per f (m f) se tutti gli di m sono coperti dagli di f
Riepilogo ALGORITMO DI KARNAUGH (2) IMPLICANTE PRIMO: monomio che sia implicante per f e che non contenga sub-monomi (monomi con meno letterali) che siano implicanti per f CLASSIFICAZIONE DI IP IP Essenziali hanno almeno un mintermine non coperto da altri IP IP Assolutamente Eliminabili hanno tutti i mintermini coperti da IP essenziali IP Eliminabili detti così in quanto alcuni di questi potranno essere eliminati POLINOMIO MINIMO: un polinomio che contiene solo implicanti primi (non è necessariamnete unico)
Riepilogo ALGORITMO DI KARNAUGH (3) ALGORITMO DI KARNAUGH: Trovare gli IP (Implicanti Primi) Graficamente significa formare i raggruppamenti massimi di caselle contenenti contigui scegliere gli IP essenziali eliminare gli IP assolutamente eliminabili scegliere tra gli IP eliminabili un sottoinsieme minimo determinare il polinomio minimo facendo corrispondere a ciascun raggruppamento individuato il prodotto di letterali corrispondenti
Riepilogo ALGORITMO DI KARNAUGH (3) ALGORITMO DI KARNAUGH: E un metodo grafico pertanto non algoritmico, quindi non può essere tradotto in un programma
Algoritmo QMC A differenza del metodo delle Mappe di Karnaugh il metodo di Quine e Mc-Cluskey è un metodo automatico di sintesi, facilmente implementabile via software. Anche questo metodo però presenta dei limiti perché la complessità del calcolo è esponenziale, pertanto non può essere utilizzato con un numero elevato di variabili.
Algoritmo QMC Per descrivere i passi dell algoritmo di Quine e Mc-Cluskey partiremo dalla Forma Canonica SOP di una funzione es : f(a,b,c,d) = Σ(0,2,4,6,7,9,,5) e determineremo la forma SP minima.
Algoritmo QMC fase:determinazione degli IP(Implicanti Primi). Considerando il seguente esempio: f(a,b,c,d) = Σ(0,2,4,6,7,9,,5) Si scrive la tabella in cui compaiono nelle righe tutti i mintermini presenti nella funzione e nelle colonne la loro rappresentazione binaria : a b c d 0 0 0 0 0 2 0 0 0 4 0 0 0 6 0 0 7 0 9 0 0 0 5
Algoritmo QMC Fase () )Si suddividono i mintermini in gruppi, in base al numero di '' che compaiono nella loro rappresentazione e si denota con n il numero di '' di ogni gruppo. a b c d 0 0 0 0 0 n=0 2 0 0 0 n= 4 0 0 0 6 0 0 n=2 9 0 0 7 0 n=3 0 5 n=4
Algoritmo QMC Fase (2) 2) Si confronta ciascuna configurazione di un gruppo, con tutte le configurazioni del gruppo successivo (quindi con distanza di Hamming =) a b c d 0 0 0 0 0 n=0 2 0 0 0 n= 4 0 0 0 6 0 0 n=2 9 0 0 7 0 n=3 0 5 n=4
Algoritmo QMC Fase (3) 3) Quando due configurazioni risultano uguali, per ogni posizione, in tutti i bit eccetto uno, vengono fuse in un'unica combinazione formata dai bit coincidenti e dal simbolo "-" nel bit diverso e trascritte in un altra tabella analoga alla precedente. 4) si marcano (con ) le configurazioni che sono state fuse in quanto non rappresentano implicanti primi.
Interpretazione della fusione (proprietà distributiva) Vediamo il significato della fusione di due configurazioni uguali in tutti i bit eccetto uno, unificabili in un'unica combinazione formata dai bit coincidenti e dal simbolo "- " nel bit diverso. Ad esempio le configurazioni 0 e sono unificabili in quanto differiscono di un solo bit 0 + = - x x2 x3 2 3 2 3 x + x x x = x x ( x + 3) =
Interpretazione della fusione (proprietà distributiva-diagramma di Venn) f = x x 2 x 3 + x x 2 x 3 2 3 f = x x x + x x x = x x ( x + 3) = 2 3 2 3 2 3 x
Diagramma di Venn f = x x 2 x x2 2 3
Esempio Ad esempio le configurazioni 0000 e 000 sono unificabili in quanto differiscono di un solo bit 0000 + 000 = 00-0 a b c d 0 0 0 0 0 n=0 2 0 0 0 n= 4 0 0 0 6 0 0 n=2 9 0 0 7 0 n=3 0 5 n=4 a b c d 0/2 0 0-0
Algoritmo QMC Fase (4)..procedendo quindi con l algoritmo otteniamo a b c d 0 0 0 0 0 n=0 2 0 0 0 n= 4 0 0 0 6 0 0 n=2 9 0 0 7 0 n=3 0 5 n=4 a b c d 0/2 0 0-0 0/4 0-0 0 2/6 0-0 4/6 0-0 6/7 0-9/ 0-7/5 - /5 -
Algoritmo QMC Fase (4) Le configurazioni (non marcate) che non hanno dato luogo a fusioni rappresentano gli implicanti primi della funzione e non potranno più essere combinate in futuro. Nell esempio precedente, durante la prima serie di confronti sono state marcate tutte le configurazioni, quindi non sono stati trovati mintermini come implicanti primi
Algoritmo QMC Fase (5) Si ripete il procedimento considerano le nuove configurazioni unificate. Si suddividono le configurazioni in gruppi e si confronta ciascuna configurazione di un gruppo con tutte le configurazioni del gruppo successivo. a b c d 0/2 0 0-0 0/4 0-0 0 2/6 0-0 4/6 0-0 6/7 0-9/ 0-7/5 - /5 -
tutti i confronti da effettuare a b c d 0/2 0 0-0 0/4 0-0 0 2/6 0-0 4/6 0-0 6/7 0-9/ 0-7/5 - /5 -
..quando due configurazioni risulteranno uguali nella posizione del simbolo "- e in tutti i bit eccetto uno, verranno fuse in un'unica combinazione formata dai bit coincidenti e dal simbolo "-" nel bit diverso. Ad esempio le configurazioni 00-0 e 0-0 saranno unificabili in quanto differiscono di un solo bit 00-0 + 0-0 = 0--0 a b - d + a b - d = a d a d(b+ b)= a d
..le configurazioni che saranno state combinate si marcheranno con un. le configurazioni (non marcate) che non avranno dato luogo a combinazioni non potranno più essere combinate in futuro e rappresenteranno un implicante primo della funzione.
Esempio a b c d 0/2 0 0-0 0/4 0-0 0 2/6 0-0 4/6 0-0 6/7 0-9/ 0-7/5 - /5 - a b c d 0/2/4/6 0 - - 0
Esempio a b c d 0/2 0 0-0 0/4 0-0 0 2/6 0-0 4/6 0-0 6/7 0-9/ 0-7/5 - /5 - a b c d 0/2/4/6 0 - - 0 Una unica configurazione (non più unificabile), derivante, indifferentemente, dalla fusione delle configurazioni 0/2 e 4/6 oppure 0/4 e 2/6
Esempio a b c d 0/2 0 0-0 0/4 0-0 0 2/6 0-0 4/6 0-0 6/7 0-9/ 0-7/5 - /5-4 configurazioni non marcate che rappresentano IP a b c d 0/2/4/6 0 - - 0 Una unica configurazione (non più unificabile), derivante, indifferentemente, dalla fusione delle configurazioni 0/2 e 4/6 oppure 0/4 e 2/6
Esempio A questo punto non essendo più possibile procedere (ossia non potendo più fondere configurazioni) si scrivono in una nuova tabella tutte le configurazioni non più unificabili, che rappresentano gli Implicanti Primi della funzione. a b c d 6/7 0 - abc 9/ 0 - abd 7/5 - bcd Termine prima fase /5 - acd 0/2/4/6 0 - - 0 ad
Algoritmo QMC 2 Fase () SECONDA FASE :Determinazione del Polinomio Minimo (ricerca degli IP essenziali, cancellazione degli IP assolutamente eliminabili, scelta del sottoinsieme minimo degli IP eliminabili) ) Si definisce Tabella di Copertura della funzione la tabella che ha riportati nelle COLONNE tutti i mintermini della funzione e nelle RIGHE tutti gli Implicanti Primi trovati nella prima fase. abd abc acd bcd ad 0 2 4 6 7 9 5 Ogni elemento di questa tabella, corrispondente all incrocio ij, vale x solo se il monomio j ha contribuito ad originare l IP i
Algoritmo QMC 2 Fase (2) 2) Si compila la tabella di copertura della funzione ovvero per ogni Implicante Primo (riga) si mettono le croci sulle colonne relative ai mintermini usati nella fusione per giungere all'implicante stesso (della riga).
Esempio 0 2 4 6 7 9 5 abd x x abc x x acd x x bcd x x ad x x x x a b c d 6/7 0 - abc 9/ 0 - abd 7/5 - bcd /5 - acd 0/2/4/6 0 - - 0 ad
Riga Essenziale Si chiama Riga Essenziale una riga che è l'unica ad avere una croce su una data colonna. L Implicante Primo corrispondente ad una riga essenziale è un Implicante Primo Essenziale 0 2 4 6 7 9 5 abd x x abc x x acd x x Riga Essenziale bcd x x ad x x x x
Algoritmo QMC 2 Fase (3) 3) Si cancellano le righe essenziali (IP essenziali) e per ciascuna di esse si cancellano anche tutte le colonne corrispondenti alle altre croci presenti sulla riga stessa. Si inserisce il termine relativo alla riga essenziale cancellata nella forma SP minima finale. Durante questa operazione potranno scomparire delle righe (che corrispondono agli IP Assolutamente Eliminabili)
Nota: Esempio Nel caso specifico ci sono 2 righe essenziali da cancellare. Riga Essenziale 0 2 4 6 7 9 5 abd x x abc x x acd x x bcd x x Riga Essenziale ad x x x x
Esempio 7 9 5 abd x x abc x acd x x bcd x x Riga Essenziale 0 2 4 6 7 9 5 abd x x abc x x acd x x bcd x x ad x x x x
Esempio 7 9 5 abd x x abc x acd x x bcd x x Riga essenziale 7 9 5 abd x x abc x acd x x bcd x x
Riga Dominata Si dice che una Riga R i è DOMINATA da una riga R k ( o che R k domina R i ) se tutte le croci della riga R i sono presenti, nelle stesse colonne, anche nella riga R k. 0 2 4 6 7 9 5 Riga dominante Riga dominata R x x Rk x x x R x x Ri x x
Algoritmo QMC 2 Fase (4) Si cancellano (non tenendone conto nella forma minima finale) tutte le righe dominate che compaiono nella tabella senza però cancellare anche le relative colonne in cui compaiono delle croci...al termine di questa fase avremo nuove righe essenziali Si noti che le righe dominate cancellate dopo la cancellazione degli implicanti primi non sono IP assolutamente eliminabili ma IP eliminabili.
Algoritmo QMC 2 Fase (5) Si ripete il procedimento fino a quando la tabella non contiene più elementi.
Esempio 7 5 abc x acd x bcd x x nella tabella risultante la prima e seconda riga sono dominate dalla quarta, pertanto si cancellano le righe dominate e si ottiene: 7 5 bcd x x Si inserisce il termine bcd relativo alla riga essenziale nella forma SP minima finale.
Si inserisce il termine bcd relativo alla riga essenziale nella forma SP minima finale e si cancella la riga. 7 5 bcd x x Si ripete il procedimento fino a quando la tabella non contiene più elementi.
Riassumendo vediamo l esempio completo
Prima fase PRIMA FASE - Determinazione di tutti gli implicanti primi. Data la forma SOP della funzione f(x) f(a,b,c,d) = Σ(0,2,4,6,7,9,,5) si scrive la tabella in cui compaiono tutti i mintermini presenti nella funzione e la loro rappresentazione binaria : a b c d 0 0 0 0 0 2 0 0 0 4 0 0 0 6 0 0 7 0 9 0 0 0 5
Prima fase Si applica l algoritmo (di confronto fusione e marcatura) per determinare tutti gli implicanti primi. a b c d 6/7 0 - abc 9/ 0 - abd 7/5 - bcd /5 - acd 0/2/4/6 0 - - 0 ad
Seconda fase SECONDA FASE - Determinazione del Polinomio Minimo Si definisce Tabella di copertura della funzione ( una tabella che ha riportati nelle RIGHE tutti gli implicanti primi trovati nella prima fase, mentre nelle COLONNE ha tutti i mintermini che formano la forma SOP della funzione). abd abc acd bcd ad 0 2 4 6 7 9 5
Seconda fase Si compila la Tabella di copertura della funzione a b c d 6/7 0 - abc 9/ 0 - abd 7/5 - bcd /5 - acd 0/2/4/6 0 - - 0 ad 0 2 4 6 7 9 5 abd x x abc x x acd x x bcd x x ad x x x x
Seconda fase ) Si cancellano le righe essenziali e per ciascuna di esse si cancellano anche tutte le colonne corrispondenti alle altre croci presenti sulla riga stessa. Il termine relativo alla riga essenziale cancellata dovrà poi comparire nella forma minima finale. 2) Si cancellano (non tenendone conto nella forma minima finale) tutte le righe dominate che compaiono nella tabella senza però cancellare anche le relative colonne in cui compaiono delle croci. 3) Si ripete il procedimento fino a quando la tabella non contiene più elementi.
Seconda fase 7 9 5 abd x x abc x acd x x bcd x x Riga Essenziale 0 2 4 6 7 9 5 abd x x abc x x acd x x bcd x x ad x x x x
Seconda fase 7 9 5 abd x x abc x acd x x bcd x x Riga essenziale 7 9 5 abd x x abc x acd x x bcd x x
Seconda fase 7 5 abc x acd x bcd x x nella tabella risultante la prima e seconda riga sono dominate dalla quarta
Seconda fase 7 5 abc x acd x bcd x x nella tabella risultante la prima e seconda riga sono dominate dalla quarta, pertanto si cancellano le righe dominate e si ottiene:
Seconda fase 7 5 bcd x x
Esempio ambiguo Se ci si trova in una situazione in cui la tabella è di questo tipo (tabella ciclica): R x x C C2 C3 C4 C5 R2 x x R3 x x x R4 x x x non essendoci righe essenziali, l'algoritmo non può iniziare.
In questo caso: -si sceglie una riga a caso; Esempio ambiguo -si considerano due tabelle: una in cui la riga scelta è considerata essenziale (pertanto appartiene all espressione booleana minimale) e l'altra in cui è considerata dominata; -su queste due nuove tabelle si continua ad applicare l'algoritmo; Seguendo questo procedimento si percorre un vero e proprio albero binario; infatti se si dovesse incontrare una nuova situazione di ambiguità viene riapplicata la suddivisione sopra proposta. Le soluzioni si troveranno nelle foglie di questo albero e tra tutte si prenderà chiaramente quella di costo minimo, quella cioè in cui compare il minor numero di termini.
Z=R+ Esempio R essenziale C C2 C3 C4 C5 R x x R2 essenziale Z=R+R2 C3 C4 C5 R2 x x R3 x x R4 x x R3 essenziale Z=R+R2+R3 R2 x x R3 x x x R4 x x x C3 C4 C5 R2 x x R3 x x R4 x x C5 R3 x R4 x C C2 C3 C4 C5 R x x R2 x x R3 x x x R4 x x x R2 dominata C3 C4 C5 R3 x x R4 x x C3 R4 x R4 è riga essenziale R dominata la cancello R3 è riga essenziale Z=R3+ R3 è riga essenziale Z=R+R3 Z=R+R3+R4 C C2 C3 C4 C5 R2 x x R3 x x x R4 x x x C C3 R2 x R4 x x C C3 R4 x x R2 dominata la cancello R4 è riga essenziale Z=R3+R4
Esercizio Determinare e classificare con il metodo di Karnaugh gli IP della f (a,b,c,d) definita con la seguente mappa. ab cd 00 0 0 00 0 0
Soluzione Traccio i raggruppamenti di ordine 4 e trovo gli IP di ordine 4 ab cd 00 0 0 00 0 0
Soluzione Gli IP di f (a,b,c,d) di ordine 4 sono: IP(f) = { ac, a b, b d, b c,...} ab cd 00 0 0 00 0 0
Soluzione Traccio i raggruppamenti di ordine 2 trovo gli IP di ordine 2 ab cd 00 0 0 00 0 0
Soluzione IP(f) = { ac, a b, b d, b c, a c d, abd, bc d} ab cd 00 0 0 00 0 0
Soluzione Gli IP di f (a,b,c,d) sono: IP(f) = { ac, a b, b d, b c, a c d, abd, bc d}
Soluzione Classificazione degli IP ab cd 00 0 0 00 0 0
Soluzione Classificazione di IP ab cd 00 0 0 00 0 è un implicante primo essenziale! è un implicante primo essenziale! 0
Classificazione di IP Poiché non capita che tutti gli di un IP (es quello blu) sono ricoperti da IPE, allora tutti i rimanenti IP sono IP eliminabili. ab cd Soluzione 00 0 0 00 0 è un implicante primo essenziale! è un implicante primo essenziale! 0
Esercizio Determinare e classificare con il metodo di QMK gli IP della f (A,B,C,D) definita con la seguente mappa. AB CD 00 0 0 00 0 0
Soluzione 00 0 0 00 F 0 F F 3 F 2 CD 00 0 0 AB 00 0 F 4 F 5 F 7 F 6 F 2 F 3 F 5 F 4 0 0 F 8 F 9 F F 0 0
Soluzione Considerando i mintermini della funzione: f(x) = Σ(0,,2,3,5,8,0,,3,4,5) Si scrive la tabella in cui compaiono nelle righe tutti i mintermini presenti nella funzione e nelle colonne la loro rappresentazione binaria : A B C D mi 0 0 0 0 0 0 0 0 0 0 0 2 0 0 3 0 0 5 0 0 0 8 0 0 0 0 0 3 5
Soluzione ) Si suddividono i mintermini in CLASSI, in base al numero di '' che compaiono nella loro rappresentazione. e si denota con n il numero di '' di ogni classe. mi A B C D 0 0 0 0 0 0 0 0 2 0 0 0 8 0 0 0 3 0 0 5 0 0 0 0 0 0 3 0 4 0 5
Soluzione ) Si suddividono i mintermini in CLASSI, in base al numero di '' che compaiono nella loro rappresentazione. Si confronta ciascuna configurazione di una classe con tutti gli elementi della classe successiva Quando due configurazioni risultano uguali in tutti i bit eccetto uno, vengono fuse in un'unica combinazione formata dai bit coincidenti e dal simbolo "-" nel bit diverso e trascritte in un altra tabella analoga alla precedente e vengono marcate. Le configurazioni (non marcate) che non hanno dato luogo a fusioni non potranno più essere combinate in futuro e rappresentano gli implicanti primi della funzione. Si ricomincia il procedimento considerano le nuove configurazioni unificate, si suddividono in classi e si confronta ciascuna configurazione di una classe con tutti gli elementi della classe successiva Quando non è più possibile continuare (ossia non si possono più fondere configurazioni) si riscrivono tutte le configurazioni che non sono state marcate, e cioè che non sono mai state utilizzate per qualche fusione, in sostanza queste configurazioni che abbiamo trovato sono IMPLICANTI PRIMI.
Soluzione ) Si suddividono i mintermini in CLASSI, in base al numero di '' che compaiono nella loro rappresentazione. Si confronta ciascuna configurazione di una classe con tutti gli elementi della classe successiva 0/ 0 0 0-0/2 0 0-0 0/8-0 0 0 /3 0 0 - /5 0-0 2/3 0 0-2/0-0 0 8/0 0-0 3/ - 0 5/3-0 0/ 0-0/4-0 /5-3/5-4/5 -
Soluzione ) Si suddividono i mintermini in CLASSI, in base al numero di '' che compaiono nella loro rappresentazione. Si confronta ciascuna configurazione di una classe con tutti gli elementi della classe successiva 0/2//3 0 0 - - 0/8/2/0-0 - 0 2/0/3/ - 0-0/4//5 - -
Soluzione Si costruisce la tabella di copertura della funzione e si opera come descritto mi A B C D 0 2 3 5 8 0 /5 0-0 x x 5/3-0 x x 3/5 - x x 0/2//3 0 0 - - x x x x 0/8/2/0-0 - 0 x x x x 2/0/3/ - 0 - x x x x 0/4// 5 - - x x x x 3 4 5
Riepilogo QMC: metodo automatico di sintesi, fase:determinazione di tutti gli implicanti primi. Data la forma SOP della funzione si scrive la tabella in cui compaiono tutti i mintermini presenti nella funzione e la loro rappresentazione binaria,si applica poi l algoritmo (di confronto fusione e marcatura) per determinare tutti gli implicanti primi. IMPLICANTI PRIMI: Le configurazioni (non marcate) che non hanno dato luogo a fusioni rappresentano gli implicanti primi della funzione.
Riepilogo 2 SECONDA FASE: Determinazione della espressione minima Si compila la Tabella di copertura della funzione (che ha riportati nelle RIGHE tutti gli implicanti primi trovati nella prima fase, mentre nelle COLONNE ha tutti i mintermini ) Si cancellano le righe essenziali e per ciascuna di esse si cancellano anche tutte le colonne corrispondenti alle altre croci presenti sulla riga stessa.(tenendone conto nella forma minima finale),si cancellano (non tenendone conto nella forma minima finale) tutte le righe dominate che compaiono nella tabella senza però cancellare anche le relative colonne in cui compaiono delle croci,si ripete il procedimento fino a quando la tabella non contiene più elementi.
Esercizio-Riduzione con metodo cd di copertura ab 00 0 0 00 0 mintermini abcd 0 2 3 4 6 7 8 2 0-- IP(f) 0--0 --0 4 0 --00 0--0 è assolutamente eliminabile espressione booleana in forma SOP ridotta f ( a, b, c, d) = a c + bd + cd
Esercizio
Esercizio
Soluzione