A.S.E.QM.1 ARCHITETTURA DEI SISTEMI ELETTRONICI Alcune definizioniAlcune definizioni Algoritmo di sintesi ottima di Quine-McCluskeyAlgoritmo di sintesi ottima di Quine-McCluskey EsempioEsempio
A.S.E.QM.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.QM.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.QM.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.QM.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) In pratica, ogni implicante ha un costo pari al numero di literals+1In pratica, ogni implicante ha un costo pari al numero di literals+1 –i termini della AND + 1 per lingresso richiesto alla OR 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.QM.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.QM.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.QM.8 Fusione implicanti Devono differire per un literalDevono differire per un literal –abde e abde abe Posso operare piu velocemente se considero la seguente numerazione dei minterminiPosso operare piu velocemente se considero la seguente numerazione dei mintermini –{a b c d e} lo considero come un numero binario a b c d 2 + ea b c d 2 + e –esempio, a b c d e = = 22a b c d e = = 22 Utilizzo numerazione decimale per lalgoritmo di generazione degli implicanti principaliUtilizzo numerazione decimale per lalgoritmo di generazione degli implicanti principali –nulla di fondamentale, lalgoritmo puo essere convertito nelluso dei literal o di {0,1} facilmente
A.S.E.QM.9 Condizione necessarie fusione implicanti 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! Poiche due mintermini (implicanti) devono differire in un solo literal, occorre che il numero di literal positivi presenti nei due implicanti differisca di 1Poiche due mintermini (implicanti) devono differire in un solo literal, occorre che il numero di literal positivi presenti nei due implicanti differisca di 1 –a b c d 3 –a b c d 2 –a b c d 1
A.S.E.QM.10 Generazione Implicanti Principali Abbiamo quindi due condizione (necessarie ma non sufficienti) che ci permettono di filtrare coppie di minterminiAbbiamo quindi due condizione (necessarie ma non sufficienti) che ci permettono di filtrare coppie di mintermini –se i test passano, occorre controllare i mintermini (espressi come prodotto di literals) Consideriamo f = (2,3,4,5,7,8,10,11,12,13)Consideriamo f = (2,3,4,5,7,8,10,11,12,13) Possiamo ordinare in partenza per numero di literals positivi in maniera da formare dei gruppi e confrontare solo elementi entro gruppi adiacentiPossiamo ordinare in partenza per numero di literals positivi in maniera da formare dei gruppi e confrontare solo elementi entro gruppi adiacenti
A.S.E.QM.11 Generazione Implicanti Principali f = (2,3,4,5,7,8,10,11,12,13)
A.S.E.QM.12 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi
A.S.E.QM.13 Tabella Generazione Implicanti Principali f = (2,3,4,5,7,8,10,11,12,13)
A.S.E.QM.14 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi
A.S.E.QM.15 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1)
A.S.E.QM.16 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) ,10(8)
A.S.E.QM.17 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) ,10(8) ,5(1)
A.S.E.QM.18 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) ,10(8) ,5(1) 4,12(8)
A.S.E.QM.19 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) ,10(8) ,5(1) 4,12(8) ,10(2)
A.S.E.QM.20 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) ,10(8) ,5(1) 4,12(8) ,10(2) ,12(4)
A.S.E.QM.21 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) ,10(8) ,5(1) 4,12(8) ,10(2) ,12(4) ,7(4)
A.S.E.QM.22 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) ,10(8) ,5(1) 4,12(8) ,10(2) ,12(4) ,7(4) ,11(8)
A.S.E.QM.23 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi ,3(1) ,10(8) ,5(1) 4,12(8) ,10(2) ,12(4) ,7(4) ,11(8) 5,7(2) ,13(8) ,11(1) ,13(1)
A.S.E.QM.24 Tabella Generazione Implicanti Principali f = (2,3,4,5,7,8,10,11,12,13)
A.S.E.QM.25 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.QM.26 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.QM.27 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.QM.28 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.QM.29 Tabella Generazione Implicanti Principali Indice (# uni) Cubi 0 Cubi 1 Cubi 2 Costo 1 2 2,3(1) 2,3(1) 2,3,10,11(1,8) P ,10(8) 2,10(8) 4,5,12,13(1,8) P ,5(1) 4,5(1) 4,12(8) 4,12(8) 2 3 8,10(2) P ,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.QM.30 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.QM.31 Tabella degli Implicanti P1P1P1P1 P2P2P2P2 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6
A.S.E.QM.32 Metodo di Petrick Lista di copertura irridondante:Lista di copertura irridondante: –somma di implicanti che copre la funzione e tale che la rimozione di uno qualunque degli implicanti rende f diversa dalla somma La somma minima di prodotti e una somma (copertura) irridondanteLa somma minima di prodotti e una somma (copertura) irridondante
A.S.E.QM.33 Metodo di Petrick Si parte dalla tabella degli implicantiSi parte dalla tabella degli implicanti Si forma un prodotto di somme nel seguente modo:Si forma un prodotto di somme nel seguente modo: –ogni colonna introduce una somma tra gli implicanti che presentano un in corrispondenza e.g. 3 (P 1 +P 5 )e.g. 3 (P 1 +P 5 ) Si svolgono i prodotti, si semplifica rispetto allassorbimento ottenendo una somma di prodottiSi svolgono i prodotti, si semplifica rispetto allassorbimento ottenendo una somma di prodotti Ciascun termine nella somma e una lista di copertura irridondanteCiascun termine nella somma e una lista di copertura irridondante P1P1P1P1 P2P2P2P2 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6
A.S.E.QM.34 Metodo di Petrick P1P1P1P1 P2P2P2P2 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 P 1 (P 3 +P 5 ) P 4 (P 2 +P 6 ) (P 5 +P 6 ) (P 3 +P 4 ) (P 1 +P 3 ) P 1 (P 2 +P 4 ) P 2 P 1 P 3 P 4 P 2 P 5 P 3 P 1 P 1 P 2 P 2 + P 1 P 5 P 4 P 6 P 6 P 4 P 3 P 1 P 4 P 2 … = P 1 P 3 P 4 P 2 P 5 P 3 P 1 P 1 P 2 P 2 + P 1 P 5 P 4 P 6 P 6 P 4 P 3 P 1 P 4 P 2 … = = P 1 P 2 P 3 P 4 P 5 + P 1 P 2 P 3 P 4 P 5 P 6 … P 1 P 2 P 3 P 4 P 5 + … P 1 P 2 P 3 P 4 P 5 + …
A.S.E.QM.35 Metodo di Petrick P 1 (P 3 +P 5 ) P 4 (P 2 +P 6 ) (P 5 +P 6 ) (P 3 +P 4 ) (P 1 +P 3 ) P 1 (P 2 +P 4 ) P 2 P 1 P 3 P 4 P 2 P 5 P 3 P 1 P 1 P 2 P 2 + P 1 P 5 P 4 P 6 P 6 P 4 P 3 P 1 P 4 P 2 … = P 1 P 3 P 4 P 2 P 5 P 3 P 1 P 1 P 2 P 2 + P 1 P 5 P 4 P 6 P 6 P 4 P 3 P 1 P 4 P 2 … = = P 1 P 2 P 3 P 4 P 5 + P 1 P 2 P 3 P 4 P 5 P 6 … P 1 P 2 P 3 P 4 P 5 + … P 1 P 2 P 3 P 4 P 5 + … In pratica, si puo semplificare il prodotto eliminando le somme contenenti altre somme,In pratica, si puo semplificare il prodotto eliminando le somme contenenti altre somme, –e.g. (a+b)(c+d)(a+b+c) (a+b)(c+d)
A.S.E.QM.36 Implicanti Essenziali P1P1P1P1 3 P2P2P2P2 4 P3P3P3P3 4 P4P4P4P4 4 P5P5P5P5 4 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.QM.37 Dominanza di colonna P1P1P1P1 3 P2P2P2P2 4 P3P3P3P3 4 P4P4P4P4 4 P5P5P5P5 4 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.QM.38 Dominanza di colonna P1P1P1P1 3 P2P2P2P2 4 P3P3P3P3 4 P4P4P4P4 4 P5P5P5P5 4 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.QM.39 Dominanza di colonna P1P1P1P1 3 P2P2P2P2 4 P3P3P3P3 4 P4P4P4P4 4 P5P5P5P5 4 P6P6P6P6 Possiamo quindi eliminare le colonne dominatePossiamo quindi eliminare le colonne dominate
A.S.E.QM.40 Eliminazione Implicanti Essenziali P1P1P1P1 3 P2P2P2P2 4 P3P3P3P3 4 P4P4P4P4 4 P5P5P5P5 4 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.QM.41 Eliminazione Implicanti Essenziali P3P3P3P3 4 P4P4P4P4 4 P5P5P5P5 4 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.QM.42 Eliminazione Implicanti Essenziali 78 4 P3P3P3P3 4 P4P4P4P4 4 P5P5P5P5 4 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.QM.43 Dominanza di riga 78 4 P3P3P3P3 4 P4P4P4P4 4 P5P5P5P5 4 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 tabella se il suo costo non e inferiore a quello di mPossiamo allora eliminare n dalla tabella se il suo costo non e inferiore a quello di m –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.QM.44 Dominanza di riga 78 4 P3P3P3P3 4 P4P4P4P4 4 P5P5P5P5 4 P6P6P6P6 LC = {P 1, P 2 } 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 tabella se il suo costo non e inferiore a quello di mPossiamo allora eliminare n dalla tabella se il suo costo non e inferiore a quello di m –il numero di literals nellespressione finale non aumenta –in caso di parita di, occorre scegliere i cubi di ordine maggiore
A.S.E.QM.45 Semplificazione Tabella 78 4 P3P3P3P3 4 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.QM.46 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 } Costo = = 14 1 porta OR a 4 ingressi1 porta OR a 4 ingressi 2 porte AND a 2 ingressi2 porte AND a 2 ingressi 2 porte AND a 3 ingressi2 porte AND a 3 ingressi
A.S.E.QM.47 Nucleo Ciclico 2478 P3P3P3P3 P4P4P4P4 P5P5P5P5 P6P6P6P6 Si puo arrivare a una tabella non piu semplificabile con le dominanzeSi puo arrivare a una tabella non piu semplificabile con le dominanze –si ricorre al metodo di Petrick, si confronta il costo di tutte le liste di copertura e si prende quella a costo minore ottimo –si prende una lista di copertura a caso ( ?, pero semplice…)
A.S.E.QM.48 Risultato f = bc+bc+abd+acd P 1 =bc P 2 =bc P 3 =abd P 5 =acd