A.S.E.14.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 14 Alcune definizioniAlcune definizioni Algoritmo di sintesi ottima di Quine-McCluskeyAlgoritmo di sintesi ottima di Quine-McCluskey EsempioEsempio
A.S.E.14.2 Funzioni e Don’t Cares Una funzione booleana f puo’ essere rappresentata attraverso 3 insiemi:Una funzione booleana f puo’ essere rappresentata attraverso 3 insiemi: –F, l’insieme dei punti dove f=1 (on-set) –R, l’insieme dei punti dove f=0 (off-set) –D, l’insieme dei punti dove f e’ non specificata (don’t- care-set) {F,R,D} formano una partizione di 2 n{F,R,D} formano una partizione di 2 n –F R D = 2 n –F D = F R = R D =
A.S.E.14.3 bc ac ac’ Mintermini e Implicanti Implicante: prodotto p tale che {p=1 f=1}Implicante: prodotto p tale che {p=1 f=1} Mintermine: implicante costituito da n literalsMintermine: implicante costituito da n literals Implicante principale (prime): Implicante che non puo’ essere ridottoImplicante principale (prime): Implicante che non puo’ essere ridotto –f(a,b,c) = ab, {abc,abc’} mintermini, ab implicante, a NO Implicante essenziale: implicante principale che copre un mintermine non coperto da nessun altro implicante principaleImplicante essenziale: implicante principale che copre un mintermine non coperto da nessun altro implicante principale –Esempio, f=ab’+bc+ac Mintermini={ab’c’, ab’c, abc,a’bc}Mintermini={ab’c’, ab’c, abc,a’bc} Implicanti = Mintermini+{ab’, bc, ac}Implicanti = Mintermini+{ab’, bc, ac} Implicanti principali = {ab’, ac, bc}Implicanti principali = {ab’, ac, bc} Implicanti essenziali = {ab’, bc}Implicanti essenziali = {ab’, bc} a b c
A.S.E.14.4 Minimizzazione Rete Combinatoria Data una funzione f={F,D,R}, si vuole ottenere un’espressione SP tale cheData una funzione f={F,D,R}, si vuole ottenere un’espressione SP tale che F SP F D e che contenga il numero minimo di literals La forma SP AND-ORLa forma SP AND-OR –Costo di una porta AND=#ingressi –Costo di una porta OR=#ingressi –Costo di una porta NOT=0
A.S.E.14.5 Minimizzazione Rete Combinatoria Quindi, la minimizzazione richiede:Quindi, la minimizzazione richiede: –Minimo numero di prodotti ( ingressi OR) –Per ciascuno prodotto, minimo numero di termini ( ingressi AND) Ovvero, la forma SP sara’ costituita da un sottoinsieme di implicanti principaliOvvero, la forma SP sara’ costituita da un sottoinsieme di implicanti principali –implicanti essenziali Occorre trovare il sottoinsieme minimo che contenga tutti i mintermini e non intersechi l’offsetOccorre trovare il sottoinsieme minimo che contenga tutti i mintermini e non intersechi l’offset
A.S.E.14.6 Notazione per f Data una funzione f(a,b,c)Data una funzione f(a,b,c) abcf f=a’b’c’+a’bc+ab’c’+abc’= (0,3,4,6)f=a’b’c’+a’bc+ab’c’+abc’= (0,3,4,6) Def: cubo di ordine m: implicante con (n-m) terminiDef: cubo di ordine m: implicante con (n-m) termini ordine 0 = mintermineordine 0 = mintermine
A.S.E.14.7 Metodo di Quine-McCluskey Due fasi:Due fasi: –trovare tutti gli implicanti principali –trovare un’insieme minimo che copre f (nel seguito, f sara’ funzione di {a,b,c,d}) Implicanti principaliImplicanti principali –Si possono ottenere attraverso la fusione di cubi ad esempio, {abc e ab’c} ac (2 cubi di ordine 1 1 cubo di ordine 2)ad esempio, {abc e ab’c} ac (2 cubi di ordine 1 1 cubo di ordine 2) –Per la generazione degli implicanti principali si considera f=1 sul don’t-care-set permette di generare implicanti con un numero inferiore di terminipermette di generare implicanti con un numero inferiore di termini
A.S.E.14.8 Generazione Implicanti Principali Se due mintermini sono adiacenti (si possono fondere), le loro numerazioni differiscono di una potenza di 2Se due mintermini sono adiacenti (si possono fondere), le loro numerazioni differiscono di una potenza di 2 –devono differire in un solo literal –non e’ vero il contrario! Abbiamo quindi una condizione che ci permette di filtrare coppie di minterminiAbbiamo quindi una condizione che ci permette di filtrare coppie di mintermini –se il test passa, occorre controllare i mintermini (espressi come prodotto di literals) ConsideriamoConsideriamo f = (2,3,4,5,7,8,10,11,12,13)
A.S.E.14.9 Generazione Implicanti Principali f = (2,3,4,5,7,8,10,11,12,13)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi
A.S.E Tabella Generazione Implicanti Principali f = (2,3,4,5,7,8,10,11,12,13)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi 2,3(1) 4 2,10(8) 8 4,5(1) 4,12(8) 2 3 8,10(2) 5 8,12(4) 10 3,7(4) 12 3,11(8) 5,7(2) 3 7 5,13(8) 11 10,11(1) 13 12,13(1)
A.S.E Tabella Generazione Implicanti Principali f = (2,3,4,5,7,8,10,11,12,13)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi 2,3(1) 2,3,10,11(1,8) 4 2,10(8) 4,5,12,13(1,8) 8 4,5(1) 4,12(8) 2 3 8,10(2) 5 8,12(4) 10 3,7(4) 12 3,11(8) 5,7(2) 3 7 5,13(8) 11 10,11(1) 13 12,13(1)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi 2,3(1) 2,3,10,11(1,8) P 1 4 2,10(8) 4,5,12,13(1,8) P 2 8 4,5(1) 4,12(8) 2 3 8,10(2) P 3 5 8,12(4) P 4 10 3,7(4) P 5 12 3,11(8) 5,7(2) P 5,13(8) 11 10,11(1) 13 12,13(1)
A.S.E Tabella Generazione Implicanti Principali f = (2,3,4,5,7,8,10,11,12,13) cd\ab P 1 =b’c P 2 =bc’ P 3 =ab’d’ P 4 =ac’d’ P 5 =a’cd P 6 =a’bd
A.S.E Tabella degli Implicanti P1P1P1P1 P2P2P2P2 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6
A.S.E Implicanti Essenziali P1P1P1P1 P2P2P2P2 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 Implicanti essenziali: sono rappresentati da colonne con un solo Implicanti essenziali: sono rappresentati da colonne con un solo –il mintermine corrispondente viene “riconosciuto” solo da quell’implicante –Fanno parte della lista di copertura
A.S.E Dominanza di colonna P1P1P1P1 P2P2P2P2 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 Dominanza di colonna: se la colonna (implicante) i ha tutti i della colonna j (piu’ qualcuno), allora ogni volta che un implicante ha un per i ne ha uno per jDominanza di colonna: se la colonna (implicante) i ha tutti i della colonna j (piu’ qualcuno), allora ogni volta che un implicante ha un per i ne ha uno per j Quindi, il riconoscimento dell’implicante i implica il riconoscimento dell’implicante jQuindi, il riconoscimento dell’implicante i implica il riconoscimento dell’implicante j In questo caso, si puo’ eliminare dalla tabella l’implicante jIn questo caso, si puo’ eliminare dalla tabella l’implicante j
A.S.E Dominanza di colonna P1P1P1P1 P2P2P2P2 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 Dominanza di colonna: se la colonna (mintermine) i ha tutti i della colonna j (piu’ qualcuno), allora ogni volta che un implicante ha un per j ne ha uno per iDominanza di colonna: se la colonna (mintermine) i ha tutti i della colonna j (piu’ qualcuno), allora ogni volta che un implicante ha un per j ne ha uno per i Quindi, il riconoscimento del mintermine j implica il riconoscimento del mintermine iQuindi, il riconoscimento del mintermine j implica il riconoscimento del mintermine i In questo caso, si puo’ eliminare dalla tabella l’implicante iIn questo caso, si puo’ eliminare dalla tabella l’implicante i
A.S.E Dominanza di colonna P1P1P1P1 P2P2P2P2 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 Possiamo quindi eliminare le colonne dominatePossiamo quindi eliminare le colonne dominate
A.S.E Eliminazione Implicanti Essenziali 2478 P1P1P1P1 P2P2P2P2 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 In questo caso, P 1 e P 2 fanno parte della lista di coperturaIn questo caso, P 1 e P 2 fanno parte della lista di copertura Possiamo semplificare la tabella eliminando:Possiamo semplificare la tabella eliminando: –le righe corrispondenti a P 1 e P 2 –tutte le colonne che hanno un in corrispondenza di queste righe LC = {P 1, P 2 }
A.S.E Eliminazione Implicanti Essenziali 2478 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 In questo caso, P 1 e P 2 fanno parte della lista di coperturaIn questo caso, P 1 e P 2 fanno parte della lista di copertura Possiamo semplificare la tabella eliminando:Possiamo semplificare la tabella eliminando: –le righe corrispondenti a P 1 e P 2 –tutte le colonne che hanno un in corrispondenza di queste righe –le colonne vuote LC = {P 1, P 2 }
A.S.E Eliminazione Implicanti Essenziali 78 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 In questo caso, P 1 e P 2 fanno parte della lista di coperturaIn questo caso, P 1 e P 2 fanno parte della lista di copertura Possiamo semplificare la tabella eliminando:Possiamo semplificare la tabella eliminando: –le righe corrispondenti a P 1 e P 2 –tutte le colonne che hanno un in corrispondenza di queste righe –le colonne vuote LC = {P 1, P 2 }
A.S.E Dominanza di riga 78 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 Dominanza di riga: se la riga m ha tutti i della riga n (piu’ qualcuno), allora l’implicante m riconosce tutti i mintermini di n (piu’ qualcuno)Dominanza di riga: se la riga m ha tutti i della riga n (piu’ qualcuno), allora l’implicante m riconosce tutti i mintermini di n (piu’ qualcuno) Possiamo allora eliminare n dalla tabellaPossiamo allora eliminare n dalla tabella –il numero di literals nell’espressione finale non aumenta –in caso di parita’ di , occorre scegliere i cubi di ordine maggiore LC = {P 1, P 2 }
A.S.E Dominanza di riga 78 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 Dominanza di riga: se la riga m ha tutti i della riga n (piu’ qualcuno), allora l’implicante m riconosce tutti i mintermini di n (piu’ qualcuno)Dominanza di riga: se la riga m ha tutti i della riga n (piu’ qualcuno), allora l’implicante m riconosce tutti i mintermini di n (piu’ qualcuno) Possiamo allora eliminare n dalla tabellaPossiamo allora eliminare n dalla tabella –il numero di literals nell’espressione finale non aumenta –in caso di parita’ di , occorre scegliere i cubi di ordine maggiore LC = {P 1, P 2 }
A.S.E Semplificazione Tabella 78 P3P3P3P3 P5P5P5P5 Si ripetono i passi precedenti:Si ripetono i passi precedenti: –implicanti essenziali –dominanza di colonna –dominanza di riga LC = {P 1, P 2 }
A.S.E Semplificazione Tabella 78 P3P3P3P3 P5P5P5P5 Si ripetono i passi precedenti:Si ripetono i passi precedenti: –implicanti essenziali –dominanza di colonna –dominanza di riga LC = {P 1, P 2, P 3, P 5 }
A.S.E Risultato f = b’c+bc’+ab’d’+a’cd P 1 =b’c P 2 =bc’ P 3 =ab’d’ P 5 =a’cd