A.S.E.13.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 13 Alcune definizioniAlcune definizioni Algoritmo di sintesi ottima di Quine-McCluskeyAlgoritmo di sintesi ottima di Quine-McCluskey EsempioEsempio
A.S.E.13.2 Funzioni e Dont Cares Una funzione booleana f puo essere rappresentata attraverso 3 insiemi:Una funzione booleana f puo essere rappresentata attraverso 3 insiemi: –F, linsieme dei punti dove f=1 (on-set) –R, linsieme dei punti dove f=0 (off-set) –D, linsieme dei punti dove f e non specificata (dont- 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 = –F D = F R = R D =
A.S.E.13.3 bc 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={abc, abc, abc,abc}Mintermini={abc, abc, abc,abc} 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.13.4 Minimizzazione Rete Combinatoria Data una funzione f={F,D,R}, si vuole ottenere unespressione SP tale cheData una funzione f={F,D,R}, si vuole ottenere unespressione 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.13.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 loffsetOccorre trovare il sottoinsieme minimo che contenga tutti i mintermini e non intersechi loffset
A.S.E.13.6 Notazione per f Data una funzione f(a,b,c)Data una funzione f(a,b,c) abcf f=abc+abc+abc+abc= (0,3,4,6)f=abc+abc+abc+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.13.7 Metodo di Quine-McCluskey Due fasi:Due fasi: –trovare tutti gli implicanti principali –trovare uninsieme minimo che copra 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 abc} ac (2 cubi di ordine 1 1 cubo di ordine 2)ad esempio, {abc e abc} ac (2 cubi di ordine 1 1 cubo di ordine 2) –Per la generazione degli implicanti principali si considera f=1 sul dont-care-set permette di generare implicanti con un numero inferiore di termini e quindi costo minorepermette di generare implicanti con un numero inferiore di termini e quindi costo minore
A.S.E.13.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.13.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
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 42,10(8)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 42,10(8) 84,5(1)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 42,10(8) 84,5(1) 4,12(8)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 42,10(8) 84,5(1) 4,12(8) 2 38,10(2)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 42,10(8) 84,5(1) 4,12(8) 2 38,10(2) 58,12(4)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 42,10(8) 84,5(1) 4,12(8) 2 38,10(2) 58,12(4) ,7(4)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 42,10(8) 84,5(1) 4,12(8) 2 38,10(2) 58,12(4) ,7(4) ,11(8)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 42,10(8) 84,5(1) 4,12(8) 2 38,10(2) 58,12(4) ,7(4) ,11(8) 5,7(2) 3 75,13(8) ,11(1) ,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 ,3(1) 2,3(1) 4 2,10(8) 2,10(8) 8 4,5(1) 4,5(1) 4,12(8) 4,12(8) 2 38,10(2) 58,12(4) ,7(4) ,11(8) 3,11(8) 5,7(2) 3 7 5,13(8) 5,13(8) ,11(1) 10,11(1) ,13(1) 12,13(1)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 2,3(1) 2,3,10,11(1,8) 4 2,10(8) 2,10(8) 8 4,5(1) 4,5(1) 4,12(8) 4,12(8) 2 38,10(2) 58,12(4) ,7(4) ,11(8) 3,11(8) 5,7(2) 3 7 5,13(8) 5,13(8) ,11(1) 10,11(1) ,13(1) 12,13(1)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 2,3(1) 2,3,10,11(1,8) 4 2,10(8) 2,10(8) 8 4,5(1) 4,5(1) 4,12(8) 4,12(8) 2 38,10(2) 58,12(4) ,7(4) ,11(8) 3,11(8) 5,7(2) 3 7 5,13(8) 5,13(8) ,11(1) 10,11(1) ,13(1) 12,13(1)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 2,3(1) 2,3,10,11(1,8) 4 2,10(8) 2,10(8) 4,5,12,13(1,8) 8 4,5(1) 4,5(1) 4,12(8) 4,12(8) 2 38,10(2) 58,12(4) ,7(4) ,11(8) 3,11(8) 5,7(2) 3 7 5,13(8) 5,13(8) ,11(1) 10,11(1) ,13(1) 12,13(1)
A.S.E Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) 2,3(1) 2,3,10,11(1,8) P 1 4 2,10(8) 2,10(8) 4,5,12,13(1,8) P 2 8 4,5(1) 4,5(1) 4,12(8) 4,12(8) 2 3 8,10(2) P 3 5 8,12(4) P ,7(4) P ,11(8) 3,11(8) 5,7(2) P ,13(8) 5,13(8) ,11(1) 10,11(1) ,13(1) 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 =bc P 2 =bc P 3 =abd P 4 =acd P 5 =acd P 6 =abd
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 soloImplicanti essenziali: sono rappresentati da colonne con un solo –il mintermine corrispondente viene riconosciuto solo da quellimplicante –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 dellimplicante i implica il riconoscimento dellimplicante jQuindi, il riconoscimento dellimplicante i implica il riconoscimento dellimplicante j In questo caso, si puo eliminare dalla tabella limplicante jIn questo caso, si puo eliminare dalla tabella limplicante 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 limplicante iIn questo caso, si puo eliminare dalla tabella limplicante 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 limplicante 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 limplicante m riconosce tutti i mintermini di n (piu qualcuno) Possiamo allora eliminare n dalla tabellaPossiamo allora eliminare n dalla tabella –il numero di literals nellespressione 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 limplicante 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 limplicante m riconosce tutti i mintermini di n (piu qualcuno) Possiamo allora eliminare n dalla tabellaPossiamo allora eliminare n dalla tabella –il numero di literals nellespressione 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 = bc+bc+abd+acd P 1 =bc P 2 =bc P 3 =abd P 5 =acd