Reti Logiche A Lezione 2.1 Sintesi di reti combinatorie a due livelli Sintesi di reti a 2 livelli Sintesi Combinatoria Lezione 2.1 Sintesi di reti combinatorie a due livelli Docente: prof. William FORNACIARI fornacia@elet.polimi.it www.elet.polimi.it/people/fornacia © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Sintesi di reti combinatorie a due livelli Reti Logiche A Sintesi di reti a 2 livelli Sintesi di reti combinatorie a due livelli Obiettivo generale ridurre la complessità di una (o più) funzione(i) booleana(e) espressa(e) in forma di Prodotto di Somme o di Somma di Prodotti (SOP) ci si concentrerà solo sulla forma Somma di Prodotti (l'altra ne è la duale) Nella sintesi a due livelli si cerca la Riduzione del numero dei termini prodotto (principale) Riduzione del numero di letterali (secondario) Obiettivo della sintesi a più livelli riduzione numero dei letterali Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Metodologie di sintesi ottima Reti Logiche A Sintesi di reti a 2 livelli Metodologie di sintesi ottima Esatte Karnaugh Quine - Mc Cluskey Euristiche per sintesi a due livelli Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Metodi esatti: Mappe di Karnaugh (ripasso) Reti Logiche A Sintesi di reti a 2 livelli Metodi esatti: Mappe di Karnaugh (ripasso) Strategia Si propone di identificare forme minime a due livelli La formula di riduzione da applicare è del tipo a B + a' B = (a+a') B = B con B termine prodotto di n-1 variabili Metodo individuazione degli implicanti primi e primi essenziali Implicante primo Termine prodotto associato ad un “raggruppamento” di dimensione massima Implicante primo essenziale Implicante primo che copre uno o più 1 non coperti da nessun altro implicante primo copertura implicanti primi implicanti implicanti primi essenziali Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Mappe di Karnaugh: forme minime Reti Logiche A Sintesi di reti a 2 livelli Mappe di Karnaugh: forme minime Esempio a b c d f 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 implicanti primi essenziali a b 0 1 0 0 1 a' c' ; a d c d 0 0 0 1 1 1 1 0 0 1 0 1 1 implicanti primi 0 1 1 0 0 a' b' d' ; b' c d' ; a b' c ; c' d 0 0 1 1 0 1 1 1 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 1 1 f(a,b,c,d) = a' c' + a d + b' c d' forma minima (unica) 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1 implicanti primi essenziali Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Mappe K: condizioni di indifferenza Reti Logiche A Sintesi di reti a 2 livelli Mappe K: condizioni di indifferenza Nel caso di funzioni non completamente specificate, la generazione degli implicanti primi tratta le condizioni di indifferenza come 1 condizioni di indifferenza (don't care) sono valori dell'uscita non specificate dal problema ad esempio, legate a configurazioni degli ingressi che non si presentano mai Nella fase di copertura vengono considerati solo gli 1 (on-set della funzione) e non le condizioni di indifferenza (dc-set della funzione) Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Mappe K: condizioni di indifferenza Reti Logiche A Sintesi di reti a 2 livelli Mappe K: condizioni di indifferenza Esempio a b c d f 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 x a b implicanti primi 0 1 0 0 x c d 0 0 0 1 1 1 1 0 0 1 0 1 x b'd ; c'd ; c'b ; ab ; ad 0 1 1 0 0 0 0 x 1 0 1 1 1 0 1 0 0 0 0 0 1 1 x 1 x f(a,b,c,d) = a b + b' d 1 0 0 1 x 1 0 1 0 0 1 1 x 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Metodi esatti: Quine - Mc Cluskey Reti Logiche A Sintesi di reti a 2 livelli Metodi esatti: Quine - Mc Cluskey Metodo di minimizzazione tabellare facilmente traducibile in un algoritmo Due fasi 1) Ricerca degli implicanti primi 2) Ricerca della copertura ottima Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Quine - Mc Cluskey: Ricerca implicanti Reti Logiche A Sintesi di reti a 2 livelli Quine - Mc Cluskey: Ricerca implicanti Prima Fase (ricerca degli implicanti primi) nota: si fa riferimento alla forma SOP Si applica sistematicamente la proprietà: a B + a’ B = B Ad ogni passo della minimizzazione si confrontano esaustivamente tutti i termini prodotto appartenenti all’ON-set si operano le riduzioni su tutte quelle coppie che hanno una parte comune ed una sola variabile differente. I termini prodotto semplificati vengono marcati si crea un nuovo insieme di termini prodotto da confrontare. Il processo ha fine quando non sono più possibili delle riduzioni. I termini non marcati sono implicanti primi Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Quine - Mc Cluskey: Ricerca implicanti Reti Logiche A Sintesi di reti a 2 livelli Quine - Mc Cluskey: Ricerca implicanti Per ridurre la complessità algoritmica, l'operazione di confronto viene svolta considerando solamente gli insiemi Sij e Si+1J insieme Si j : insieme dei termini prodotto, all'iterazione j, con un numero di 1 pari ad i Le configurazioni adiacenti ad un termine prodotto appartenente a Sij possono essere contenute solo in Si-1 j e Si+1 j Per facilitare la costruzione della tabella di copertura (seconda fase) Ad ogni termine prodotto è associata una etichetta che rappresenta l'insieme dei mintermini che esso copre. L'etichetta di un nuovo termine prodotto è ottenuta per concatenamento delle etichette dei termini da cui proviene Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Quine - Mc Cluskey: algoritmo ricerca implicanti primi Reti Logiche A Sintesi di reti a 2 livelli Quine - Mc Cluskey: algoritmo ricerca implicanti primi Algoritmo di Quine - Mk Cluskey J=0; tutti i mintermini appartenenti all’ON-set vengono etichettati e posti nei loro rispettivi Si0; Ripeti Per k=min(i) fino a (max(i) - 1) confronta ogni configurazione in SiJ con ogni altra in Si+1J . Le configurazioni semplificate vengono marcate ed il risultato della semplificazione viene etichettato e posto in SiJ+1. J=J+1; Fino a che non sono più possibili delle riduzioni Tutte le configurazioni non marcate sono implicanti primi Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Quine - Mc Cluskey: Esempio Reti Logiche A Sintesi di reti a 2 livelli Quine - Mc Cluskey: Esempio Esempio Equivalente mappa di Karnaugh a b c d 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 Implicanti Primi: P0(1,9): b' c' d P1(9,11,13,15): a d P2(12,13,14,15): a b 1 1 1 1 1 0 1 Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Quine - Mc Cluskey: copertura ottima Reti Logiche A Sintesi di reti a 2 livelli Quine - Mc Cluskey: copertura ottima Seconda Fase (ricerca della copertura ottima) Tabella degli implicanti (o tabella di copertura) É una matrice binaria A dove: indici di riga: Implicanti primi trovati nella prima fase indici di colonna: I mintermini appartenenti all’ON-set della funzione elementi ai,j : a 1 quando l'implicante primo i_esimo copre il mintermine j_esimo, altrimenti 0 Il problema di copertura è intrattabile. Si utilizzano le proprietà di essenzialità e dominanza Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Quine - Mc Cluskey: copertura ottima Reti Logiche A Sintesi di reti a 2 livelli Quine - Mc Cluskey: copertura ottima Relazioni tra implicanti e mintermini che permettono la semplificazione della tabella Essenzialità Dominanza Dominanza di riga Dominanza di colonna Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Righe Essenziali Descrizione Semplificazione Reti Logiche A Sintesi di reti a 2 livelli Righe Essenziali Descrizione Se una colonna contiene un solo 1, la colonna corrisponde ad un prodotto fondamentale e la riga corrisponde ad un implicante primo essenziale. La riga è chiamata riga essenziale. Semplificazione La riga essenziale e le colonne da essa coperte (presenza di un 1) vengono eliminate dalla tabella Righe essenziali: P1 ; P2 ; P3 Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Dominanza fra righe Descrizione: Semplificazione Reti Logiche A Sintesi di reti a 2 livelli Dominanza fra righe Descrizione: Un implicante i-esimo domina un implicante j-esimo quando Pi copre almeno tutti i mintermini coperti da Pj Semplificazione Pj è eliminato dalla tabella Ulteriori semplificazioni L'eliminazione per dominanza di una riga può generare dei nuovi implicanti essenziali. Poiché questi ultimi divengono essenziali a causa delle semplificazioni, le righe ad essi associate sono chiamate righe essenziali secondarie P0 : dominata P1 : dominante P1: implicante essenziale secondario Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Dominanza fra colonne Dominanza tra colonne Descrizione Reti Logiche A Sintesi di reti a 2 livelli Dominanza fra colonne Dominanza tra colonne Descrizione Un mintermine i-esimo domina un mintermine j-esimo quando ogni implicante che copre mj copre anche mi. (Può non valere l'opposto) Semplificazione mi è eliminato dalla tabella Significato: un implicante che copre mj copre anche mi Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Scelta degli implicanti primi in tabelle cicliche Reti Logiche A Sintesi di reti a 2 livelli Scelta degli implicanti primi in tabelle cicliche Quando tutte le righe essenziali e le colonne e righe dominate sono rimosse, la tabella ottenuta, se esiste, è ridotta e ciclica. E' detta Tabella ciclica degli implicanti primi Soluzioni a) Branch (esponenziale con la dimensione della tabella) b) Metodo di Petrik Permette di risolvere il problema della scelta degli implicanti quando la tabella degli implicanti è ciclica Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Scelta degli implicanti primi: Metodo di Petrik Reti Logiche A Sintesi di reti a 2 livelli Scelta degli implicanti primi: Metodo di Petrik Esempio del metodo di Petrik Da un prodotto di somme (P0+P3) (P0+P1) (P1+P2) (P2+P3) (P1+P3) = 1 (P0+P3 P1) (P1P3+P2) (P1+P3) = 1 (P0P2+P3 P1) (P1+P3) = 1 ad una somma di prodotti (P0P2P1+P0P2P3+P3 P1) = 1 Gruppi di implicanti primi: P0P2P1 ; P0P2P3 ; P3 P1 Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Condizioni di indifferenza Reti Logiche A Sintesi di reti a 2 livelli Condizioni di indifferenza Nel caso di funzioni non completamente specificate, la generazione degli implicanti primi tratta le condizioni di indifferenza come 1 A quanto visto in precedenza si aggiungono le seguenti regole Tutte le condizioni di indifferenza sono trattate come 1 Nella tabella di copertura compaiono come indici di colonna solo i mintermini appartenenti all’ON-set Per evitare di considerare implicanti primi costituiti da sole condizioni di indifferenza è possibile attuare ulteriori regole Tutte le configurazioni in Si0 relative alle condizioni di indifferenza sono marcate a priori e Tutte le configurazioni relative a raggruppamenti di sole condizioni di indifferenza sono marcate anche se non semplificate riduce il numero degli implicanti primi da considerare nella copertura Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari
Condizioni di indifferenza Reti Logiche A Sintesi di reti a 2 livelli Condizioni di indifferenza Esempio da sole condizioni di indifferenza Implicanti primi: P0 : a' b' d' P1 : a' c' d' f(a,b,c,d,)=a'b'd' + bc' P2 : b c' Sintesi di reti a 2 livelli © 2001/02 - William Fornaciari © 2001/02 - William Fornaciari